0
OpenCVを使用して複数の画像を縫い合わせています。それは働き始めているが、私は1つのことに問題がある。 cv2.warpPerspective
イメージの後に、 "柔らかい"ボーダーがあります。これは、計算されたマスクが大きすぎる1ピクセルであることを意味します。画像をステッチングする[OpenCV Python]
マイコード:
# apply a perspective warp to stitch the images
# together
result = cv2.warpPerspective(imageA, H,
(imageA.shape[1] + imageB.shape[1], imageA.shape[0]))
# Now create a mask of logo and create its inverse mask also
img2gray = cv2.cvtColor(result,cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 0, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)
resizedB = np.zeros((result.shape[0],result.shape[1],3), np.uint8)
resizedB[0:imageB.shape[0], 0:imageB.shape[1]] = imageB
difference = cv2.bitwise_or(resizedB,result, mask=mask_inv)
result = cv2.add(result,difference)
cv2.imwrite('result .jpg', result)
私はcv2.add
を使用して、両方の画像を追加すると、接続時にほとんど黒のラインを作っている、それはあまりにも明るいなるためcv2.bitwise_or
を使用する必要がありました。 これを修正する方法はありますか?マスクを1ピクセル小さくするためにマスクを変更する方法がありますか?
あなたは、他の言葉で、両方の接続脇 – Pedro
をブレンドし、遷移があるグラデーションマスクを使用することができ、色のしきい値を使用したグラデーションマスクを得るためにそこに方法は何ですか?私はそこにいるとは思わない。与えられた画像を使ってマスクを得る他の方法を知っていますか? – Ekci
あなたはhttp://stackoverflow.com/questions/37911062/how-to-obtain-the-right-alpha-value-to-perfectly-blend-two-images/37918596#に似た画像の境界からの距離を計算することができます37918596それをブレンドマスクとして使う – Micka