반응형
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)

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

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

C# - 머신 비전 알고리즘 - OpenCV - 이미지처리13

folcjin 2021. 10. 19. 09:54
728x90
반응형

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

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

# 이미지에서 윤곽선을 찾아낸다.
   > RetrievalModes mode = RetrievalModes.CComp;
   > ContourApproximationModes method = ContourApproximationModes.ApproxNone;
   > Point offset = new Point();
   > Point[][] contours = null;
   > HierarchyIndex[] hierarchy = null;
   > Cv2.FindContours(srcImage, out contours, out hierarchy, mode, method, offset);

# Aspect ratio
   >  foreach (Point[] pc in contours)
   > {
   >    RotatedRect Rect = Cv2.MinAreaRect(pc);
   >    double aspect_ratio = (double)(Rect.BoundingRect().Width) / (double)(Rect.BoundingRect().Height);

# Extent
   > double minArea = Cv2.ContourArea(pc);
   > double Extent = minArea / (double)(Rect.BoundingRect().Width) * (double)(Rect.BoundingRect().Height);

# Solidity
   > Mat dst_hull = new Mat();
   > bool clockwise = false, returnPoints = true;
   > Cv2.ConvexHull(InputArray.Create(pc), dst_hull, clockwise, returnPoints);
   > double hullarea = Cv2.ContourArea(dst_hull);
   > double Solidity = minArea / hullarea;

# Equivalent Diameter
   > double equipvalent_diameter = Math.Sqrt(4.0 * minArea / Cv2.PI);

# Min, Max
   > double min = 0.0, max = 0.0;
   > Cv2.MinMaxLoc(srcImage, out min, out max);

# MEAN
   > Scalar result = Cv2.Mean(srcImage);
   > double mean = result.Val0;

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