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コードはここにあります:
import pyopencv as cv
import numpy as np
img = cv.imread("testimage1.bmp")
imdist = cv.Mat()
cv.cvtColor(img, imdist, cv.CV_BGR2GRAY)
row = cv.getGaussianKernel(7, 7.0/6.0)
col = cv.getGaussianKernel(7, 7.0/6.0)
window = cv.asMat(np.dot(col[:], row[:].T))
window = cv.asMat(window[:]/sum(sum(window[:])))
mu = cv.Mat()
# I'm not sure it should be filter2D
cv.filter2D(imdist, mu, -1, window)
フィルターマスクの「ウィンドウ」は同じです。しかし、変数 "mu" は matlab の結果とは異なります。私を助けてください。