比方說,我有兩個相同大小的二進制圖像。我如何找到兩個二進制圖像之間的交集?只有在白色(灰色 - 255)的兩幅圖像上相同座標(位置)的像素會在輸出圖像(交叉點)上產生白色像素。OpenCV - 兩個二進制圖像之間的交點
13
A
回答
34
您可以在兩張圖片上使用cvAnd或cv::bitwise_and。只有在輸入圖像都是白色的情況下,所得圖像纔會變白。
編輯:下面是關於二進制圖像施加cv::bitwise_and,cv::bitwise_or和cv::bitwise_xor的結果:
這是兩個源圖像:
這裏是施加cv::bitwise_and的結果:
這裏是應用cv::bitwise_or的結果:
這裏是應用cv::bitwise_xor的結果:
1
下面介紹如何在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()
如果您需要爲Python
安裝OpenCV
,請遵循these directions節省時間(安裝過去一直非常痛苦)。
相關問題
- 1. 用於OpenCV的二進制圖像
- 2. 使用OpenCV檢測二進制圖像的分叉和端點
- 3. 二進制矩陣的兩點之間的最短路徑
- 4. 用於C++圖像分析的OpenCV二進制圖像蒙版
- 5. 在OpenGL中繪製兩個點雲之間的交點
- 6. 圓和二進制圖像的交點MATLAB
- 7. 在OpenCV中將灰度圖像轉換爲二進制圖像
- 8. opencv/C++中兩個圖像之間的相應值
- 9. 如何檢測opencv中兩個圖像之間的變化?
- 10. 使用OpenCV在圖像中找到兩個點之間的角度
- 11. OpenCV - 二進制圖像中所有非零像素的位置
- 12. 在opencv中讀取二進制圖像的像素值
- 13. opencv將二進制圖像的像素值寫入文件
- 14. OpenCV:在二進制圖像中繪製對象的輪廓
- 15. OpenCV中兩點之間的距離
- 16. 在攝像頭反饋中檢測兩條線之間的交叉點opencv
- 17. 在二進制圖像中找到物體之間的距離
- 18. 二進制圖像
- 19. 二進制圖像中2點之間的轉換數0到1
- 20. 測量兩個二進制文件之間的相似性?
- 21. 複製兩個圖像到一個圖像與OpenCV的2.4.2
- 22. 二進制圖像角點檢測
- 23. 在opencv二進制圖像中計數'白色'像素(高效)
- 24. OpenCV二進制圖像只得到白色像素不工作
- 25. 獲取圖像中兩個點之間的像素數
- 26. Android的交易圖像之間的兩個片段
- 27. 如何在opencv C++中的兩點之間繪製一條線
- 28. C#在兩個圖像之間繪製變化的像素
- 29. 蟒,OpenCV的,圖像陣列以二進制
- 30. OpenCV:枚舉二進制圖像中的形狀?
您可以使用'&'和'|'運算符,如http://stackoverflow.com/questions/17961092/how-do-i-do-boolean-operation-on-mat-such-as- MAT3-MAT1,MAT2 –