opencv学习笔记(十一)——图像腐蚀和膨胀混合运用练习

图像腐蚀和膨胀混合运用经常应用在图像去噪,和骨架提取等场合。接下来的例子是运用图像腐蚀和膨胀进行去噪的例程:
简单的图像去噪过程就是:先对图像进行腐蚀,然后再进行膨胀。
代码如下:

#include "cv.h"
#include "highgui.h"

void main()
{
    IplImage *src = cvLoadImage("G:\\Opencv\\素材\\腐蚀膨胀练习1.jpg");
    IplImage *dst = cvCreateImage(cvGetSize(src), 8, 3);    //用于储存腐蚀后的图像
    IplImage *dst2 = cvCreateImage(cvGetSize(src), 8, 3);   //用于储存膨胀后的图像

    cvNamedWindow("源图像");
    cvShowImage("源图像", src);

    int value[36] = {
        1, 1, 1, 1, 1, 0,
        1, 1, 1, 1, 1, 0,
        1, 1, 1, 1, 1, 0,
        1, 1, 1, 1, 1, 0,
        1, 1, 1, 1, 1, 0,
        0, 0, 0, 0, 0, 0,
    };
    /*设置结构元素的列数 行数 和锚点坐标*/
    int clos = 6, rows = 6, anchor_x = 4, anchor_y = 4;
    IplConvKernel *element;
    element = cvCreateStructuringElementEx(clos, rows, anchor_x, anchor_y, CV_SHAPE_CUSTOM, value);

    /*腐蚀*/
    cvErode(src, dst, element, 1);
    cvNamedWindow("腐蚀后"); 
    cvShowImage("腐蚀后", dst);

    /*膨胀*/
    cvDilate(dst, dst2, element, 1);
    cvNamedWindow("膨胀后");
    cvShowImage("膨胀后", dst2);

    cvWaitKey(0);
}

结果:
opencv学习笔记(十一)——图像腐蚀和膨胀混合运用练习_第1张图片

从左到右的图像依次为:源图像,腐蚀后的图像,膨胀后的图像。
可以看出,经过简单去噪,可以去除源图像上一些细小的点。

你可能感兴趣的:(opencv)