Matlab to Opencv Code
Matlab to Opencv Code
I = imread('C:\Users\20055316\Desktop\blurMetric\Illumination_Changes\z_0001.bmp');
I = double(I);
[y, x] = size(I);
Hv = [1 1 1 1 1 1 1 1 1]/9;
Hh = Hv';
B_Ver = imfilter(I,Hv);%blur the input image in vertical direction
B_Hor = imfilter(I,Hh);%blur the input image in horizontal direction
我需要将上面的 Matlab 代码转换为 OpenCV,我尝试使用Filter2D,但没有得到想要的结果。openCV 代码如下所示
Mat oMatTempImage = imread("C:\Users\20055316\Desktop\blurMetric\Illumination_Changes\z_0001.bmp");
cvtColor(oMatTempImage, oMatTempImage, CV_BGR2RGB);
oMatTempImage.convertTo(oMatTempImage, CV_32FC3);
Mat oMatVerticalKernel = Mat(1, 9, CV_32FC1);
for (int nColItr = 0; nColItr < 9; nColItr++)
{
oMatVerticalKernel.at<float>(0, nColItr) = 1.0f / 9.0f;
}
Mat oMatHorizontalKernel;
transpose(oMatVerticalKernel, oMatHorizontalKernel);
Mat oMatVeriticalBlurr;
filter2D(oMatTempImage, oMatVeriticalBlurr, -1, oMatVerticalKernel);
Mat oMatHorizontalBlurr;
filter2D(oMatTempImage, oMatHorizontalBlurr, -1, oMatHorizontalKernel);
我没有得到类似的结果,请帮助我。
编辑:谢谢你们的回复,我知道问题出在哪里。当调用imfilter((函数时,Matlab在内部进行零填充,而opencv则不这样做。在应用滤镜之前,我必须将零填充的像素归零,然后再删除零填充像素。这解决了问题。
我想你可以使用Blur或GaussianBlur函数。这里有一些例子:http://docs.opencv.org/doc/tutorials/imgproc/gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter.html
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio Code "undefined reference to `WinMain@16'"
- OpenCV C++.快速计算混淆矩阵
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 在visual code studio中找不到opencv(用于ubuntu中的c++)
- OpenCV Datamatrix Code Finder
- OpenCV导致EXC_BAD_ACCESS线程1:code=2在UIApplicationMain中崩溃
- 使用 Code::Blocks / CMake 安装 OpenCV
- Opencv SLIC code
- Matlab to Opencv Code
- OpenCV 在 Code::Blocks 中的代码完成