圖像的基本形態學操作。
#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單元閉操作一次: