MATLAB 도움말 센터
2차원 영상 플랫 필드 보정
J = imflatfield(I,sigma)
J = imflatfield(I,sigma,mask)
J = imflatfield(___,'FilterSize',filterSize)
J = imflatfield(I,sigma)는 회색조 영상 또는 RGB 영상 I에 플랫 필드 보정을 적용합니다. 이 보정에서는 I의 음영 성분을 근사하기 위해 표준편차가 sigma인 가우스 평활화를 사용합니다. 보정된 영상은 J로 반환됩니다.
J
I
sigma
예제
J = imflatfield(I,sigma,mask)는 영상 I에서 이진 마스크가 true인 부분에만 플랫 필드 보정을 적용합니다. 마스크가 false인 경우 출력 영상 J는 영상 I의 수정되지 않은 값을 포함합니다.
mask
true
false
J = imflatfield(___,'FilterSize',filterSize)는 가우스 평활화 필터의 크기를 지정합니다.
filterSize
모두 축소
회색조 영상을 불러옵니다. 이 영상의 왼쪽과 오른쪽 상단 코너에 심각한 음영 왜곡이 있습니다.
I = imread('printedtext.png'); imshow(I) title('Distorted Image')
플랫 필드 보정을 수행합니다.
sigma = 30; Iflatfield = imflatfield(I,sigma);
결과를 표시합니다. 보정된 영상의 밝기가 더 균일합니다.
imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
비네팅 결함이 있는, 즉 코너로 갈수록 영상이 어두워지는 컬러 영상을 불러옵니다.
I = imread('fabric.png'); imshow(I) title('Image with Vignetting')
sigma = 20; Iflatfield = imflatfield(I,sigma);
컬러 영상을 불러옵니다. 이 영상의 오른쪽 아래 코너에 음영 결함이 있습니다.
I = imread('hands1.jpg'); imshow(I) title('Image with Dark Corner')
전체 영상에 플랫 필드 보정을 적용해 봅니다.
sigma = 25; Iflatfield = imflatfield(I,25); imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
코너의 음영 결함은 보정되었지만, 영상 중심이 너무 밝고 손의 색이 달라졌습니다. 이 과도하게 밝아지는 아티팩트를 방지하기 위해, 플랫 필드 보정을 영상의 배경에만 적용합니다.
이 영상의 마스크를 불러옵니다. 원래 마스크 maskHand에서는 분할된 손이 관심 영역(ROI)입니다. 배경이 ROI가 되도록 마스크를 반전합니다. 마스크를 표시합니다. ROI가 흰색으로 표시됩니다.
maskHand
maskHand = imread('hands1-mask.png'); maskBackground = ~maskHand; imshow(maskBackground) title('Background Mask')
마스크 maskBackground를 사용하여 영상의 배경에 대해 플랫 필드 보정을 수행합니다. 마스크에서 손은 관심 영역이 아니므로, 손의 픽셀에는 플랫 필드 보정이 적용되지 않습니다.
maskBackground
Iflatfield2 = imflatfield(I,sigma,maskBackground);
보정된 영상을 표시합니다. 코너의 음영 결함이 보정되었으며, 손의 색도 그대로 유지됩니다.
imshow(Iflatfield2) title(['Flat-Field Corrected Background, \sigma = ',num2str(sigma)])
왜곡된 영상으로, 크기가 m×n인 2차원 회색조 영상 또는 m×n×3인 2차원 RGB 영상으로 지정됩니다.
데이터형: single | double | int16 | uint8 | uint16
single
double
int16
uint8
uint16
가우스 평활화 필터의 표준편차로, 양수 또는 양수 요소를 2개 가진 벡터로 지정됩니다. 스칼라를 지정하면 imflatfield는 정사각 가우스 커널을 사용합니다.
imflatfield
데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
int8
int32
int64
uint32
uint64
이진 마스크로, 크기가 m×n인 2차원 숫자형 또는 논리형 행렬로 지정됩니다. 숫자형 입력값의 경우 0이 아닌 픽셀은 1(true)로 간주됩니다.
1
가우스 필터의 크기로, 스칼라 또는 양의 홀수 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. 스칼라를 지정하면 imflatfield는 정사각 필터를 사용합니다. 디폴트 필터 크기는 2*ceil(2*sigma)+1입니다.
2*ceil(2*sigma)+1
보정된 영상으로, 입력 영상 I와 크기 및 데이터형이 같은 2차원 회색조 영상 또는 RGB 영상으로 반환됩니다.
I가 RGB 영상인 경우 imflatfield는 rgb2hsv를 사용하여 영상을 HSV 컬러스페이스로 변환하고 HSV 명도 채널에 플랫 필드 보정을 적용합니다. 영상은 hsv2rgb를 사용하여 다시 RGB 컬러스페이스로 변환됩니다.
rgb2hsv
hsv2rgb
mask를 지정할 경우, imflatfield는 플랫 필드 추정 중에 경계의 아티팩트를 줄이기 위해 마스크를 팽창시키고 영상 경계선을 채웁니다.
R2018b에 개발됨
rgb2hsv | hsv2rgb
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
유럽
아시아 태평양
지역별 지사에 문의