文章目录
一、图像融合
图像融合通常是指多张图像的信息进行融合,从而获得信息更丰富的结果,能够帮助人们观察或计算机处理。以下是将两张不清晰的图像融合得到更清晰的效果图。
图像融合是在图像加法的基础上增加了系数和亮度调节量,它与图像的主要区别如下:
- 图像加法:目标图像 = 图像 1 + 图像 2
- 图像融合:目标图像 = 图像 1 × 系数 1 + 图像 2 × 系数 2 + 亮度调节量
在 OpenCV 中,图像融合主要调用 addWeighted()函数实现,其原型如下。需要注意的是,两张融合图像的像素大小必须一致,参数 gamma 不能省略。
dst = cv2.addWeighted(scr1, alpha, src2, beta, gamma)
dst = src1 * alpha + src2 * beta + gamma
#coding:utf-8
import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取图片
src1 = cv2.imread('lena.webp')
src2 = cv2.imread('lena2.jpg')
#图像融合
result = cv2.addWeighted(src1, 1, src2, 1, 0)
#显示图像
cv2.imshow("src1", src1)
cv2.imshow("src2", src2)
cv2.imshow("result", result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
二、图像 ROI 区域定位
ROI(Region of Interest)表示感兴趣区域,是指从被处理图像以方框、圆形、椭圆、不规则多边形等方式勾勒出需要处理的区域。可以通过各种算子(Operator)和函数求得感兴趣 ROI 区域,被广泛应用于热点地图、人脸识别、图像分割等领域。如图获取 Lena 图的脸部轮廓。
通过像素矩阵可以直接获取 ROI 区域,如 img[200:400, 200:400]
# -*- coding: utf-8 -*-
# @Time : 2023/9/12 13:49
# @Author : admin vegetate
# @File : img_roi.py
# @Software: PyCharm
import cv2
import numpy as np
#读取图片
img = cv2.imread("lena.webp")
#定义 200×200 矩阵 3 对应 BGR
face = np.ones((200, 200, 3))
#显示原始图像
cv2.imshow("Demo", img)
#显示 ROI 区域
face = img[150:400,