[學習opencv]圖像腐蝕、膨脹、開閉操作


圖像的基本形態學操作。

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

using namespace cv;

int main(int argc, char* argv[])
{
        Mat src = imread("misaka.jpg");
        Mat dst;
        
        //輸入圖像
        //輸出圖像
        //單元大小,這里是5*5的8位單元
        //腐蝕位置,為負值取核中心
        //腐蝕次數兩次
        erode(src,dst,Mat(5,5,CV_8U),Point(-1,-1),2);
        imwrite("erode.jpg",dst);

        //輸入圖像
        //輸出圖像
        //單元大小,這里是5*5的8位單元
        //膨脹位置,為負值取核中心
        //膨脹次數兩次
        dilate(src,dst,Mat(5,5,CV_8U),Point(-1,-1),2);
        imwrite("dilate.jpg",dst);

        //輸入圖像
        //輸出圖像
        //定義操作:MORPH_OPEN為開操作,MORPH_CLOSE為閉操作
        //單元大小,這里是3*3的8位單元
        //開閉操作位置
        //開閉操作次數
        morphologyEx(src,dst,MORPH_OPEN,Mat(3,3,CV_8U),Point(-1,-1),1);
        imwrite("open.jpg",dst);

        morphologyEx(src,dst,MORPH_CLOSE,Mat(3,3,CV_8U),Point(-1,-1),1);
        imwrite("close.jpg",dst);

        imshow("dst",dst);
        waitKey();

        return 0;
}

原圖:

5*5單元腐蝕兩次:

5*5單元膨脹兩次:

3*3單元開操作一次:

3*3單元閉操作一次:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM