Bild-Rand glätten mit opencv

Ich versuche zu glatten Ausgang Bild Kanten mittels opencv framework, ich versuche die folgenden Schritte aus. Schritte nahm von hier aus https://stackoverflow.com/a/17175381/790842

int lowThreshold = 10.0;
int ratio = 3;
int kernel_size = 3;

Mat src_gray,detected_edges,dst,blurred;

///Convert the image to grayscale
cvtColor( result, src_gray, CV_BGR2GRAY );

///Reduce noise with a kernel 3x3
cv::blur( src_gray, detected_edges, cv::Size(5,5) );

///Canny detector
cv::Canny( detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size );

//Works fine upto here I am getting perfect edge mask    

cv::dilate(detected_edges, blurred, result);

//I get Assertion failed (src.channels() == 1 && func != 0) in countNonZero ERROR while doing dilate

result.copyTo(blurred, blurred);

cv::blur(blurred, blurred, cv::Size(3.0,3.0));

blurred.copyTo(result, detected_edges);

UIImage *image = [UIImageCVMatConverter UIImageFromCVMat:result];

Ich will helfen, egal, ob ich dabei bin, in der rechten Weise, oder was bin ich?

Vielen Dank für jede Anregung und Hilfe.

Aktualisiert:

Habe ich ein Bild wie unten bekam von grabcut Algorithmus, jetzt will ich anwenden Rand glätten das Bild, wie Sie sehen können das Bild ist nicht glatt.
Bild-Rand glätten mit opencv

  • Perfanov ich brauche Hilfe in it. Ich bin versucht, befolgen Sie die Schritte, die Sie hier angegeben stackoverflow.com/a/17175381/790842
  • Können Sie mir helfen ?
  • Können Sie mir helfen ?
InformationsquelleAutor iphonic | 2014-02-15
Schreibe einen Kommentar