在python中将Matlab转换为OpenCV

2024-10-01 07:39:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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结果不同。请帮帮我。在


Tags: 代码gaussianwindowopencvsummatlabimreadmu
2条回答

在我看来你已经改变了锚定和内核的争论。还有,不知道为什么你的锚是1D

The documentation表示语法是cv.Filter2D(src, dst, kernel, anchor=(-1, -1)),所以我认为您应该使用cv.filter2D(imdist, mu, window, (-1, -1))。在

如果使用的是正式的Python绑定,可以直接调用GaussianBlur函数:

dst = cv2.GaussianBlur(src, (7,7), 7.0/6.0)

或者将cv2.Smooth函数与内部调用相同的CV_GAUSSIAN一起使用。在

相关问题 更多 >