图像融合算法java_opencv 图像加法与图像融合的实现代码

本文介绍了如何使用OpenCV和Numpy在Java中实现图像加法和图像融合。图像加法通过直接相加或使用OpenCV的`cv2.add`函数进行饱和运算。图像融合则涉及更复杂的算法,如`cv2.addWeighted`,结合各图像的特征以创建融合图像。示例代码展示了如何读取图像并应用这些操作。
摘要由CSDN通过智能技术生成

图像加法

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()

a6334ec6ace6ed2ae8835c0d65ff62e0.png

图像融合

将2张或者2张以上的图像信息融合到一张图片上。

不同于图像相加,它需进过一系列算法处理。

如将两张相同但各有不同缺陷的图,融合成一张完美图,结合各自优点。

876920ea7b37bd3cddafbc995d015308.png

图像加法:

结果图像=图像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()

b257f6e658e9003f128fd76c26ef0092.png

到此这篇关于opencv 图像加法与图像融合的实现代码的文章就介绍到这了,更多相关opencv 图像加法与图像融合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值