728x90
findContours를 이용해서 윤곽(contour)을 추출하는 걸 시도했다.
외곽선 경계가 명확하지 않은 것도 있고, 응용 방법을 잘 몰라서 경계선이 명확히 그어지지 않은 것도 있는 듯 하다.
소스코드
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace cv; using namespace std; int main(void) { Mat image; image = imread("IU.jpg", 1); namedWindow("Display Window", CV_WINDOW_AUTOSIZE); imshow("Display Window", image); Mat gray; cvtColor(image, gray, CV_BGR2GRAY); Canny(gray, gray, 100, 200, 3); vector<vector<Point> > contours; vector<Vec4i> hierarchy; RNG rng(12345); findContours(gray, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0)); Mat drawing = Mat::zeros(gray.size(), CV_8UC3); for (int i = 0; i< contours.size(); i++) { Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)); drawContours(drawing, contours, i, color, 2, 8, hierarchy, 0, Point()); } imshow("Result window", drawing); waitKey(0); }
결과물
728x90
'Library > OpenCV' 카테고리의 다른 글
Windows10 CUDA + OpenCV 4 빌드 에러 LINK : fatal error LNK1181: '..\..\lib\Release\opencv_world440.lib' (0) | 2020.08.29 |
---|---|
OpenCV] Canny 함수 (0) | 2018.05.01 |
OpenCV] 이미지 반전 시키기 (0) | 2018.03.15 |
OpenCV] 이미지를 회색조(Grayscale)로 변환 (0) | 2018.03.14 |
Visual Studio에서 OpenCV 시작하기 (0) | 2018.03.11 |