gpt4 book ai didi

opencv - 使用 OpenCv 重叠图像的问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:44 26 4
gpt4 key购买 nike

我试图将 Logo 图片与另一张图片重叠,但得到了这个:

第 10 行错误:(-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'cv::binary_op'

我尝试运行的代码片段如下:

img2 = cv2.imread('Capture.jpg' , cv2.IMREAD_COLOR)
logo = cv2.imread('pyt.jpg')

rows , cols , channel = img2.shape
roi = img2[0:rows , 0:cols]
gray_img = cv2.cvtColor(logo , cv2.COLOR_BGR2GRAY)

ret , mask = cv2.threshold(gray_img , 220 , 255 , cv2.THRESH_BINARY)
#cv2.imshow('mask' , mask)
mask_inv = cv2.bitwise_not(mask)
#cv2.imshow('img' , mask_inv)

img_bg = cv2.bitwise_and(roi , roi , mask = mask_inv) #error on this line
#img_fg = cv2.bitwise_and(logo, logo , mask = mask)
#dst = cv2.add(img_bg , img_fg)
#logo[0:row , 0:col] = dst
#cv2.imshow('img' , img1)

cv2.waitKey(0)
cv2.destroyAllWindows()

最佳答案

诀窍在于掩码应该与目标具有相同的大小。您的代码中的错误来自这部分:

rows , cols , channel = img2.shape
roi = img2[0:rows , 0:cols]

roi 应该是 Logo 的大小,而不是整个图像!

不使用按位运算,只使用掩码复制 Logo 要简单得多,当然要注意 ROI 大小:

rows , cols = logo.shape[:2]
roi = img2[0:rows , 0:cols]

cv.copyTo(logo, mask, roi)

关于opencv - 使用 OpenCv 重叠图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com