我正在尝试使用OpenCV包将一段Matlab代码转换为python。但是我不知道如何在Matlab中实现filter2。这是matlab代码。在
imdist = imread("testimage1.bmp");
imdist = rgb2gray(imdist);
window = fspecial('gaussian',7,7/6);
window = window/sum(sum(window));
mu = filter2(window, imdist, 'same');
我的python代码在这里:
^{pr2}$过滤面罩“窗口”是相同的。但变量mu与matlab结果不同。请帮帮我。在
在我看来你已经改变了锚定和内核的争论。还有,不知道为什么你的锚是1D
The documentation表示语法是
cv.Filter2D(src, dst, kernel, anchor=(-1, -1))
,所以我认为您应该使用cv.filter2D(imdist, mu, window, (-1, -1))
。在如果使用的是正式的Python绑定,可以直接调用GaussianBlur函数:
或者将
cv2.Smooth
函数与内部调用相同的CV_GAUSSIAN
一起使用。在相关问题 更多 >
编程相关推荐