일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PictureBoxIpl
- 흐림화
- 18.04
- RS232 시리얼통신
- 더하기사이클
- C# Opencv 영상
- 3D
- RS232
- RS232 시리얼 통신 결과물
- Windows Forms
- vscode
- 유니티
- C#
- 광량 제어
- RS232통신
- 0~255
- ALT-8RSD-12V 프로토콜
- ALT-8RSD-12V
- ALT-8RSD-12 통신 프로토콜
- Unity
- RS232 통신
- ALT-8RSD-12
- c# opencv
- AssetStore
- 에셋스토어
- Scripting API
- OpenCVSharp 2.4.10
- 카메라 추적
- 시리얼 통신
- template matching
- Today
- Total
앉아있는 프래그래머
C# OpenCv BLOB 라벨링(Labeling) 본문
BLOB 라벨링 ->영상이나 이미지에서 인접한 화소들을 묶어 하나의 객체로 판단하는 방식입니다. 즉, 인접한(연결된) 화소끼리 같은 번호를 부여
합니다. 여러 물체를 구분하기 위해서 사용
using OpenCvSharp.Blob; //선언
IplImage blob;
public IplImage BlobImage(IplImage src)
{
blob = new IplImage(src.Size, BitDepth.U8, 3);
bin = this.Binary(src);
//bin는 라벨링
에 사용될 이미지입니다. 이 이미지를 통하여 라벨링을 진행합니다. 라벨링은 이진화 이미지를 사용
CvBlobs blobs = new CvBlobs();
blobs.Label(bin);
//CvBlobs blobs = new CvBlobs();을 이용하여 라벨링을 하기 위해 생성자
를 만듭니다. blobs.Label(bin);
를 통하여 라벨링
을 진행합니다. 이진화 이미지
blobs.RenderBlobs(src, blob);
//blobs.RenderBlobs(원본, 결과);를 통하여 라벨링
결과를 확인
foreach (KeyValuePair<int, CvBlob> item in blobs)
{
CvBlob b = item.Value;
blob.PutText(Convert.ToString(b.Label), b.Centroid, new CvFont(FontFace.HersheyComplex, 1, 1), CvColor.Red);
}
//foreach문을 이용하여 라벨링
정보를 확인할 수 있습니다. item
값을 이용하여 라벨링 정보를 확인 가능합니다. 아래의 목록을 foreach
문에 사이에 삽입하여 라벨링 번호에 따른 데이터를 확인 할 수 있습니다.
return blob;
}
public void Dispose24()
{
if (blob != null) Cv.ReleaseImage(blob);
}
개인적인 공부로 하는거라 요약된 점이 많습니다.
혹시나 더 많은 정보를 원하시면 아래 주소로 들어가보시는걸 추천 드립니다 ^^
'프로그래밍 > C# OpenCv' 카테고리의 다른 글
C# OpenCv 결과물 (0) | 2018.07.19 |
---|---|
C# OpenCv 템블릿 매칭(Template Matching) (0) | 2018.07.19 |
C# OpenCv 흐림화(Blur) (0) | 2018.07.19 |
C# OpenCv 영상 이진화 (0) | 2018.07.19 |
C# OpenCv 영상 출력 - 캡처 + 녹화 추가 (0) | 2018.07.19 |