bwareaopen
이진 영상에서 크기가 작은 객체 제거
설명
예제
영상에서 픽셀 수가 50개 미만인 객체 제거하기
이진 영상을 읽어 들입니다.
BW = imread('text.png');
bwareaopen
함수를 사용하여 픽셀 수가 50개 미만인 객체를 제거합니다.
BW2 = bwareaopen(BW, 50);
원본 영상과 모폴로지 열기 연산이 수행된 영상을 나란히 표시합니다.
imshowpair(BW,BW2,'montage')
입력 인수
BW
— 이진 영상
논리형 배열 | 숫자형 배열
이진 영상으로, 임의 차원을 가진 논리형 또는 숫자형 배열로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
P
— 객체의 최대 픽셀 수
음이 아닌 정수
객체의 최대 픽셀 수로, 음이 아닌 정수로 지정됩니다.
예: 50
데이터형: double
conn
— 픽셀 연결성
4
| 8
| 6
| 18
| 26
| 0
과 1
로 구성된 3×3×...×3 행렬
픽셀 연결성으로, 다음 표에 있는 값 중 하나로 지정됩니다. 디폴트 연결성은 2차원 영상의 경우 8
, 3차원 영상의 경우 26
입니다.
값 | 의미 | |
---|---|---|
2차원 연결성 | ||
| 경계가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 가로 또는 세로 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다. |
현재 픽셀은 회색으로 표시됩니다. |
| 경계 또는 코너가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 가로, 세로 또는 대각선 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다. |
현재 픽셀은 회색으로 표시됩니다. |
3차원 연결성 | ||
| 면이 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 다음 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다.
|
현재 픽셀은 큐브의 중앙입니다. |
| 면 또는 경계가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 다음 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다.
|
현재 픽셀은 큐브의 중앙입니다. |
| 면, 경계 또는 코너가 서로 닿으면 픽셀이 연결됩니다. 두 개의 인접한 픽셀이 모두 켜져 있고 다음 방향으로 연결되어 있으면 두 픽셀은 동일한 객체에 속합니다.
|
현재 픽셀은 큐브의 중앙입니다. |
더 높은 차원의 경우, bwareaopen
은 디폴트 값
을 사용합니다.conndef
(ndims(BW),'maximal')
0
과 1
로 구성된 3×3×...×3 행렬을 지정하여 모든 차원에 대해 더 일반적인 방식으로 연결성을 정의할 수도 있습니다. 값이 1
인 요소는 conn
의 중앙 요소를 기준으로 하여 이웃 픽셀의 위치를 정의합니다. conn
은 그 중앙 요소를 기준으로 대칭이어야 합니다. 자세한 내용은 Specifying Custom Connectivities 항목을 참조하십시오.
데이터형: double
| logical
알고리즘
기본 단계는 아래와 같습니다.
연결성분을 판별합니다.
CC = bwconncomp(BW, conn);
각 성분의 면적을 계산합니다.
S = regionprops(CC, 'Area');
크기가 작은 객체를 제거합니다.
L = labelmatrix(CC); BW2 = ismember(L, find([S.Area] >= P));
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
bwareaopen
함수는 C 코드 생성을 지원합니다(MATLAB® Coder™가 필요함). 자세한 내용은 Code Generation for Image Processing 항목을 참조하십시오.BW
는 2차원 이진 영상이어야 합니다. N차원 배열은 지원되지 않습니다.conn
은 2차원 연결성(4 또는 8)이나 3×3 행렬 중 하나만 지정할 수 있습니다. 3차원 연결성(6, 18 및 26)은 지원되지 않습니다. 3×3×...×3 크기의 행렬은 지원되지 않습니다.conn
은 컴파일타임 상수여야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
BW
는 2차원 이진 영상이어야 합니다. N차원 배열은 지원되지 않습니다.conn
은 2차원 연결성(4 또는 8) 또는 3×3 행렬 중 하나여야 합니다. 3차원 연결성(6, 18 및 26)은 지원되지 않습니다. 3×3×...×3 크기의 행렬은 지원되지 않습니다.conn
은 컴파일타임 상수여야 합니다.
버전 내역
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)