1、构造一个灰度图像,也就是一个2维矩阵
img = numpy.ones((10, 10), numpy.uint8)
[[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]]
2、线性滤波
图像的明暗变化,就是频率变化,就是波
滤波,就是图像模糊(高通滤波),图像锐化,也是对两个波(两个矩阵)做卷积。
kernel,就是卷积核,一般和为1,保证图像总体明亮程度不变。
参考:https://blog.csdn.net/huachizi/article/details/88951061
img[1,1]=2
kernel=numpy.ones((3, 3,1), numpy.uint8)
#也可以这样构造 kernel=numpy.array([[1,1,1],[1,1,1],[1,1,1]],numpy.uint8)
dst = cv2.filter2D(img,-1,kernel)
#通过下面的结果,可以看到计算边缘时,就是取镜像点的值,比如(-1,0)取(1,0)的值,(0,-1)取(0,1)的值,(-1,-1)取(1,1)的值
[[13 11 11 9 9 9 9 9 9 9]
[11 10 10 9 9 9 9 9 9 9]
[11 10 10 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]
[ 9 9 9 9 9 9 9 9 9 9]]
|