学习图像的算术运算-600学习网

600学习网终身会员188,所有资源无秘无压缩-购买会员

介绍

还记得你在小学学习如何加减数字吗?现在,你可以用图像做同样的事情!

输入图像可以执行算术运算,例如加法.减法和逐位运算(and.OR.NOT.XOR)。这些操作可以帮助提高输入照片的质量。

在本文中,您将学习使用OpenCV Python包对图像执行算术和逐位操作的步骤。让我们开始吧!

对图像执行算术运算意味着什么?

因此,假设我们要合并两张单独照片中的两个像素。我们如何将它们结合起来?

让我们想象一下下面的场景。第一个像素的颜涩强度为(200,0,0),而第二个像素的涩强度为(100,0,1)。如果我们把这些值加在一起,我们得到(300,0,0)。这在处理RGB图像时是完全可能的。

那么,我们如何在Python中解决这个问题呢?

该解决方案附带了一个OpenCV库,它实现了cv2.add()和cv2.subtract()函数。

要执行这些操作,必须在系统上安装OpenCV Python库。

算术运算:图像添加

使用cv2.add()函数,我们可以添加两个图像。Cv2.add()将图片像素添加到两个图像中。执行此操作时需要记住的一点是,这两个图像应该具有相同的深度和类型,或者第二个图像可以只是一个标量值。

此函数的语法为:cv2.add(img1,img2)

对于这个博客,我们将考虑以下两个图像来将它们添加到一起。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

在执行算术运算之前,必须知道如何读取和显示加载的图像。

现在,按照下面的代码片段阅读,执行两个图像的添加,最后显示添加的图像。

导入cv2

img1=cv2.imread('image1_add.jpg',1)

#或

#img1=cv2.imread('C:UsersAdminDownloadsimage1_add.jpg',1)

cv2.imshow(图像1,img1)

cv2.waitKey(0)

cv2.销毁所有Windows()

img2=cv2.imread('image2_add.jpg',1)

#或

#img2=cv2.imread('C:UsersAdminDownloadsimage_add.jpg',1)

cv2.imshow(图像2,img2)

cv2.waitKey(0)

cv2.销毁所有Windows()

#添加图像

added_img=cv2.add(img1,img2)

cv2.imshow('添加图像',Added_img)

cv2.waitKey(0)

cv2.销毁所有Windows()

从上述代码片段添加的图像如下:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

这只是一个简单的加法。我们可以使用另一个名为cv2.addWeighted的函数来混合图像。这类似于图像添加,但图像被赋予不同的权重以创建混合或透明度的错觉。

此函数的语法为:cv2.addWeighted(img1,wt1,img2,wt2,gamma Value)

按照下面的代码片段对两幅图像执行加权相加。

导入cv2

img1=cv2.imread('image1_add.jpg',1)

#或

#img1=cv2.imread('C:UsersAdminDownloadsimage1_add.jpg',1)

cv2.imshow(图像1,img1)

cv2.waitKey(0)

cv2.销毁所有Windows()

img2=cv2.imread('image2_add.jpg',1)

#或

#img2=cv2.imread('C:UsersAdminDownloadsimage_add.jpg',1)

cv2.imshow(图像2,img2)

cv2.waitKey(0)

cv2.销毁所有Windows()

#加法-加权加法

added_wt_img=cv2.add加权(img1,0.6,img2,0.4,0)

cv2.imshow('添加权重图像',Added_wt_img)

cv2.waitKey(0)

cv2.销毁所有Windows()

加权加法的输出如下:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

这里,拍摄了两幅图像,将它们混合在一起。第一张图片的权重为0.6,第二张图片的重量为0.4。您可以根据需要更改图片的权重!

算术运算:图像减法

就像添加两幅图像一样,您可以减去两幅图像。这可以使用cv2.subtract()函数完成。请注意,要减去的图像必须具有相同的大小和深度。

此函数的语法为:cv2.subtract(src1,src2)

下面的代码片段展示了如何减去两幅图像。先前使用的图像(我们另外使用的图像)已被减去。

导入cv2

img1=cv2.imread('image1_add.jpg',1)

#或

#img1=cv2.imread('C:UsersAdminDownloadsimage1_add.jpg',1)

cv2.imshow(图像1,img1)

cv2.waitKey(0)

cv2.销毁所有Windows()

img2=cv2.imread('image2_add.jpg',1)

#或

#img2=cv2.imread('C:UsersAdminDownloadsimage_add.jpg',1)

cv2.imshow(图像2,img2)

cv2.waitKey(0)

cv2.销毁所有Windows()

img=cv2减法(img1,img2)

cv2.imshow(减影图像,sub_img)

cv2.waitKey(0)

cv2.销毁所有Windows()

减去的图像如下:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

还可以试着减去两幅简单的图像,使它们更容易理解。使用的两张图片是:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

减去的输出为:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

既然我们已经学习了如何对图像执行算术运算,我们将继续对图像执行逐位运算。

按位操作

当我们只需要提取图像所需的元素时,我们将使用逐位操作。这些逐位技术用于各种计算机视觉应用,例如创建图像掩模.将水印应用于图像以及创建新图像。与OpenCV中的其他变形方法相比,这些操作适用于图像中的单个像素,以产生更准确的结果。在开始图像上的And.Or和Not操作之前,假设您熟悉三个基本的位运算符:And.Or和Not。OpenCV包含用于执行AND.OR和NON操作的内置函数。它们是按位与.按位与或按位非。考虑以下两个黑白图像。现在让我们将这三个操作应用于这两个图像,看看会发生什么。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

导入cv2

#读取图像

img1=cv2.imread('位_image_1.jpg')

img2=cv2.imread('位_image_2.jpg')

位_与=cv2.位_与(img1,img2)

位_或=cv2.位_或(img1,img2)

位_非=cv2.位_非(img1)

cv2.imshow('img1',img1)

cv2.waitKey(0)

cv2.销毁所有Windows()

cv2.imshow('img2',img2)

cv2.waitKey(0)

cv2.销毁所有Windows()

cv2.imshow(与,位_AND)

cv2.waitKey(0)

cv2.销毁所有Windows()

cv2.imshow('OR',位_OR)

cv2.waitKey(0)

cv2.销毁所有Windows()

cv2.imshow('NOT',位_NOT)

cv2.waitKey(0)

cv2.销毁所有Windows()

上述代码段的输出如下所示:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

我希望您已经学会了如何使用OpenCV对图像执行算术和逐位运算。

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » 学习图像的算术运算-600学习网