opencv python学习笔记(五)图像的算术与
来源:互联网 发布:apk软件破解论坛 编辑:程序博客网 时间:2024/06/18 10:05
数值都可以进行加减乘除等算术运算以及与或非等逻辑运算,同样的,图像也可以进行这些运算,最简单的,我们可以直接为整个图像某一通道的像素值进行简单的加减法,下面我们逐个展开描述一下。
1、加法
import cv2import numpy as npx = np.uint8([245])y = np.uint8([25])print(cv2.add(x,y))print(x+y)
这里我们可以通过cv2.add()来进行相加,不过如果用此方法时,若结果大于255,则输出255而不会输出真正的结果,而如果采用直接相加的方法,得到的结果若大于255,则会将结果对255取余,两次的输出结果如下:
[[255]]
[14]
除了最基本的加法,我们还可以对两幅图像按权相加,使得两幅图像按照一定的比例混合,代码如下:
import cv2import numpy as npimg1=cv2.imread('images/add1.jpg')img2=cv2.imread('images/add2.jpg')dst=cv2.addWeighted(img1,0.3,img2,0.7,0)cv2.imshow('dst',dst)cv2.waitKey(0)这里主要是用到了cv2.addWeighted()这个函数,要注意的是两幅图像的权重之和要为1
2、逻辑运算
import cv2import numpy as npimg1=cv2.imread('images/opencvw.png')img2=cv2.imread('images/test.jpg')rows,cols,channels=img1.shaperio=img2[0:rows,0:cols]imggray=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)
#第一步:先将logo图像灰度化
mask_inv=cv2.bitwise_not(imggray)#这里,由于logo图像原本为白底,为了方便后面的操作,我们对此图像的所有像素值进行非操作,使得图像变为黑底白字
ret,mask=cv2.threshold(mask_inv,10,255,cv2.THRESH_BINARY)#然后用threshold将转化后的图片二值化,这里的第二个参数阈值要取到合适的值,否则会出现转换后的图像内容显示不全的问题
maskinv=cv2.bitwise_not(mask)#再将二值化后的图像进行非操作,使其转化为白底黑字img1_fg=cv2.bitwise_and(rio,rio,mask=maskinv)#我们将rio部分的图像与自身以二值化后的图像为掩码进行与运算,0与任何数相与都为0,所以通过这一步,我们可以将黑色logo显示在主图的左上角部分img2_fg = cv2.bitwise_and(img1,img1,mask = mask)#将rio部分与自己以mask为掩码进行与运算,因为mask图像经过上面的转换是一幅黑底白字的图像,除背景之外其余的内容均不为零,所以经过与运算可以为logo上色dst=cv2.add(img1_fg,img2_fg)
#将两幅图片相加即可得到带主图背景以及logo颜色的rio大小的图片img2[0:rows,0:cols]=dst#最后,将得到的图片复制到主图的对应位置,再将整合后的图片显示出来,大功告成!cv2.imshow('ss',img2)cv2.waitKey(0)
阅读全文
0 0
- opencv python学习笔记(五)图像的算术与
- opencv(五)--图像的算术运算
- OpenCV学习笔记7-图像算术运算
- Python下opencv使用笔记(五)(图像的平滑与滤波)
- python opencv入门 图像上的算术运算(7)
- OpenCV 2 学习笔记(8): 利用邻域处理图像与简单的算术图像处理算法:图像滤波与加权和
- Python-OpenCV图像算术运算
- openCV Python 学习笔记(一)图像的基本操作
- Python+OpenCV学习(1)---图像的读取与保存
- Python+OpenCV学习(2)---图像的合并与拆分
- OpenCV python学习笔记(五)
- opencv-python(6):图像上的算术运算
- OpenCV学习笔记(五):计算图像直方图
- OpenCV学习笔记(五)图像掩码操作
- 我的OpenCV学习笔记(五):给图像加上边框
- OpenCV for Python 学习笔记 1.1 图像的读取
- OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
- Opencv Python版学习笔记(一)图像直方图
- SQL Server 数据库的备份
- 微信抢票平台实践
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 用angular制作日程表
- ASP.NET学习笔记(二)——一般处理程序之图片上传
- opencv python学习笔记(五)图像的算术与
- exam02
- java直接输出对象默认调用toString()
- java数组
- axis1.4生成webservice客户端代码
- java多线程之fork/join
- 收藏的网站地址
- 10.15
- 侧滑,头条,XlistView