您的位置:首页 > 其它

【cv学习笔记2】1 卷积

2018-03-07 13:57 155 查看

1 卷积定义

卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果

y(n)=∑i=−∞∞x(i)h(n−i)=x(n)∗h(n)y(n)=∑i=−∞∞x(i)h(n−i)=x(n)∗h(n)

一维卷积

【例】

X = [10, 1, 2, 3, 0, 3]

H= [0.4, 1, 0.5, 2] (卷积核
Kernel


Y=X * H



。。。。。。


。。。。

import numpy as np
from scipy import signal

X = np.array([10, 1, 2, 3, 0, 3])
H = np.array([2, 0.5, 1, 0.4])

S = signal.convolve(X, H)

print(S)


output:

[ 20.    7.   14.5  12.    3.9   9.8   2.7   3.    1.2]


二维卷积

y[i,j]=∑u=−kk∑v=−kkx[u,v]h[i−u,i−v]y[i,j]=∑u=−kk∑v=−kkx[u,v]h[i−u,i−v]

【例】



import numpy as np
from scipy import signal

F = np.array([
[1, 2, 0, 7, 0, 3],
[8, 7, 3, 4, 1, 0],
[0, 3, 5, 3, 0, 1],
[1, 2, 1, 7, 1, 0],
[0, 0, 0, 0, 0, 1]])

H = np.array([
[-2, 1, 3],
[-2, 0, 2],
[1, 0, -1]])

S = signal.convolve2d(F, H, boundary='wrap',mode='valid')

print(S)


output:

[[  2  19  22  11]
[-12 -10  16  22]
[  5 -10  -5  10]]


H、X的顺序是不影响结果的,S = H * X = X * H

2 图像的卷积运算

可看做是加权求和的过程,使用到的图像区域中每个像素分别与卷积核(权矩阵)的每个元素相乘,所有乘积只和作为区域中心像素的新值

滤波器(卷积核)的一般要求

2D卷积需要四个循环嵌套,比较耗时,所以我们一般采用较小的卷积核,如3*3、5*5

滤波器的大小应该为奇数,如5*5 、7*7 ,这样才会有中心,7*7的核半径为3

滤波器矩阵所有的元素之和等于1,滤波前后图像的亮度保持不变。大于1,图像变亮,小于1,图像变暗

对于滤波后的结构,可能会出现0~255以外的数值。对这种情况,直接截断到0和255之间即可

边界处理

a595
当处理图像边界像素时,卷积核与图像区域不能匹配,卷积核中心与边界元素点对应,卷积运算出现问题,此时有以下几种处理方式:



1)想象I是无限长的图像的一部分,除了我们给定值的部分,其他部分的像素值都是0。



2)第二种方法也是想象I是无限图像的一部分。但没有指定的部分是用图像边界的值进行拓展。



3)第三种情况就是认为图像是周期性的。也就是I不断的重复。周期就是I的长度。在我们这里,I(0)和I(8)的值就是一样的,I(9)的值和I(1)的值也是一样的。



4)忽略边界像素(处理后的图像丢掉这些像素)

3 卷积在图像处理中的应用

均值模糊 高斯模糊

高通滤波 低通滤波

图像锐化 浮雕

边缘检测

。。。

实例0

下面这个滤波器,只有中心点的值是1,邻域点的权值都是0。

相当于未对图片进行变化



实例1 均值模糊



import cv2
import numpy as np

img =cv2.imread("pp1.jpg")

fil = np.array([[ 1/9,1/9, 1/9],
[ 1/9, 1/9, 1/9],
[ 1/9, 1/9, 1/9]])

res = cv2.filter2D(img,-1,fil)

cv2.imshow('win',res)
key_pressed=cv2.waitKey(0)


实例2 图像锐化



import cv2
import numpy as np

img =cv2.imread("pp1.jpg")

fil = np.array([[ -1,-1, -1],
[ -1, 9, -1],
[  -1, 1, -1]])

res = cv2.filter2D(img,-1,fil)

cv2.imshow('win',res)
key_pressed=cv2.waitKey(0)


实例3 边缘检测



其他效果







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: