일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Read
- inheritance
- public
- memory
- Contour
- Encapusulation
- Overloading
- java
- length
- SERIAL
- flutter
- file access
- digitalRead
- APP
- aduino
- wpf
- compare
- Pointer
- sensor
- Unity
- mfc
- Binary
- preprocessing
- UNO
- Android
- parameter
- Barcode
- stream
- Class
- atmega328
- Today
- Total
폴크(FOLC)
C# - 머신 비전 알고리즘 - OpenCV - 이미지처리4 본문
# 디지털 이미지 처리
# 이미지의 상태 변경이 가능하다.
> 이진화, 거리, 적분, 채우기 등에 대한 처리
# 이미지 처리 - OpenCV 4.5.3 으로 테스트
# 이미지의 상태 정보를 이용해서 데이터를 변형
> srcImage : 입력, dstImage : 결과, thresh: 경계값, max_val : 최대값(대체값), type : 이진화 방법
> adaptiveMethod : 평균 , C : 옵셋, seedPoint : 기준위치, scale : 배율
# Cv2.Threshold
> 이미지의 상태 변경 - 경계값을 직접 정의하여 이진화
> double thresh = 128.0, max_val = 255.0;
> ThresholdTypes type = ThresholdTypes.Binary;
> Cv2.Threshold(srcImage, dstImage, thresh, max_val, type);
# Cv2.AdaptiveThreshold
> 이미지의 상태 변경 - 주변 커널 영역의 값들의 평균을 이용하여 이진화
> AdaptiveThresholdTypes adaptiveMethod = AdaptiveThresholdTypes.MeanC;
> double C = 0.0;
> int blocksize = 3;
> Cv2.AdaptiveThreshold(srcImage, dstImage, max_val, adaptiveMethod, type, blocksize, C);
# Cv2.FloodFill
> 이미지의 상태 변경 - 특정 위치에 폐공간을 채운다.
> cv::Point seedPoint = cv::Point(1, 2);
> Scalar newVal = 255, loDiff = new Scalar(0, 0, 0, 0), upDiff = new Scalar(0, 0, 0, 0);
> Rect rect = new Rect(0, 0, 0, 0);
> FloodFillFlags flags = FloodFillFlags.Link4; // 상하좌우 4방향을 의미
> Cv2.FloodFill(srcImage, seedPoint, newVal, out rect, loDiff, upDiff, flags);
# Cv2.Integral
> 이미지의 상태 변경 - 좌/상 에서 우/하로 이동하면서 적분을 계산한다.
> Mat sum = new Mat(), sqsum = new Mat(), tilted = new Mat();
> Cv2.Integral(srcImage, sum, sqsum, tilted);
# Cv2.DistanceTransform
> 이미지의 상태 변경 - 특정 물체의 중심(seed point)을 기준으로 거리를 예측한다.
> DistanceTypes distanceType = DistanceTypes.L2;
> DistanceTransformMasks maskSize = DistanceTransformMasks.Mask3;
> Cv2.DistanceTransform(srcImage, dstImage, distanceType, maskSize);
'머신 비전 > 머신 비전 알고리즘 테크닉 C#' 카테고리의 다른 글
C# - 머신 비전 알고리즘 - OpenCV - 이미지처리6 (0) | 2021.10.18 |
---|---|
C# - 머신 비전 알고리즘 - OpenCV - 이미지처리5 (0) | 2021.10.17 |
C# - 머신 비전 알고리즘 - OpenCV - 캘리브레이션 (0) | 2021.10.17 |
C# - 머신 비전 알고리즘 - OpenCV - 이미지처리3 (0) | 2021.10.17 |
C# - 머신 비전 알고리즘 - OpenCV - 이미지처리2 (0) | 2021.10.16 |