2010-05-03 42 views
6

Về cơ bản, tôi muốn tìm vị trí pixel của một hình ảnh nhỏ bên trong một hình ảnh lớn. Tôi đã tìm kiếm một cái gì đó tương tự như thế này nhưng đã không có may mắn.Tìm vị trí hình ảnh bên trong hình ảnh lớn hơn

+2

Hình ảnh nhỏ có chính xác, pixel-by-pixel, bản sao của một khu vực trong hình ảnh lớn hơn không? Nó là khá quan trọng khi lựa chọn các thuật toán. – driis

Trả lời

0

Bạn có thể sử dụng số AForge Framework để làm điều gì đó như thế này. Nó cung cấp một loạt các công cụ xử lý hình ảnh. Có thể bạn có thể sử dụng khai thác blob của họ để chiết xuất các đốm màu sau đó so sánh các đốm màu đó với hình ảnh được lưu trữ mà bạn có và xem chúng có khớp không.

0

Nếu hình ảnh là pixel-by-pixel bằng nhau, bạn có thể bắt đầu bằng cách tìm kiếm một pixel có cùng màu với pixel (0,0) trong hình ảnh nhỏ. Sau khi tìm thấy, so sánh từng pixel trong khu vực sẽ được bao phủ bởi hình ảnh nhỏ. Nếu không có sự khác biệt bạn tìm thấy vị trí của bạn. Khác bắt đầu lại bằng cách tìm kiếm đối sánh pixel tiếp theo (0,0).

0

Booyer-Moore tìm kiếm âm thanh như một giải pháp ở đây nếu bạn coi pixel của bạn là ký tự và đang tìm kiếm kết hợp chính xác. Nhanh hơn nhiều so với mỗi pixel tìm kiếm.

1

Tùy thuộc vào mức độ tương tự bạn muốn kết quả phù hợp với hình ảnh truy vấn của mình. Nếu bạn đang cố gắng kết hợp các phần tương ứng của các hình ảnh photorealistic khác nhau, hãy xem trang Wikipedia Feature detection. Những gì bạn muốn sử dụng phụ thuộc vào việc chuyển đổi bạn mong đợi một hình ảnh trải qua để trở thành người khác.

Điều đó nói rằng, nếu bạn đang tìm kiếm một kết hợp pixel theo điểm ảnh chính xác, tìm kiếm vũ phu có thể là xấu. Đó có thể là O(m^2*n^2) cho hình ảnh m*m được sử dụng để tìm kiếm trong hình ảnh n*n. Sử dụng các thuật toán tốt hơn, nó có thể được cải thiện thành O(n^2), tuyến tính theo số pixel. Downsampling cả hai hình ảnh và làm một loại hình tìm kiếm có thể là một cách tiếp cận tốt.

Các vấn đề liên quan