2012-06-29 6 views
13

Załóżmy, że mam dwa obrazy binarne tego samego rozmiaru. Jak znaleźć przecięcie między dwoma obrazami binarnymi? Tylko piksele o tej samej współrzędnej (położeniu) na dwóch obrazach, które są białe (szare - 255) dają białe piksele na wyjściowym obrazie (przecięcie).OpenCV - Przecięcie dwóch obrazów binarnych

+0

Możesz używać operatorów '&' i '|', jak opisano w http://stackoverflow.com/questions/17961092/how-do-ïdo-boolean-operation-on-mat-such-as- mat3-mat1-mat2 –

Odpowiedz

1

Oto jak to zrobić w Pythonie (ze zdjęcia powyżej) :

import cv2 

img1 = cv2.imread('black_top_right_triangle.png',0) 
img2 = cv2.imread('black_bottom_right_triangle.png',0) 

img_bwa = cv2.bitwise_and(img1,img2) 
img_bwo = cv2.bitwise_or(img1,img2) 
img_bwx = cv2.bitwise_xor(img1,img2) 

cv2.imshow("Bitwise AND of Image 1 and 2", img_bwa) 
cv2.imshow("Bitwise OR of Image 1 and 2", img_bwo) 
cv2.imshow("Bitwise XOR of Image 1 and 2", img_bwx) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

Jeśli chcesz zainstalować OpenCV dla Python, oszczędzaj czas, postępując zgodnie z these directions (instalacja historycznie była dość bolesna).