2012-08-08 15 views
5

Tôi có một hình ảnh có độ phân giải thấp, vuông, đã bị cắt xén (bởi người dùng) ra khỏi hình ảnh có độ phân giải cao, không vuông, nguyên bản. Ảnh có độ phân giải thấp sau đó đã được thay đổi kích thước xuống dưới dạng hình thu nhỏ. Tôi muốn tự động (không cần sự can thiệp của người dùng) tái cắt ảnh gốc theo cách tương tự để có được bản sao có độ phân giải cao hơn của phiên bản hình vuông. Tôi không có quyền truy cập vào các tọa độ cắt đầu tiên. Tất cả những gì tôi có là hai bức ảnh này.Làm cách nào để sử dụng ảnh được cắt, có độ phân giải thấp làm hướng dẫn để tái tạo bản sao có độ phân giải cao hơn của bản gốc?

Dưới đây là một số hình ảnh minh họa (từ hồ sơ Facebook của tôi) để minh họa cho những gì tôi có nghĩa là:

Original, high-resolution photo-Cropped, then shrunk, square photo

Một lần nữa, mục đích là để sử dụng các ảnh nhỏ như một hướng dẫn để có được cao hơn một nhiều độ phân giải ảnh vuông từ nguồn.

Các trở ngại duy nhất trên các giải pháp bao gồm:

  1. tổng quát: Tôi đang sử dụng này cho hình ảnh hồ sơ cá nhân, vì vậy nếu nó chỉ hoạt động trên khuôn mặt là hoàn toàn chấp nhận được! Không cần phải khái quát hóa tất cả các loại hình ảnh ngẫu nhiên, hình ảnh của mọi người là một nơi tuyệt vời để bắt đầu.
  2. Nền tảng: Tôi đang sử dụng Node, nhưng tôi rất sẵn lòng chạy quy trình này bằng Ruby, Python, Java hoặc C++ (với các liên kết Nút). Nó gần như chắc chắn sẽ chạy trên Heroku hoặc AWS.
  3. Tốc độ: Nó sẽ cần phải được khá nhanh chóng. Để điều này hữu ích, nó sẽ phải chạy theo kiểu trực tuyến, vì tôi sẽ chặn giao diện của người dùng đang đợi hành động này.

Có ai có ý tưởng nào không? Tôi không biết nhiều về xử lý hình ảnh, vì vậy tôi sẽ không thực sự biết bắt đầu từ đâu.

EDIT: Đối với Facebook, cụ thể, có một giải pháp không quá khó. Dữ liệu cây trồng ban đầu có sẵn cho hình ảnh hồ sơ: https://graph.facebook.com/bcherry/profile?fields=pic_crop

Điều này sẽ giúp tôi vượt qua rào cản trước mắt, nhưng có thể không phải là giải pháp lâu dài, vì vậy các câu trả lời được cung cấp bên dưới vẫn khá hữu ích cho vấn đề chung hơn .

+0

Bạn có biết kích thước của ảnh có độ phân giải thấp chưa cắt không? – jasonlfunk

+0

Tôi không chắc chắn những gì bạn đang yêu cầu, nhưng tôi không có bất kỳ thông tin nào khác ngoài hai hình ảnh. – bcherry

+0

Tôi đoán bạn không biết tỷ lệ thay đổi kích thước cho hình thu nhỏ là gì? Nếu điều này không trở thành một vấn đề khá khó khăn. –

Trả lời

1

Trong khi tôi sẽ không bình luận về Javascript-ness của giải pháp của tôi - về cơ bản bạn đang cố gắng thực hiện Image Registration giữa hình ảnh đã được chỉnh sửa và được cắt kích thước gốc.

many các phương pháp khác nhau để làm điều gì đó như thế này - cho mục đích cụ thể của bạn, tôi sẽ bắt đầu bằng cách tiếp cận giống như Phase-Correlation.

EDIT: Tôi vừa tìm thấy một tập lệnh đẹp bằng ImageMagick thực hiện chính xác những gì bạn cần. NormCrossCorr "tính toán bề mặt tương quan chéo chuẩn hóa để tìm vị trí ảnh nhỏ phù hợp nhất trong hình ảnh lớn hơn".

Hy vọng điều này sẽ hữu ích!

+0

Vâng, đó chắc chắn là âm thanh chính xác. Cảm ơn câu trả lời! – bcherry

+0

Điều đó sẽ không hoạt động. Nó sẽ chỉ hoạt động nếu hình thu nhỏ không bị thu hẹp, tức là chúng sẽ phải ở cùng độ phân giải. – reptilicus

+0

Tuy nhiên, bạn có thể tăng kích thước hình thu nhỏ lên, sau đó thực hiện tương quan chéo và tìm nơi tương quan tối đa. – reptilicus

0

Nó có lẽ vấn đề rất nhiều liệu thu hẹp quy mô đã được thực hiện bởi trung bình hoặc điểm ảnh gần nhất. Nếu việc giảm kích thước được thực hiện bằng pixel gần nhất, bạn có thể tìm kiếm giá trị pixel khớp với pixel tương ứng trong hình ảnh gốc với pixel trong hình ảnh được thu nhỏ/cắt bớt. Trừ khi các hình ảnh được lưu trữ trong một số định dạng lossless, bạn sẽ phải làm cho trận đấu khá mờ, nhưng nếu bạn có thể xác định các trận đấu có khả năng, quy mô và vị trí của cây trồng là ngay lập tức có sẵn.

Nếu có một số trung bình trong quá trình chia tỷ lệ hoặc mất quá nhiều trong nén ảnh, bạn có thể làm tốt nhất bằng gaussian làm mờ cả hình ảnh và cố gắng khớp dựa trên các tính năng cục bộ của hình ảnh bị mờ, ví dụ: x, y của minima địa phương hoặc cực đại của màu cơ bản. Một lần nữa, trận đấu sẽ phải mờ.