我试图使用opencv框架平滑输出图像边缘,我正在尝试以下步骤.步骤来自这里/sf/answers/1202276701/
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, …
Run Code Online (Sandbox Code Playgroud) 经过一些简单的预处理后,我收到了分段图像的布尔掩码.
我想"增强"面具的边框,使它们更光滑.为此我使用具有相当大的圆内核的OPEN形态滤波器,它非常有效,直到分段对象之间的距离足够.但在很多样本中,物体粘在一起.是否存在一些或多或少的简单方法来平滑这种图像而不改变其形态?