Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

ssim

영상 품질을 측정하는 구조적 유사도(SSIM) 지수

설명

ssimval = ssim(A,ref)ref를 참조 영상 또는 볼륨으로 사용하여 회색조 영상 또는 볼륨 A의 구조적 유사도(SSIM) 지수를 계산합니다.

예제

[ssimval,ssimmap] = ssim(A,ref)A의 각 픽셀 또는 복셀에 대해 국소 SSIM 값도 반환합니다.

___ = ssim(A,ref,Name,Value)는 이름-값 쌍을 사용하여 계산의 특성을 제어하는 방법으로 SSIM을 계산합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다. 블러 처리 필터를 적용하여 다른 버전의 영상을 생성합니다.

ref = imread('pout.tif');
H = fspecial('Gaussian',[11 11],1.5);
A = imfilter(ref,H,'replicate');

두 영상 모두 몽타주로 표시합니다. 이 영상들은 격자 울타리 경계와 같이 선명한 고대비 영역에서 가장 큰 차이를 보입니다.

montage({ref,A})
title('Reference Image (Left) vs. Blurred Image (Right)')

Figure contains an axes. The axes with title Reference Image (Left) vs. Blurred Image (Right) contains an object of type image.

영상에 대한 전역 SSIM 값과 각 픽셀에 대한 국소 SSIM 값을 계산합니다.

[ssimval,ssimmap] = ssim(A,ref);

국소 SSIM 맵을 표시합니다. 그림 제목에 전역 SSIM 값을 포함합니다. 국소 SSIM의 값이 작으면 국소 SSIM 맵에서 어두운 픽셀로 나타납니다. 국소 SSIM 값이 작은 영역은 블러 처리한 영상이 참조 영상과 뚜렷이 구분되는 영역입니다. 국소 SSIM 값의 큰 값이 밝은 픽셀로 나타납니다. 국소 SSIM이 큰 영역은 참조 영상의 균일 영역에 해당합니다. 여기서는 영상에 대한 블러 처리의 효과가 크지 않습니다.

imshow(ssimmap,[])
title(['Local SSIM Map with Global SSIM Value: ',num2str(ssimval)])

Figure contains an axes. The axes with title Local SSIM Map with Global SSIM Value: 0.94068 contains an object of type image.

입력 인수

모두 축소

품질을 측정할 영상으로, 2차원 회색조 영상 또는 3차원 회색조 볼륨으로 지정됩니다.

데이터형: single | double | int16 | uint8 | uint16

품질 측정 시 비교할 참조 영상으로, A와 크기와 데이터형이 같은 2차원 회색조 영상 또는 3차원 회색조 볼륨으로 지정됩니다.

데이터형: single | double | int16 | uint8 | uint16

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: ssim(A,ref,'DynamicRange',100)

입력 영상의 동적 범위로, 양의 스칼라로 지정됩니다. DynamicRange의 디폴트 값은 영상 A의 데이터형에 따라 달라지며 diff(getrangefromclass(A))로 계산됩니다. 예를 들어, 데이터형이 uint8형인 영상의 디폴트 동적 범위는 255이고, 데이터형이 double형 또는 single형이고 픽셀 값이 [0, 1] 범위 내에 있는 영상의 디폴트 동적 범위는 1입니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

휘도 항, 대비 항, 구조 항에 대한 지수로, 음이 아닌 숫자로 구성된 요소를 3개 가진 벡터 [alpha beta gamma]로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

등방성 가우스 함수의 표준편차로, 양수로 지정됩니다. 이 값은 국소 통계량을 추정하기 위해 픽셀 주변의 이웃 픽셀에 가중치를 부여하는 데 사용됩니다. 국소 통계량을 추정할 때 블로킹 아티팩트를 방지하기 위해 이렇게 가중치를 부여합니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

휘도 항, 대비 항, 구조 항에 대한 정규화 상수로, 음이 아닌 숫자로 구성된 요소를 3개 가진 벡터 [c1 c2 c3]으로 지정됩니다. ssim 함수는 이 정규화 상수를 사용하여 국소 평균 또는 표준편차가 0에 가까운 영상 영역의 불안정성을 방지합니다. 따라서 정규화 상수에는 0이 아닌 작은 값을 사용해야 합니다.

디폴트 값은 다음과 같습니다.

  • C1 = (0.01*L).^2(여기서 L은 지정된 DynamicRange 값임)

  • C2 = (0.03*L).^2(여기서 L은 지정된 DynamicRange 값임)

  • C3 = C2/2

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

출력 인수

모두 축소

SSIM 지수로, 숫자형 스칼라로 반환됩니다. ssimval의 데이터형은 double형입니다. 단, A의 데이터형이 single형인 경우 ssimval의 데이터형은 single형입니다.

ssimval의 값의 범위는 일반적으로 [0, 1]입니다. 값 1은 가장 높은 품질을 나타내며, Aref가 서로 동일한 경우에 발생합니다. 더 작은 값은 더 낮은 품질에 해당합니다. 입력값과 이름-값 쌍 인수의 일부 조합에 대해 ssimval은 음수일 수 있습니다.

SSIM 지수의 국소 값으로, 입력 영상 A와 크기가 같은, 음이 아닌 숫자로 구성된 숫자형 배열로 반환됩니다. ssimmap의 데이터형은 double입니다. 단, A의 데이터형이 single형인 경우 ssimmap의 데이터형은 single형입니다.

세부 정보

모두 축소

구조적 유사도 지수

영상의 3가지 특성인 휘도, 대비, 구조의 시각적 영향을 평가하는 영상 품질 메트릭입니다.

알고리즘

SSIM 지수 품질 평가 지수는 3개의 항, 즉 휘도 항, 대비 항, 구조 항의 계산을 기반으로 합니다. 전체 지수는 3개 항의 곱셈 조합입니다.

SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ

여기서

l(x,y)=2μxμy+C1μx2+μy2+C1,c(x,y)=2σxσy+C2σx2+σy2+C2,s(x,y)=σxy+C3σxσy+C3

이 경우, μx, μy, σxy, σxy는 영상 x, y의 국소 평균, 표준편차, 교차공분산입니다. α = β = γ = 1(Exponents의 디폴트 값), C3 = C2/2(C3의 디폴트 선택값)이면 SSIM이 다음과 같이 단순화됩니다.

SSIM(x,y)=(2μxμy+C1)(2σxy+C2)(μx2+μy2+C1)(σx2+σy2+C2)

'Exponents'에 대해 정수가 아닌 값을 지정할 경우 ssim 함수는 중간 휘도 항, 대비 항, 구조 항을 범위 [0, inf]로 고정하여 복소수 값의 출력값을 방지합니다.

참고 문헌

[1] Zhou, W., A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. "Image Qualifty Assessment: From Error Visibility to Structural Similarity." IEEE Transactions on Image Processing. Vol. 13, Issue 4, April 2004, pp. 600–612.

R2014a에 개발됨