Hit or Miss
1 개요
Morpholgy Hit or Miss 연산을 수행하는 알고리즘입니다.
주로 이미지 분석에서 형태 검출에 사용되며. 특히 특정 패턴이나 구조를 찾는 데 유용합니다.
2 알고리즘 상세 설명
사용자가 설정한 커널로 적중, 비적중 변환을 사용하여 이미지의 주어진 구성을 감지하는 연산입니다. 각 Pixel의 결과값은 커널 영역 내의 Hit 집합과 Miss 집합의 결과값 중 최솟값입니다.
- : 커널 영역 내의 pixel 집합
- : 커널 영역 내의 Hit 집합
- : 커널 영역 내의 Miss 집합
- : 집합과 매칭되는 집합 내의 Pixel 값 중 최솟값
- : 집합과 매칭되는 집합 내의 Pixel에 1의 보수를 취한 값 중 최솟값
3 Kernel 설정
FLImaging에서 Kernel을 설정하는 방법입니다.
- 우측 상단의 Set Kernel 버튼을 클릭합니다.
Fig. Hit or Miss Property
- Kernel의 Half Width와 Half Height를 설정 후 구성 요소를 설정합니다.
- 1 : Hit Element
- 0 : Miss Element
- -1 : Ignore Condition
Fig. Set Kernel
설정한 커널로 실행한 예시 이미지입니다.
Source Image | Destination Image |
---|---|
![]() |
![]() |
![]() |
![]() |
Fig. Hit or Miss Example
4 예제
CFLImage fliSourceImage;
CFLImage fliDestinationImage;
CMorphologyHitOrMiss hitOrMiss;
hitOrMiss.SetSourceImage(fliSourceImage);
hitOrMiss.SetDestinationImage(fliDestinationImage);
// 커널 성분
CFLArray<CFLArray<float>> flarrKernel;
flarrKernel.PushBack(CFLArray<float>());
flarrKernel[0].PushBack(0.f);
flarrKernel[0].PushBack(0.f);
flarrKernel[0].PushBack(-1.f);
flarrKernel.PushBack(CFLArray<float>());
flarrKernel[1].PushBack(0.f);
flarrKernel[1].PushBack(-1.f);
flarrKernel[1].PushBack(1.f);
flarrKernel.PushBack(CFLArray<float>());
flarrKernel[2].PushBack(-1.f);
flarrKernel[2].PushBack(1.f);
flarrKernel[2].PushBack(1.f);
hitOrMiss.SetKernel(flarrKernel);
hitOrMiss.Execute();