함수 > 이미지 처리 > 피쳐 추출 > 예제: 유클리드 거리 변환
예제: 유클리드 거리 변환
distform 함수를 사용하여 fg 값을 갖는 픽셀이 전경색 픽셀이라고 가정한 행렬 M의 유클리드 거리 변환을 계산합니다.
이 예제를 사용하는 것에 대한 자세한 내용은 이미지 처리 예제 정보를 참조하십시오.
이미지 행렬
1. 이미지 행렬을 정의하고 distform을 적용합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
각 출력 픽셀의 값은 가장 가까운 입력 전경색(값 100) 픽셀까지의 거리입니다.
입력 전경색 픽셀의 경우 출력 거리는 0입니다.
수평 및 수직 인접 픽셀의 경우 거리는 1입니다.
대각선 인접 픽셀의 경우 거리는 2의 제곱근 또는 1.414입니다.
0이 아닌 픽셀 하나만 있는 이미지
1. 0이 아닌 픽셀 하나만 있는 이미지를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. 이미지에 distform을 적용합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
입력 이미지에서 전경색 픽셀(중심 픽셀)에서 멀어질수록 거리가 단조롭게 증가합니다.
거리 변환은 근사적인 유클리드 거리를 생성합니다. 위 예에서 행렬 위치 (0,1)에 대한 정확한 유클리드 거리 변환 출력은 다음이 되어야 함을 알 수 있습니다.
이 식을 복사하려면 클릭
하지만 예제 출력 이미지에서 이 값은 5.243입니다.
원형 객체의 이미지
1. 원형 이미지를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. scale 함수를 사용하여 원의 배율을 변경합니다.
이 식을 복사하려면 클릭
3. WRITEBMP 함수를 사용하여 배율 적용된 원을 파일에 기록합니다.
이 식을 복사하려면 클릭
4. 원에 distform 함수를 적용하고 배율을 변경한 다음 결과를 새 파일에 기록합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
5. 두 파일의 이미지를 삽입하고 결과를 비교합니다.
(sc.bmp)
(scdist.bmp)
원 내부의 모든 점에서 거리 값이 0이고 원 바깥쪽으로 이동하면 거리 값이 단조롭게 증가하지만 유클리드 거리와 정확하게 일치하지 않고 출력이 방사형으로 대칭이 됩니다.
단일 객체의 두 이진 이미지
1. 이미지를 읽습니다.
이 식을 복사하려면 클릭
2. translate 함수를 사용하여 이미지의 변환된 버전을 생성하고 변환된 이미지를 파일에 기록합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 세 파일의 이미지를 삽입하고 결과를 비교합니다.
(flower.bmp)
(flower_d2.bmp)
(flower_d3.bmp)
4. distform 함수를 사용하여 D1의 거리 변환을 계산합니다.
이 식을 복사하려면 클릭
5. maskmean 함수를 사용하여 이미지 D2D3으로 거리 변환 이미지를 마스킹하고 전체 이미지의 평균을 계산합니다. 이것은 두 이미지 간의 거리 측정값을 나타냅니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
D1D1 사이의 거리는 0이고, D1 및 다른 이미지 사이의 거리는 변환 정도에 따라 증가합니다.
6. 하우스도르프 거리를 계산합니다.
하우스도르프 거리는 두 집합의 점 간에서 가장 가까운 거리의 최대값으로 정의됩니다. 두 이미지 간의 하우스도르프 거리를 계산하기 위해서 mean 함수 대신 max 함수를 사용합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
두 윤곽선 이미지
두 윤곽선 이미지 간의 거리를 계산하여 윤곽선 검출 함수의 성능을 비교할 수 있습니다. 마스킹한 거리의 평균이나 최대값을 윤곽선 거리 측정값으로 사용합니다.
1. READ_IMAGE 함수를 사용하여 이미지 파일을 읽습니다.
이 식을 복사하려면 클릭
2. 두 윤곽선 검출 함수 cannybinarize를 이미지에 적용하고 결과를 외부 파일에 기록합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 두 이미지를 삽입하고 시각적으로 비교합니다.
(lena_e1.bmp)
(lena_e2.bmp)
4. 윤곽선 간의 전체 거리를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
도움이 되셨나요?