Python3与OpenCV3.3 图像处理(五)--图像运算

 2023-09-05 阅读 267 评论 0

摘要:一、本节简介 图像运算也就是像素运算,简单的说就是利用算术运算或逻辑运算,对图像的每个像素进行处理(例如两个图像的合并)。虽然我们可以像第二节课那样,一个像素一个像素的遍历并修改值,但是如果图像分辨率很大的情况下,

一、本节简介

图像运算也就是像素运算,简单的说就是利用算术运算或逻辑运算,对图像的每个像素进行处理(例如两个图像的合并)。虽然我们可以像第二节课那样,一个像素一个像素的遍历并修改值,但是如果图像分辨率很大的情况下,会处理的很慢,并且处理一些复杂的运算时,我们的代码效率会变得更低,代码编写出来也变得很麻烦。这节课就来讲解以下OpenCV中对图像运算的方法。

注意:我们在处理两个图像时,图像的像素大小和类型要完全一致,否则OpenCV就会报错。

 


二、算术运算

图像算术运算就是对两个图像的每个像素点执行加减乘除的运算,从而得到一个新的图像。代码如下

 

def add(image1,image2):"""图片相加"""dst=cv.add(image1,image2)cv.imshow("add image",dst)def subtract(image1,image2):"""图片相减"""dst=cv.subtract(image1,image2)cv.imshow("subtract image",dst)def divide(image1,image2):"""图片相除"""dst=cv.divide(image1,image2)cv.imshow("divide image",dst)def multiply(image1,image2):"""图片相乘"""dst=cv.multiply(image1,image2)cv.imshow("multiply image",dst)

三、逻辑运算

图像的逻辑运算就是对图像的每个像素点执行与或非的运算,从而得到一个新的图片,代码如下

 

def logic(image1,image2):"""逻辑运算"""#与操作dst=cv.bitwise_and(image1,image2)cv.imshow("logic",dst)# 或操作(与相加操作类似)dst = cv.bitwise_or(image1, image2)cv.imshow("logic", dst)# 非操作(像素取反)dst = cv.bitwise_not(image1)cv.imshow("logic", dst)

四、其他算数运算

def others(image1,image2):#计算每个通道的平均值m1= cv.mean(image1)m2 = cv.mean(image2)#计算每个通道的平均值和方差m1,dev1=cv.meanStdDev(image1)m2,dev2=cv.meanStdDev(image2)print(m1,dev1)print(m2,dev2)

五、简单的Demo

 

def contrast_brightness(image,c,b):"""修改亮度和对比度c:对比度b:亮度"""#获取图片的高、宽和通道数h,w,ch=image.shape#创建一个全黑色的图片blank=np.zeros([h,w,ch],image.dtype)#调整亮度和对比度dst=cv.addWeighted(image,c,blank,1-c,b)cv.imshow("con-bri",dst)
 

 

觉得不错打赏一下

 

转载于:https://www.cnblogs.com/BMFramework/p/10017292.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/172.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息