数商云电子商务网站建设,手机站和网站有区别吗,wordpress标签生成图片不显示,网络公司经营范围参考目录
目标
图像加法
图像融合
按位运算 目标 学习图像的几种算术运算#xff0c;例如加法#xff0c;减法#xff0c;按位运算等。 您将学习以下功能#xff1a;cv.add#xff0c;cv.addWeighted等。
图像加法
您可以通过OpenCV函数cv.add()或仅通过numpy操作res …目录
目标
图像加法
图像融合
按位运算 目标 学习图像的几种算术运算例如加法减法按位运算等。 您将学习以下功能cv.addcv.addWeighted等。
图像加法
您可以通过OpenCV函数cv.add()或仅通过numpy操作res img1 img2添加两个图像。两个图像应具有相同的深度和类型或者第二个图像可以只是一个标量值。 注意 OpenCV加法和Numpy加法之间有区别。OpenCV加法是饱和运算而Numpy加法是模运算。 例如考虑以下示例 x np.uint8([250]) y np.uint8([10]) print( cv.add(x,y) ) # 25010 260 255 [[255]] print( xy ) # 25010 260 % 256 4 [4] 当添加两个图像时它将更加可见。OpenCV功能将提供更好的结果。因此始终最好坚持使用OpenCV功能。
图像融合
这也是图像加法但是对图像赋予不同的权重以使其具有融合或透明的感觉。根据以下等式添加图像 G(x) (1 - \alpha)f_0(x) \alpha f_1
通过从 α 从 0→1 更改您可以在一个图像到另一个图像之间执行很酷的过渡。
在这里我拍摄了两个图像将它们融合在一起。第一幅图像的权重为0.7第二幅图像的权重为0.3。cv.addWeighted()在图像上应用以下公式。 在这里γ 被视为零。 img1 cv.imread(ml.png) img2 cv.imread(opencv-logo.png) dst cv.addWeighted(img1,0.7,img2,0.3,0) cv.imshow(dst,dst) cv.waitKey(0) cv.destroyAllWindows() 检查以下结果 按位运算
这包括按位 AND、 OR、NOT 和 XOR 操作。它们在提取图像的任何部分(我们将在后面的章节中看到)、定义和处理非矩形 ROI 等方面非常有用。 下面我们将看到一个例子如何改变一个图像的特定区域。 我想把 OpenCV 的标志放在一个图像上面。如果我添加两个图像它会改变颜色。如果我混合它我得到一个透明的效果。但我希望它是不透明的。如果是一个矩形区域我可以使用 ROI就像我们在上一章中所做的那样。但是 OpenCV 的 logo 不是长方形的。所以你可以使用如下的按位操作来实现:
我想在图像上方放置OpenCV徽标。如果添加两个图像它将改变颜色。如果混合它我将获得透明效果。但我希望它不透明。如果是矩形区域则可以像上一章一样使用ROI。但是OpenCV徽标不是矩形。因此您可以按如下所示进行按位操作 # 加载两张图片 img1 cv.imread(messi5.jpg) img2 cv.imread(opencv-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.THRESH_BINARY) mask_inv cv.bitwise_not(mask) # 现在将ROI中logo的区域涂黑 img1_bg cv.bitwise_and(roi,roi,mask mask_inv) # 仅从logo图像中提取logo区域 img2_fg cv.bitwise_and(img2,img2,mask mask) # 将logo放入ROI并修改主图像 dst cv.add(img1_bg,img2_fg) img1[0:rows, 0:cols ] dst cv.imshow(res,img1) cv.waitKey(0) cv.destroyAllWindows() 请看下面的结果。左图显示了我们创建的mask。右图显示最终结果。为了更好地理解显示上面代码中的所有中间映像特别是 img1_bg 和 img2_fg。