OpenCV入门 图像的边缘填充与融合

总结:

 

图像的基本概念:

OpenCV 中图像读入的数据格式是ndarray 数据格式。

 

通道顺序的改变

ndarray的通道顺序为 B G R

更换通道顺序为 R G B

img=img[:,:,(2,1,0)]

0——B   1——G  2——R

 

图像属性 

即mat对象的属性

Img.shape:

输出(宽度,长度,通道数)

img.shape[0]:输出宽度

Img.shape[1]:输出长度

Img.shape[2]:输出通道数

Image.size:输出像素

Image.dtype:输出数据类型

输入

print("长度:", img.shape[1], "宽度:", img.shape[0], "通道:", img.shape[2], "像素:", img.size, "数据类型:", img.dtype)

输出

长度: 462 宽度: 489 通道: 3 像素: 677754 数据类型: uint8

 

图片的边缘填充

cv2.copyMakeBorder(原图像, 【目标图像】, 上方向扩充长度, 下方向扩充长度, 左方向扩充长度, 右方向扩充长度, borderType=填充操作的类型, 【常数填充时的颜色值】)

 

borderType: 填充的类型。OpenCV 填充的类型有:

BORDER_DEFAULT:将最近的像素进行复制填充;

BORDER_REPLICATE:复制最近的一行或一列像素并一直延伸至添加边缘的宽度或高度;

BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制。我们使用字母为例,左右复制abcdefgh靠近边缘的 6 个字母: fedcba | abcdefgh | hgfedc;

BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称复制。同样的,使用字母为例:gfedcba | abcdefg | gfedcba;

BORDER_WRAP:外包装法。相当于截断复制: cdefgh | abcdefgh | abcdefg;

BORDER_CONSTANT:常量法,常数值填充。

 

示例:

replicate = cv2.copyMakeBorder(img, 30, 30, 30, 30, borderType=cv2.BORDER_REPLICATE)

 

图像的融合

 

cv2.addWeighted(原图片1, 原图片1的权重, 原图片2, 原图片2的权重, 加和后的偏置量, 【输出图片】, 【输出图片的可选深度】)

被叠加的两幅图像必须是尺寸相同、类型相同的。

 

图片的重置大小

cv2.resize(需要重置的图片,【目标图片】, 【图片尺寸(M,N), x轴的缩放系数】, y轴的缩放系数】, 【插入方式】)

 

图片融合的示例

将图 2 苹果和梨的图像进行融合,权值分别为0.5, 0.5,输出图片大小为550×366

 

图2 苹果(左)和 梨(右)

 

具体步骤如下:

读取两个图像,并输出它们的尺寸:

​​​​​​​img_apple = cv2.imread('apple.png')

img_pear = cv2.imread('pear.png')

print('img_apple size', img_apple.shape)

print('img_pear size', img_pear.shape)

我们得到输出:

       可以看到,两张图片的的尺寸大小不同。这时,使用cv2.resize:

我们仅使用它的重置大小功能:

 

img_apple_resize = cv2.resize(img_apple, (550, 366))

img_pear_resize = cv2.resize(img_pear, (550, 366))

使用cv2.addWeighted函数实现图像融合:

res = cv2.addWeighted(img_apple_resize, 0.5, img_pear_resize, 0.5, 0)

融合后的图像如图 3 所示。

 

图3 融合后的图像

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
opencv红外与可见光图像融合是通过将红外图像和可见光图像进行融合处理,以提高图像的质量和信息的丰富性。 在opencv中,可以使用多种方法来实现红外与可见光图像融合。其中一种常用的方法是利用图像融合算法,如拉普拉斯金字塔融合算法或是小波变换融合算法。 首先,需要将红外图像和可见光图像进行预处理,包括对图像进行去噪和增强等操作。然后,可以使用拉普拉斯金字塔融合算法,将红外图像和可见光图像分别进行拉普拉斯金字塔分解,得到不同尺度的高频和低频图像。接着,将两个图像的低频部分进行加权平均,得到融合后的低频图像。最后,将高频图像进行相加或是相乘再进行重建,得到融合后的高频图像。将融合后的低频图像和高频图像进行重建,即可得到红外与可见光图像融合结果。 另一种常用的方法是小波变换融合算法。在这种方法中,首先将红外图像和可见光图像进行小波变换,得到红外和可见光的小波系数。然后,根据一定的权重将两个图像的小波系数进行融合,得到融合后的小波系数。最后,将融合后的小波系数进行反变换,即可得到红外与可见光图像融合结果。 无论是使用拉普拉斯金字塔融合算法还是小波变换融合算法,都可以实现红外与可见光图像融合。这种融合方法可以提取红外图像和可见光图像中的有用信息并进行综合,增强图像的质量和信息的丰富性,有助于进一步的图像处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值