识别噪音类型

时间:2016-05-14 11:37:22

标签: visual-c++ opencv3.0 noise-reduction

这种噪音是什么? 链接: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 此致

2 个答案:

答案 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);
    
  • 希望这会有所帮助。