三种融合 注意融合时,一般来说两个图像的尺寸是一样大小的,如果大小不一样,需要把大的图像的某一部分先截出来,与小的图先融合,再作为整体替换掉原来大图中抠出的小图部分。 """ # @Time : 2020/4/3 # @Author : JMChen """ import cv2 as cv img1 = cv.imread('logo.png') img2 = cv.imread('lena.png') # 在lena.png获取和logo.png大小相同的ROI rows, cols, channels = img1.shape img_ROI1 = img2[0:rows, 在Python编程环境中,OpenCV库是一个非常强大的工具,主要用于图像处理和计算机视觉任务。本教程主要探讨如何使用OpenCV模块实现图像的融合,这是一种将两个或更多图像的特征结合在一起的技术,创造出具有新视觉效果的新图像。 我们导入必要的库,即OpenCV库,并用别名`cv`表示: ```python import cv2 as cv ``` 接下来,读取两幅图像,例如'logo.png'和'lena.png': ```python img1 = cv.imread('logo.png') img2 = cv.imread('lena.png') ``` 在进行图像融合之前,我们需要确保两个图像的尺寸相同。如果尺寸不同,我们需要调整它们,使它们能够相互融合。在示例中,我们获取`img1`的尺寸,并在`img2`中提取对应大小的区域: ```python rows, cols, channels = img1.shape img_ROI1 = img2[0:rows, 0:cols] ``` 这里展示了三种不同的融合方法: 1. **简单加权融合**:通过加权平均将两幅图像融合在一起。`addWeighted()`函数可以实现这一点: ```python img_ROI2 = cv.addWeighted(img1, 0.7, img_ROI1, 0.3, 0) img2[0:rows, 0:cols] = img_ROI2 ``` 参数分别是源图像1、权重1、源图像2、权重2以及伽马校正常数,这里的0意味着没有伽马校正。 2. **基于掩模的融合**:我们将`img1`转换为灰度图像,然后通过阈值分割创建一个掩模。接着,使用掩模和按位与操作去除`img_ROI1`中非0部分,然后将处理后的图像与`img1`相加,替换原图像的部分区域: ```python img1_gray = cv.cvtColor(img1, cv.COLOR_BGR2GRAY) ret, mask = cv.threshold(img1_gray, 10, 255, cv.THRESH_BINARY) mask_inv = cv.bitwise_not(mask) new_img2 = cv.bitwise_and(img_ROI1, img_ROI1, mask=mask_inv) dst = cv.add(img1, new_img2) img2[0:rows, 0:cols] = dst ``` 3. **另一种加权融合**:这里我们使用`addWeighted()`函数对前两种方法的结果进行融合,调整不同的权重以获得最终的融合效果: ```python dst_1 = cv.addWeighted(img_ROI1, 0.55, dst, 0.45, 0) img2[0:rows, 0:cols] = dst_1 ``` 我们可以使用`imshow()`函数显示融合后的图像,并通过`waitKey()`函数等待用户按键,以便在窗口关闭之前暂停程序执行。在完成所有操作后,调用`destroyAllWindows()`关闭所有窗口: ```python cv.imshow('img2', img2) cv.waitKey(0) cv.imshow('res', img2) cv.waitKey(0) cv.imshow('res_2', img2) cv.waitKey(0) cv.destroyAllWindows() ``` 图像融合的应用广泛,例如在医学成像、遥感图像分析、艺术创作等领域都有所体现。通过调整加权参数,我们可以控制不同图像在最终结果中的相对强度,从而实现预期的视觉效果。在实际应用中,可以根据需求微调这些参数,以达到最佳融合效果。
- 粉丝: 2
- 资源: 915
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 1_base.apk (1).1
- 数据结构和算法必知必会的50个代码实现.zip
- python精典面试题(优于八股文)
- OpenCV、C++、水果识别、Qt界面、颜色识别、边缘检测、图像处理(完整代码)
- exus桌面美化插件是一款模仿MAC桌面风格而开发的桌面壁纸工具,我们不仅可以通过Nexus桌面美化工具来将自己的Windows
- 微信公众号租用管理系统修复版+搭建教程+免授权开心版.zip
- 易语言教程文本打乱的写法
- 使用mqtt协议,将stm32数据上传到阿里云,通过微信小程序远程控制stm32(完整代码)
- 教孩子学编程 python语言版 teachYourKidsToCode
- 基于MATLAB人脸识别代码界面版.zip