图像处理中卷积的理解和简单示例

通俗点说:卷积在图像处理中的应用就是用一个模式矩阵和原图像矩阵相乘,得到一个新的矩阵作为卷积结果

(核:指一组权重的集合,它会应用在源图像的一个区域,并由此生成目标图像的一个像素。比如大小为7的核意味着49(7*7)个源图像的像素会产生目标图像的一个像素。可把核看作一块覆盖在源图像上可移动的毛玻璃片,玻璃片覆盖区域的光线会按某种方式进行扩散混合后透过去。

用一个模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,然后各点的积相加,就得到该点的卷积值。对图像上的每个点都这样处理。由于多数模板都对称,所以模板不旋转。
卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。 把一个点的像素值用它周围的点的像素值的加权平均代替。)

示例代码:

import cv2 as cv
import numpy as np
from scipy import ndimage

kernel_3x3=np.array([[-1,-1,-1],
                    [-1,8,-1],
                    [-1,-1,-1]])

kernel_5x5=np.array([[-1,-1,-1,-1,-1],
                    [-1,1,2,1,-1],
                    [-1,2,4,2,-1],
                     [-1,1,2,1,-1],
                     [-1,-1,-1,-1,-1]])

img=cv.imread("H:/1.jpg",0)
k3=ndimage.convolve(img,kernel_3x3)
k5=ndimage.convolve(img,kernel_5x5)

blurred=cv.GaussianBlur(img,(11,11),0)
g_phf=img-blurred

cv.imshow("img",img)
cv.imshow("3x3",k3)
cv.imshow("5x5",k5)
cv.imshow("g_phf",g_phf)
cv.waitKeyEx()
cv.destroyAllWindows()

效果:

原图: 

卷积后三张图片:

 

参考博客:https://blog.csdn.net/qq_39521554/article/details/79083864

参考书籍:OpenCV+3计算机视觉++Python语言实现+第二版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值