python图像卷积函数 图像求卷积

2021-02-08 Python OpenCV GaussianBlur()函数

borderType= None)函数

创新互联公司专注于企业成都营销网站建设、网站重做改版、毕节网站定制设计、自适应品牌网站建设、H5响应式网站购物商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为毕节等各大城市提供网站开发制作服务。

此函数利用高斯滤波器平滑一张图像。该函数将源图像与指定的高斯核进行卷积。

src:输入图像

ksize:(核的宽度,核的高度),输入高斯核的尺寸,核的宽高都必须是正奇数。否则,将会从参数sigma中计算得到。

dst:输出图像,尺寸与输入图像一致。

sigmaX:高斯核在X方向上的标准差。

sigmaY:高斯核在Y方向上的标准差。默认为None,如果sigmaY=0,则它将被设置为与sigmaX相等的值。如果这两者都为0,则它们的值会从ksize中计算得到。计算公式为:

borderType:像素外推法,默认为None(参考官方文档 BorderTypes

)

在图像处理中,高斯滤波主要有两种方式:

1.窗口滑动卷积

2.傅里叶变换

在此主要利用窗口滑动卷积。其中二维高斯函数公式为:

根据上述公式,生成一个3x3的高斯核,其中最重要的参数就是标准差 ,标准差 越大,核中心的值与周围的值差距越小,曲线越平滑。标准差 越小,核中心的值与周围的值差距越大,曲线越陡峭。

从图像的角度来说,高斯核的标准差 越大,平滑效果越不明显。高斯核的标准差 越小,平滑效果越明显。

可见,标准差 越大,图像平滑程度越大

参考博客1:关于GaussianBlur函数

参考博客2:关于高斯核运算

Python 中用于两个值卷积的函数是什么,我知道matlab 中是conv,Python中有预知对应的吗

全部用文件IO的话可以这样: matlab把所有参数输出到一个文件里,然后用system命令调python脚本。python脚本读文件做计算结果再写文件。最后matlab再读文件得到结果。 假设python脚本的用法是: python xxx.py in.txt out.txt 则matlab调用命令...

python三维卷积可以用什么函数? matlab只要用convn

写了一个输入和卷积核dim=2是一样的(都是3)的卷积函数,可以试试多加一个for循环变成三维卷积

def conv3D(image, filter):

'''

三维卷积

:param image: 输入,shape为 [h,w,c], c=3

:param filter:  卷积核,shape为 [x,y,z], z=3

:return:

'''

h, w, c = image.shape

x, y, z = filter.shape

height_new = h - x + 1  # 输出 h

width_new = w - y + 1  # 输出 w

image_new = np.zeros((height_new, width_new), dtype=np.float)

for i in range(height_new):

for j in range(width_new):

r = np.sum(image[i:i+x, j:j+x, 0] * filter[:,:,0])

g = np.sum(image[i:i+y, j:j+y, 1] * filter[:,:,1])

b = np.sum(image[i:i+z, j:j+z, 2] * filter[:,:,2])

image_new[i, j] = np.sum([r,g,b])

image_new = image_new.clip(0, 255)

image_new = np.rint(image_new).astype('uint8')

return image_new


网站栏目:python图像卷积函数 图像求卷积
文章地址:http://myzitong.com/article/docegpo.html