반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

머신 비전 알고리즘 - OpenCV - 이미지처리12 본문

머신 비전/머신 비전 알고리즘 테크닉 CPP

머신 비전 알고리즘 - OpenCV - 이미지처리12

folcjin 2021. 7. 27. 15:01
728x90
반응형

 # 디지털 이미지 처리
   # 이미지의 상태 정보에서 특별한 정보를 생성한다.
      > contour 를 통해 특별한 정보를 추출한다.

# 이미지 처리 - OpenCV 4.5.3 으로 테스트
   # 이미지의 상태 정보에서 특별한 영역을 추출
   > srcImage : 입력, contours : 결과, hierarchy : 결과 요소

# 이미지에서 윤곽선을 찾아낸다.
   > cv::Mat hierarchy;
   > int mode = cv::RETR_CCOMP, method = cv::CHAIN_APPROX_NONE;
   > cv::Point offset = cv::Point();
   > vector<vector<cv::Point> > contours;
   > cv::findContours(srcImage, contours, hierarchy, mode, method, offset);

# cv::Moments
   > vector<cv::Moments> mu(contours.size());
   > for (int i = 0; i < contours.size(); i++)
   > {
   > bool binaryImage = false;
   > mu[i] = cv::moments(contours[i], binaryImage);
   > }
   > vector<cv::Point2f> mc(contours.size());
   > for (int i = 0; i < contours.size(); i++)
   > {
   > //  Get the mass centers:
   > mc[i] = cv::Point2f(mu[i].m10 / mu[i].m00, mu[i].m01 / mu[i].m00);
   > }

# cv::contourArea
   > double area = cv::contourArea(contours, false);

# cv::arcLength
   > double length = cv::arcLength(contours, true);

# cv::isContourConvex
   > bool isConvex = cv::isContourConvex(contours);

# cv::minAreaRect, RotateRect
   > cv::RotatedRect Rect = cv::minAreaRect(cv::Mat(contours[0]));
   > cv::Rect boundingRect = Rect.boundingRect();

# cv::minEnclosingCircle
   > cv::Point2f center = cv::Point2f(0.f, 0.f);
   > float radius = 0.f;
   > cv::minEnclosingCircle(contours, center, radius);

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --