假设我有两个相同大小的二进制图像。如何找到两个二进制图像之间的交点?在白色(灰色-255)的两个图像上,只有坐标(位置)相同的像素才会在输出图像(相交)上给出白色像素。
您可以在两个图像上使用cvAnd或cv::bitwise_and。仅当两个输入图像均为白色时,结果图像才会为白色。
编辑:这是在二进制图像上应用cv::bitwise_and,cv::bitwise_or和cv::bitwise_xor的结果:
这是两个源图像:
这里是应用cv::bitwise_and的结果:
这里是应用cv::bitwise_or的结果:
这里是应用cv::bitwise_xor的结果:
以下是在python中的操作方法(带有上图):
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()
如果需要为OpenCV
安装Python
,请遵循these directions来节省时间(安装历来是一件很痛苦的事情。
对于现实图像,计算时间不是很大(或不可能)吗?