opencv学习(6)

图像混合

目录

任务

图片相加

图像混合

按位操作

小结

平滑图像

滤波与模糊


任务

1.图片间的数学运算,如相加、按位运算等

2.OpenCV函数:cv2.add()cv2.addWeighted()cv2.bitwise_and()

图片相加

要叠加两张图片,可以用cv2.add()函数,相加两幅图片的形状(高度/宽度/通道数)必须相同numpy中可以直接用res = img + img1相加,但这两者的结果并不相同:

x = np.uint8([250])
y = np.uint8([10])
print(cv2.add(x, y))  # 250+10 = 260 => 255
print(x + y)  # 250+10 = 260 % 256 = 4

如果是二值化图片(只有0和255两种值),两者结果是一样的(用numpy的方式更简便一些)

图像混合

cv2.addWeighted()也是一种图片相加的操作,只不过两幅图片的权重不一样,γ相当于一个修正值:

 

img1 = cv2.imread('lena_small.jpg')
img2 = cv2.imread('opencv-logo-white.png')
res = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)

 

注:α和β都等于1时,就相当于图片相加 

按位操作

按位操作包括按位与/或/非/异或操作,有什么用途呢?

比如说我们要实现下图的效果:

如果将两幅图片直接相加会改变图片的颜色,如果用图像混合,则会改变图片的透明度,所以我们需要用按位操作

首先来了解掩膜(mask)概念:

掩膜是用一副二值化图片对另外一幅图片进行局部的遮挡,

下图一目了然:

 

所以思路就是把原图中要放logo的区域抠出来,再把logo放进去就行了:

img1 = cv2.imread('lena.jpg')
img2 = cv2.imread('opencv-logo-white.png')

# 把logo放在左上角,所以我们只关心这一块区域
rows, cols = img2.shape[:2]
roi = img1[:rows, :cols]

# 创建掩膜
img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)

# 保留除logo外的背景
img1_bg = cv2.bitwise_and(roi, roi, mask=mask_inv)
dst = cv2.add(img1_bg, img2)  # 进行融合
img1[:rows, :cols] = dst  # 融合后放在原图上

注:掩膜的概念在图像混合/叠加的场景下使用较多

小结

1.cv2.add()用来叠加两幅图片,cv2.addWeighted()也是叠加两幅图片,但两幅图片的权重不一样。

2.cv2.bitwise_and()cv2.bitwise_not()cv2.bitwise_or()cv2.bitwise_xor()分别执行按位与/或/非/异或运算

掩膜就是用来对图片进行全局或局部的遮挡

 

平滑图像

滤波与模糊

它们都属于卷积,不同滤波方法之间只是卷积核不同(对线性滤波而言)

低通滤波器是模糊,高通滤波器是锐化

低通滤波器就是允许低频信号通过,在图像中边缘和噪点都相当于高频部分,所以低通滤波器用于去除噪点、平滑和模糊图像。

高通滤波器则反之,用来增强图像边缘,进行锐化处理。

常见噪声有椒盐噪声和高斯噪声,椒盐噪声可以理解为斑点,随机出现在图像中的黑点或白点;

高斯噪声可以理解为拍摄图片时由于光照等原因造成的噪声。

不知道用什么滤波器,优先高斯,其次均值

斑点和椒盐噪声优先使用中值滤波

要去除噪点的同时尽可能保留更多的边缘信息,使用双边滤波

线性滤波方式:均值滤波、方框滤波、高斯滤波(速度相对快)

非线性滤波方式:中值滤波、双边滤波(速度相对慢)

涉及卷积,需要一定篇幅

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值