2.3.3 히스토그램(콘트라스트) 매칭

목차에 대한 링크



MATLAB에 의한 화상 처리 · 컴퓨터 비전 입문 목차

개요



MATLAB에 의한 히스토그램 매칭에 대해 소개합니다. 평소처럼 매우 간단합니다.
Image Processing Toolbox가 필요합니다.
지원 파일: I2_03_3_histmatch.m

초기화



코드
clear;clc;close all;imtool close all

이미지 읽기/표시



먼저 이미지를 로드합니다.

코드
Ref = imread('I2_03_3_knee1a.tif');  % 膝のMRIイメージの読込み
  A = imread('I2_03_3_knee1b.tif');
figure;imshow([Ref A]);



보시다시피 이미지가 밝기가 다르다는 것을 알 수 있습니다.

히스토그램 표시



히스토그램에서 각 휘도 분포를 살펴 보겠습니다.

코드
figure;
subplot(2,2,1);imhist(Ref);title('リファレンス');
subplot(2,2,2);imhist(  A);



육안에서 알 수 있듯이 참조 이미지에 대해 knee1b는 밝기가 낮다는 것을 알 수 있습니다.

히스토그램 매칭



참조와 일치하도록 knee1b의 휘도 분포를 보정합니다.

코드
B = imhistmatch(A, Ref, 256);  % AのヒストグラムをRefに一致させる
subplot(2,2,4);imhist(B);title('処理結果'); shg;



제대로 보정되고 있는 모습을 알 수 있네요.

결과 표시



코드
figure;imshow([Ref repmat(239,[512 20]) B]);



결과적으로 외형이 거의 동일하게 되었습니다!

imhist에 관해서는, 경험으로부터 1점 주의가 필요합니다. 그것은 입력하는 이미지 데이터의 유형입니다.
uint8형이라면 0-255의 범위에서 히스토그램을 플롯해 줍니다.
single 또는 double이면 0-1의 범위에서 히스토그램을 플롯합니다. 주의가 필요한 것은 이 부동 소수점형의 때군요. 데이터의 그림 dswpq㎉mk, 범위가 0-1에 담겨 있지 않으면 당연히 나오는 플롯은 도움이 되지 않는 것이 되기 때문에, 주의해 주시면이라고 생각합니다. 데이터의 정규화에는 rescale 함수를 사용할 수 있습니다.

감사의 말



이 기사는 @eigs 님의 livescript2markdown 을 사용하겠습니다.

목차에 대한 링크



MATLAB에 의한 화상 처리 · 컴퓨터 비전 입문 목차

좋은 웹페이지 즐겨찾기