import cv2 as cv
import numpy np
x=np.uint8([250])
y=np.uint8([10])
cv.add(x,y) # 250+10 = 260 => 255
x+y # 250+10 = 260 % 256 = 4
img1 = cv.imread('ml.png')
img2 = cv.imread(opencv-logo.png)
dst = cv.addWeighted(img1,0.7,img2,0.3,0)
cv.imshow(dst3、按位运算
这包括按位?AND
、?OR
、NOT
?和?XOR
?操作。它们在提取图像的任何部分、定义和处理非矩形 ROI 等方面非常有用。 下面我们将看到一个例子,如何改变一个图像的特定区域。 我想把 OpenCV 的标志放在一个图像上面。如果我添加两个图像,它会改变颜色。如果我混合它,我得到一个透明的效果。但我希望它是不透明的。如果是一个矩形区域,我可以使用 ROI,就像我们在上一章中所做的那样。但是 OpenCV 的 logo 不是长方形的。所以你可以使用如下的按位操作来实现:
我想在图像上方放置OpenCV徽标。如果添加两个图像,它将改变颜色。如果混合它,我将获得透明效果。但我希望它不透明。如果是矩形区域,则可以像上一章一样使用ROI。但是OpenCV徽标不是矩形。因此,您可以按如下所示进行按位操作:
# 加载两张图片
img1 = cv.imread(messi5.jpgopencv-logo-white.png)
我想把logo放在左上角,所以我创建了ROI
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols ]
现在创建logo的掩码,并同时创建其相反掩码
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret,mask = cv.threshold(img2gray,10,255 cv.bitwise_not(mask)
现在将ROI中logo的区域涂黑
img1_bg = cv.bitwise_and(roi,roi,mask = mask_inv)
仅从logo图像中提取logo区域
img2_fg = cv.bitwise_and(img2,1)"> mask)
将logo放入ROI并修改主图像
dst = cv.add(img1_bg,img2_fg)
img1[0:rows,0:cols ] = dst
cv.imshow(res(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!