设为首页 加入收藏

TOP

OpenCV Python教程:图像算术运算与逻辑运算
2023-07-26 08:18:21 】 浏览:85
Tags:OpenCV Python 教程

OpenCV Python教程:图像算术运算与逻辑运算



OpenCV Python教程:图像算术运算与逻辑运算


首先,让我们看看一个简单的加法会做什么:


结果:


OpenCV Python教程:图像算术运算与逻辑运算


您不太可能想要这种凌乱的添加。 OpenCV有一个“添加”方法,让我们看看它的作用,将以前的“添加”替换为:


add = cv2.add(img1,img2)


结果:


OpenCV Python教程:图像算术运算与逻辑运算


在这里也可能不是理想的选择。 我们可以看到很多图像非常“白”。 这是因为颜色是0-255,其中255是“全光”。 因此,例如:(155,211,79) + (50, 170, 200) = 205, 381, 279...转换为 (205, 255,255).


接下来,我们可以添加图像,并且可以说每个图像都带有不同的“权重”。 这可能是这样的:


对于addWeighted方法,参数是第一个图像,权重,第二个图像,权重,最后是伽玛,它是光的度量。我们暂时将其保留为零。


结果:


OpenCV Python教程:图像算术运算与逻辑运算


这些是一些附加选项,但是如果您确实想将一个图像添加到另一个图像中,而最新图像与第一个图像重叠,该怎么办?在这种情况下,您将从最大的图像开始,然后添加较小的图像。为此,我们将使用相同的linuxidc.png图像,但使用一个新的Linux公社LOGO:


 


现在,我们可以使用此徽标,并将其放置在原始图像上。这将非常容易(基本上使用与上一教程中使用的相同的代码,其中我们用新代码替换了图像区域(ROI)),但是如果我们只想要LOGO部分而不是白色背景怎么办? ?我们可以使用与以前用于ROI替换相同的原理,但是我们需要一种“去除”LOGO背景的方法,以使白色不会不必要地阻挡更多的背景图像。首先来看看完整的代码,然后说明:


这里发生了不少事情,出现了一些新情况。我们看到的第一个新东西,是一个阈值的应用:ret, mask = cv2.threshold(img2gray, 220, 255, cv2.THRESH_BINARY_INV)。


我们将在下一篇教程中,我们将进一步介绍阈值,因此请继续关注,但是基本上它的工作方式是根据阈值将所有像素转换为黑色或白色。在本例中,阈值为220,但是我们可以使用其他值,甚至可以动态选择一个值,这就是ret变量的作用。接下来,我们看到:mask_inv = cv2.bitwise_not(mask)。这是一个按位操作。基本上,这些运算符与Python中的典型运算符非常相似,除了一个运算符外,我们在这里不会涉及它。在这种情况下,不可见部分就是黑色所在的位置。然后,可以说我们要在第一个图像中将该区域涂黑,然后取图2,把它的内容替换到那个空白处的内容。


结果:


OpenCV Python教程:图像算术运算与逻辑运算


在下一篇教程中,我们将更深入地讨论阈值设置。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇深入理解volatile关键字 下一篇OpenCV Python教程:图像阈值

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目