目录
一、图像的加法
1、numpy加法
numpy的加法是一种取模运(取余数)
我们简单看一下在二进制里面是怎么样表现的,比如在8位的二进制里面
在加法运算时,小于255时,那就是和;如果大于255时,我们取模运算
2、opencv加法
在加法运算时,小于255时,那就是和;如果大于255时,我们取255
3、代码
import cv2
import numpy as np
img1=cv2.imread("/Users/admin/Desktop/模型数据/testz.png",0)
img2=img1
imgnp=img1+img2
imgcv=cv2.add(img1,img2)
cv2.imshow("original",img1)
cv2.imshow("numpy",imgnp)
cv2.imshow("opencv",imgcv)
cv2.waitKey(0)
cv2.destroyAllWindows()
我们分别看下两种运算的结果
我们发现opencv的鲜果要比numpy更加接近实际的图像。
二、图像融合
addWeighted函数
addWeighted( src1, alpha, src2, beta, 0.0, dst)
1、 第1个参数,输入图片1,
2、第2个参数,图片1的融合比例
3、第3个参数,输入图片2
4、第4个参数,图片2的融合比例
5、第5个参数,偏差,不能省略
6、第6个参数,输出图片,可选
计算的方式如下:
代码:
import cv2
img1=cv2.imread("/Users/admin/Desktop/模型数据/lena.bmp",0)
img2=cv2.imread("/Users/admin/Desktop/模型数据/boat.bmp",0)
result=addWeighted(img1,1,img2,1,0)
cv2.imshow("img1",img1)
cv2.imshow("img2",img2)
cv2.imshow("result",result)
cv2.waitKey(0)
cv2.destroyAllWindows()
上面我们时按照1:1的融合
下面我们该下融合比例分别看一下
import cv2
img1=cv2.imread("/Users/admin/Desktop/模型数据/lena.bmp",0)
img2=cv2.imread("/Users/admin/Desktop/模型数据/boat.bmp",0)
result1=cv2.addWeighted(img1,1,img2,0.1,0)
result2=cv2.addWeighted(img1,1,img2,0.5,0)
result3=cv2.addWeighted(img1,1,img2,1,0)
cv2.imshow("result1",result1)
cv2.imshow("result2",result2)
cv2.imshow("result3",result3)
cv2.waitKey(0)
cv2.destroyAllWindows()
通过调节第二个图像的比例的不断增加,img1图像越来越暗,而img2越来越明显