bwmorph
이진 영상에 대한 모폴로지 연산
설명
예제
이진 영상에 대해 모폴로지 연산 수행하기
이진 영상을 읽어 들인 후 이를 표시합니다.
BW = imread('circles.png');
imshow(BW);
내부 픽셀을 제거하여 형태의 윤곽선만 남깁니다.
BW2 = bwmorph(BW,'remove');
figure
imshow(BW2)
영상 골격을 표시합니다.
BW3 = bwmorph(BW,'skel',Inf);
figure
imshow(BW3)
입력 인수
BW
— 이진 영상
2차원 숫자형 행렬 | 2차원 논리형 행렬
이진 영상으로, 2차원 숫자형 행렬 또는 2차원 논리형 행렬로 지정됩니다. 숫자형 입력값의 경우 0이 아닌 픽셀은 1
(true
)로 간주됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
operation
— 수행할 모폴로지 연산
문자형 벡터 | string형 스칼라
수행할 모폴로지 연산으로, 다음 중 하나로 지정됩니다.
연산 | 설명 |
---|---|
| 원래 영상에서 모폴로지 닫기가 수행된 영상을 뺀 값을 반환하는, bottom-hat 모폴로지 연산을 수행합니다.
|
| 골격의 분기점을 찾습니다. 예를 들면 다음과 같습니다. 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 becomes 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 참고: 분기점을 찾으려면 영상을 골격화해야 합니다. 골격화된 영상을 만들려면 |
| 연결되지 않은 픽셀들을 연결합니다. 즉, 값이 1 0 0 1 1 0 1 0 1 becomes 1 1 1 0 0 1 0 1 1 |
| 아래 패턴의 중앙 픽셀과 같이, 고립된 픽셀( 0 0 0 0 1 0 0 0 0 |
| 모폴로지 닫기(팽창을 적용한 후 침식 적용)를 수행합니다.
|
| 대각선 채우기를 사용하여 배경의 8-연결성을 제거합니다. 예를 들면 다음과 같습니다. 0 1 0 0 1 0 1 0 0 becomes 1 1 0 0 0 0 0 0 0 |
| 골격의 끝점을 찾습니다. 예를 들면 다음과 같습니다. 1 0 0 0 1 0 0 0 0 1 0 0 becomes 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 참고: 끝점을 찾으려면 영상을 골격화해야 합니다. 골격화된 영상을 만들려면 |
| 아래 패턴의 중앙 픽셀과 같이, 고립된 내부 픽셀( 1 1 1 1 0 1 1 1 1 |
| H의 연결부 픽셀을 제거합니다. 예를 들면 다음과 같습니다. 1 1 1 1 1 1 0 1 0 becomes 0 0 0 1 1 1 1 1 1 |
| 한 픽셀의 3×3 이웃에서 5개 이상의 픽셀이 |
| 모폴로지 열기(침식을 적용한 후 팽창 적용)를 수행합니다.
|
| 내부 픽셀을 제거합니다. 이 옵션은 픽셀의 4-연결 이웃이 모두 |
|
|
|
3차원 볼륨 영상을 가지고 작업하거나 골격의 가지를 제거하려면 |
| 스퍼 픽셀을 제거합니다. 예를 들면 다음과 같습니다. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 becomes 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 |
|
|
|
|
| 원래 영상에서 모폴로지 열기가 수행된 영상을 뺀 값을 반환하는, top-hat 모폴로지 연산을 수행합니다.
|
팁
모폴로지 침식이나 팽창을 수행하려면 각각 imerode
또는 imdilate
함수를 사용하십시오. bwmorph
함수에 의해 수행된 팽창이나 침식과 같은 결과를 얻으려면 이웃을 ones(3)
으로 지정하십시오.
데이터형: char
| string
n
— 연산을 수행할 횟수
양의 정수 | Inf
연산을 수행할 횟수로, 양의 정수 또는 Inf
로 지정됩니다. n
을 Inf
로 지정하는 경우, bwmorph
함수는 영상에 더 이상 변화가 없을 때까지 연산을 반복합니다.
예: 100
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
출력 인수
BW2
— 모폴로지 연산 후 영상
2차원 논리형 행렬
모폴로지 연산 후 영상으로, 2차원 논리형 행렬로 반환됩니다.
데이터형: logical
알고리즘
bwmorph
는 'thin'
옵션과 함께 사용될 경우 다음 알고리즘을 사용합니다 [3].
첫 번째 부반복(subiteration)에서, 조건 G1, G2 및 G3이 모두 충족될 경우에만 픽셀 p를 삭제합니다.
두 번째 부반복에서, 조건 G1, G2 및 이 모두 충족될 경우에만 픽셀 p를 삭제합니다.
조건 G1:
여기서
x1, x2, ..., x8은 p의 이웃 픽셀 8개(동쪽에 있는 이웃 픽셀부터 시작하여 반시계 방향으로 번호가 지정됨)의 값입니다.
조건 G2:
여기서
조건 G3:
조건 G3':
두 번의 부반복이 모여 한 번의 세선화 알고리즘의 반복을 구성합니다. 사용자가 반복 횟수를 무한으로 지정하면(n=Inf
) 영상에 더 이상 변화가 없을 때까지 반복이 되풀이됩니다. 조건들은 모두 미리 계산된 룩업 테이블과 함께 applylut
를 사용하여 테스트됩니다.
참고 문헌
[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Vol. 1, Addison-Wesley, 1992.
[2] Kong, T. Yung and Azriel Rosenfeld, Topological Algorithms for Digital Image Processing, Elsevier Science, Inc., 1996.
[3] Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, September 1992, page 879, bottom of first column through top of second column.
[4] Pratt, William K., Digital Image Processing, John Wiley & Sons, Inc., 1991.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
bwmorph
함수는 C 코드 생성을 지원합니다(MATLAB® Coder™가 필요함). 일반적인MATLAB Host Computer
대상 플랫폼을 선택할 경우bwmorph
함수는 미리 컴파일된 플랫폼별 공유 라이브러리를 사용하는 코드를 생성합니다. 공유 라이브러리를 사용하면 성능 최적화가 유지되지만 코드를 생성할 수 있는 대상 플랫폼이 제한됩니다. 자세한 내용은 Types of Code Generation Support in Image Processing Toolbox 항목을 참조하십시오.코드를 생성 시, 연산을 지정하는 문자형 벡터 또는 string형 스칼라는 컴파일타임 상수여야 하며 최상의 결과를 위해 입력 영상은
logical
형 클래스여야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드를 생성 시, 연산을 지정하는 문자형 벡터 또는 string형 스칼라는 컴파일타임 상수여야 하며 최상의 결과를 위해 입력 영상은
logical
형 클래스여야 합니다.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU를 사용한 영상 처리 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)