Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算


腐蚀和膨胀是对高亮部分而言,对黑白图像效果更好一些,所以我们第一步让仓老师变成黑白的。

图像二值化

    //二值化
    cvtColor(image,image_gray,COLOR_BGR2GRAY);
    threshold(image_gray,image_thre,125,255,THRESH_BINARY);
    imshow("仓老师",image);
    imshow("仓老师黑白",image_thre);

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第1张图片

腐蚀

    //内核,可选矩形MORPH_RECT、交叉形MORPH_CROSS、椭圆MORPH_ELLIPSE
    Mat element=getStructuringElement(MORPH_ELLIPSE,Size(5,5),Point(-1,-1));
    //腐蚀
    Mat image_erode;
    erode(image_thre,image_erode,element);
    imshow("腐蚀",image_erode);

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第2张图片
膨胀

//膨胀
    Mat image_dilate;
    dilate(image_thre,image_dilate,element);
    imshow("膨胀",image_dilate);

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第3张图片

开操作

 //开
    Mat image_open;
    morphologyEx(image_thre,image_open,MORPH_OPEN,element);
    imshow("开",image_open);

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第4张图片
闭操作

//闭
    Mat image_close;
    morphologyEx(image_thre,image_close,MORPH_CLOSE,element);
    imshow("闭",image_close);

Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第5张图片
代码:

/*
形态学操作初步
腐蚀、膨胀、开操作、闭操作
*/


#include
#include
#include
#include
#include
#include

using namespace std;
using namespace cv;

int main(int argc, char* argv[]){
     
    Mat image=imread("仓老师.jpg");
    Mat image_gray,image_thre;
    
    //二值化
    cvtColor(image,image_gray,COLOR_BGR2GRAY);
    threshold(image_gray,image_thre,125,255,THRESH_BINARY);


    imshow("仓老师",image_thre);
    //内核,可选矩形MORPH_RECT、交叉形MORPH_CROSS、椭圆MORPH_ELLIPSE
    Mat element=getStructuringElement(MORPH_ELLIPSE,Size(5,5),Point(-1,-1));
    //腐蚀
    Mat image_erode;
    erode(image_thre,image_erode,element);
    imshow("腐蚀",image_erode);
    //膨胀
    Mat image_dilate;
    dilate(image_thre,image_dilate,element);
    imshow("膨胀",image_dilate);
    //开
    Mat image_open;
    morphologyEx(image_thre,image_open,MORPH_OPEN,element);
    imshow("开",image_open);
    //闭
    Mat image_close;
    morphologyEx(image_thre,image_close,MORPH_CLOSE,element);
    imshow("闭",image_close);

    waitKey(0);
    return 0;
}


Opencv3从头开始(五)形态学操作之膨胀、腐蚀、开闭运算_第6张图片

你可能感兴趣的:(Opencv,opencv,计算机视觉,图像识别,cv)