[转载] opencv学习笔记7:图像加法与图像融合

参考链接: python opencv 基础 4: addWeighted() 融合两张图像

图像加法 

1.使用Numpy加法 

运算方式:结果=图像1+图像2 

原理:图像数据格式为unit8 8位二进制表示范围是0到255。 二进制相加 1.不超过255的,如100+58=158 2.两数相加可能超过255,超过255的取模运算 如255+58=(255+58)%255=58 2.使用opencv加法 

方法:结果=cv2.add(图像1,图像2) 饱和运算: 1.如果 两数相加小于255,100+58=158 2.两数相加可能超过255,值取255.255+58=255 

算法比较 

注意参与运算的两个图比较大小 格式一样。程序无法对不同尺寸和格式(如PNG,JPG)进行运算。 

import cv2

import numpy as np

a=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变

b = a

result1 = a + b

result2 = cv2.add(a, b)

cv2.imshow("original", a)

cv2.imshow("result1", result1)

cv2.imshow("result2", result2)

cv2.waitKey(0)

cv2.destroyAllWindows()

 

 

 

 图像融合 

将2张或者2张以上的图像信息融合到一张图片上。 不同于图像相加,它需进过一系列算法处理。 如将两张相同但各有不同缺陷的图,融合成一张完美图,结合各自优点。  图像加法: 结果图像=图像1+图像2 图像融合: 结果图像=图像1x系数1+图像2x系数2+亮度调节量 

方法:函数addWeighted cv2.addWeighted(图像1,系数1,图像2,系数2,亮度调节量) 

算例 算例中系数为1,1.实际中,我们一般设为不等 

import cv2

b=cv2.imread('lena.bmp')#cv2.IMREAD_UNCHANGED 未改变

a=cv2.imread("boat.bmp")

result=cv2.addWeighted(a,1,b,1,0)

cv2.imshow("boat",a)

cv2.imshow("lena",b)

cv2.imshow("result",result)

cv2.waitKey()

cv2.destroyAllWindows()

 

 

总目录链接: python3+opencv学习笔记汇总目录(适合基础入门学习)  电气专业的计算机小白,写博文不容易,如果你觉得本文对你有用,请点个赞 支持下。

上一篇:剑指 Offer 58 - I. 翻转单词顺序(双指针)


下一篇:Ora-01830 日期格式图片在转换整个输入字符串之前结束