fastNlMeansDenoising() keine Geräusche herausfiltern
Ich versuche das Rauschen zu entfernen, die von opencv fastNlMeansDenoising () - Funktion.
Aber Meine Ausgabe Bild ist der gleiche wie original ruchbar Bild.
- Eingang Bild:
Code:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main() {
Mat img = imread("noisy.jpg");
if (!img.data) {
cout << "File not found" << endl;
return -1;
}
//first copy the image
Mat img_gray = img.clone();
cvtColor(img, img_gray, CV_RGB2GRAY);
Mat img1;
//fastNlMeansDenoising(img_gray, img1, 3.0, 7, 21);
cv::fastNlMeansDenoising(img_gray, img1, 3.0, 7, 21);
imshow("img1", img1);
waitKey();
return 0;
}
Ausgabe Bild:
Ich kann hier kein Effekt der Glättung. Ich verstehe nicht, Grund es.
Bitte helfen Sie mir, nutzen diese Funktion zum entfernen von Rauschen. Dank
- Nicht sicher, ob es möglicherweise im Zusammenhang mit Ihrem problem, aber Sie haben nicht zu tun
img.clone()
.cvtColor
erstellen das Bild für Sie. - Ich habe korrigiert es. aber immer noch die Ausgabe Bild ist nicht De lärmend Bild.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In opencv die Funktion ist wie folgt definiert
wo
Deshalb, um Rauschen zu entfernen, habe ich zur Erhöhung der filter-parameter Stärke h, große h-Wert perfekt Rauschen entfernen, aber kleiner h-Wert bewahrt details und auch die Beibehaltung von etwas Rauschen.
Also ich perfekt Rauschen zu entfernen, indem Sie die Funktion wie diese .
Ausgabe:
Hinweis: diese Funktion ausführen, die Zeit ist zu langsam im debug-Modus. Für wenig schnelle Ausführungszeit, besser, führen es in den release-Modus.
Hoffe, das hilft
Cheers