web-dev-qa-db-ja.com

OpenCV-2つのバイナリイメージ間の交差

同じサイズの2つのバイナリイメージがあるとしましょう。 2つのバイナリイメージ間の交差を見つけるにはどうすればよいですか?白(灰色-255)の2つの画像上の同じ座標(位置)のピクセルのみが、出力画像(交差)に白いピクセルを与えます。

16
XterNalz

2つの画像で cvAnd または cv :: bitwise_and を使用できます。結果の画像は、両方の入力画像が白である場合にのみ白になります。

編集:バイナリイメージに cv :: bitwise_andcv :: bitwise_or および cv :: bitwise_xor を適用した結果は次のとおりです。

これらは2つのソース画像です:

image 1image 2

これが適用の結果です cv :: bitwise_and

imgAnd

これが適用の結果です cv :: bitwise_or

imgOr

これが適用の結果です cv :: bitwise_xor

imgXor

47
Ove

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をインストールする必要がある場合は、 これらの指示 (インストールは歴史的にかなり苦痛でした)に従って時間を節約してください。

5
zelusp