这种噪音是什么? 链接:Image 如何删除它?我应用了median和fastNlMeansDenoisingColored()函数但没有改进。
示例程序:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img,gray,DENO, im_gray, img_bw, img_final;
img = imread("C:/Users/Opencv/Downloads/1.bmp",1);
cvtColor(img,im_gray,CV_RGB2GRAY);
adaptiveThreshold(im_gray, img_bw, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 105, 1);
dilate(img_bw, img_final, Mat(), Point(-1, -1), 2, 1, 1);
imshow("afa",img_final);
waitkay(0);
return 0;
}
Visual Studio 2012,C ++,OpenCV 3.0.0 此致
答案 0 :(得分:0)
我写下这些代码:
ressu3 = zeros(m,n);
for i=2:m-1
for j=2:n-1
ressu3(i,j)=1/55* median ([I(i-1,j-1),I(i-1,j+1),I(i-1,j),I(i+1,j- 1),I(i+1,j+1),I(i+1,j)]);
end
end
代码在matlab中编写(用于测试)。 它是方向中值滤波器吗?
答案 1 :(得分:0)
尝试使用以下代码删除噪音,
cv::Mat mainMat1 = cv::imread("input_image_path");
cv::Mat dstMat1, medianMat1, finalDest1;
bilateralFilter(mainMat1, dstMat1, 19, 19 * 2, 19 / 2);
addWeighted(mainMat1, 0.40, dstMat1, 0.60, 0, finalDest1, -1);
medianBlur(mainMat1, medianMat1, 17);
cv::Mat dstination1;
cv::fastNlMeansDenoisingColored(mainMat1,dstination1,10,10,7,21);
希望这会有所帮助。