본문 바로가기
Open CV

[OPENCV-C++ ] open cv 라이브러리 활용 erode, dilate

by TYB 2023. 11. 26.
반응형

앞선 코드들은 라이브러리 활용을 최소화하고 직접 영상을 처리하는 로직을 구현했다면 이번에는 open cv에서 제공하는 라이브러리 함수를 활용하여 erode와 dilate를 구현해보겠다.

 

//opencv 라이브러리
	{
		std::string fileName = "../KCCImageNet/images/circle_plate.png";
		cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE);

		cv::Mat src_bin;
		cv::threshold(src_gray, src_bin, 150, 255, ThresholdTypes::THRESH_BINARY);
	
		int kernelSz = 1;
		int shape = MorphShapes::MORPH_CROSS;
		cv::Size sz = Size(2 * kernelSz + 1, 2 * kernelSz + 1);
		Mat SE = cv::getStructuringElement(shape, sz);// 3x3 SE 만들기

		//erosion
		//src_bin
		Mat src_erode;
		cv::erode(src_bin, src_erode, SE);
		Mat diff_erode = src_bin - src_erode;

		Mat src_dilate;
		cv::dilate(src_bin, src_dilate, SE);
		Mat diff_dilate = src_dilate - src_bin;
	
	}

erode와 dilate의 diff를 가지고도 테두리를 따는 것이 가능하다.

 

 

 

 

 

반응형