OpenCV图像处理--开运算和闭运算

开运算:先腐蚀,在膨胀
闭运算:先膨胀,在腐蚀

我们在膨胀和腐蚀的图片中可以看到,图片大小程度上都受到了损失,字体信息缺失或者变粗等等。如果我们不想更改原有信息,即字体粗细。那么我们可以使用上面的两种运算。例如开运算,先对字体进行变细,在对字体进行变粗,整体上字体粗细不会发生变化。毛刺信息在腐蚀的时候就已经消除了,膨胀也不会膨胀出多余信息。

闭操作:消除黑色的小块,填充闭合区域
数学表达式为:

dst = close(src, element) = erode(dilate(src, element))

例子:

    Mat src = imread("/home/wangcf/Qtprojects/qtopencvandeasypr/hai.png");
    imshow("src",src);
    Mat gray;
    cvtColor(src, gray, CV_BGR2GRAY);
   // imshow("gray",gray);
    Mat BINARY;
 threshold(gray,BINARY,25,255,CV_THRESH_BINARY);
    imshow("threshold",BINARY);
    Mat element;
     element = getStructuringElement(MORPH_RECT, Size(15, 15));
     Mat dstImage;
 //    第一种实现方法
     morphologyEx(BINARY, dstImage, MORPH_CLOSE, element);
 //    第二种实现方法
 //    dilate(BINARY, dstImage, element);
 //    erode(dstImage, dstImage, element);
     imshow("CLOSE",dstImage);
    waitKey();

效果:
OpenCV图像处理--开运算和闭运算_第1张图片
开操作:消除白色的小点,去除小的干扰块
数学表达式为:

dst = open(src, element) = dilate(erode(src, element))
OpenCV图像处理--开运算和闭运算_第2张图片

你可能感兴趣的:(opencv,opencv)