Python 如何显示二维高斯核?(opencv)
我用的是:Python 如何显示二维高斯核?(opencv),python,opencv,image-processing,gaussian,gaussianblur,Python,Opencv,Image Processing,Gaussian,Gaussianblur,我用的是: blur = cv2.GaussianBlur(dst,(5,5),0) 我想通过以下方式显示内核矩阵: print(cv2.getGaussianKernel(ksize=(5,5),sigma=0)) 但我得到一个类型错误: TypeError: an integer is required (got type tuple) 如果我只加5,我得到一个5x1矩阵。模糊内核不是5x5吗?还是我缺少一些基本的东西?高斯核是可分离的。因此,生成的内核是1D。GaussianBlu
blur = cv2.GaussianBlur(dst,(5,5),0)
我想通过以下方式显示内核矩阵:
print(cv2.getGaussianKernel(ksize=(5,5),sigma=0))
但我得到一个类型错误:
TypeError: an integer is required (got type tuple)
如果我只加5,我得到一个5x1矩阵。模糊内核不是5x5吗?还是我缺少一些基本的东西?高斯核是可分离的。因此,生成的内核是1D。
GaussianBlur
函数依次沿每个图像维度应用该1D内核。可分性属性意味着该过程产生的结果与应用2D卷积(或3D图像情况下的3D)完全相同。但是工作量大大减少了。对于5x5内核,2D卷积执行25次乘法和加法,可分离实现只执行5+5=10。对于较大的内核,收益越来越显著
为查看完整的2D内核,将<代码> GaussianBlur <代码>函数应用于一个全零的图像,中间设置一个像素为1。这是Dirac delta函数的离散等价物,我们可以用它来分析线性时不变函数(=卷积滤波器)。
高斯核是可分离的。因此,生成的内核是1D。GaussianBlur
函数依次沿每个图像维度应用该1D内核。可分性属性意味着该过程产生的结果与应用2D卷积(或3D图像情况下的3D)完全相同。但是工作量大大减少了。对于5x5内核,2D卷积执行25次乘法和加法,可分离实现只执行5+5=10。对于较大的内核,收益越来越显著
为查看完整的2D内核,将<代码> GaussianBlur <代码>函数应用于一个全零的图像,中间设置一个像素为1。这是Dirac delta函数的离散等价物,我们可以用它来分析线性时不变函数(=卷积滤波器)。
@sandesh:这是一个很好的加法,但请将其作为您自己的答案发布。您可以编辑其他人的代码以修复打字错误、断开的链接等,但不能在答案中添加新内容。此外,如果你发布自己的答案,你可以获得免费的互联网积分你可以通过进入“时间线”视图(答案左边的小按钮)取回编辑过的文本。@sandesh:这是一个很好的补充,但请将其作为你自己的答案发布。您可以编辑其他人的代码以修复打字错误、断开的链接等,但不能在答案中添加新内容。此外,如果你发布自己的答案,你可以获得免费的互联网积分您可以通过进入“时间线”视图(答案左侧的小按钮)返回编辑的文本。