[DIP]디지털영상처리 연습문제 4장 - 문제 및 해설
[DIP]디지털영상처리 연습문제 4장 - 문제 및 해설
2.
위 영상은 원 영상을 나누었다가 다시 곱한 영상으로써, 영상의 크기는 원 영상과 동일하다.
이와 같은 영상이 나오는 이유는 원본 영상을 나누는 과정에서 화소의 많은 부분이 손실되었기 때문이다.
4.
함수 명령어(m파일 첨부)
function h = hist2(f)
h = zeros(256, 1);
for i1=1:size(f,1)
for i2=1:size(f,2)
h((f(i1,i2)+1), 1) = h(f(i1,i2)+1, 1) + 1;
end
end
hist(h);
결과창(cameraman.tif)
6.
a.
명령어
----------------------------------------------------------------
x = [0:15];
y = [20 40 60 75 80 75 65 55 50 45 40 35 30 25 20 30];
L = size(y,2);
sum_n = zeros(size(y));
sum_n(1,1) = y(1,1);
for i1=2:L
sum_n(1, i1) = sum_n(1, i1-1) + y(1, i1);
end
z = round(sum_n*(L-1)/sum_n(1,end));
bar(x, y)
bar(x, z)
----------------------------------------------------------------
결과창
히스토그램 결과
히스토그램 평활화 결과
b.
명령어
----------------------------------------------------------------
x = [0:15];
y = [0 0 40 80 45 110 70 0 0 0 0 0 0 0 0 15];
L = size(y,2);
sum_n = zeros(size(y));
sum_n(1,1) = y(1,1);
for i1=2:L
sum_n(1, i1) = sum_n(1, i1-1) + y(1, i1);
end
z = round(sum_n*(L-1)/sum_n(1,end));
bar(x, y)
bar(x, z)
----------------------------------------------------------------
결과창
히스토그램 평활화 결과
13.
해당 수식을 간단하게 한 것은 다음과 같다.
t1 = 0.4*[0:5];
t2 = 3*[6:9]-13;
t3 = 1/6*[10:15]+25/2;
이 배열들을
T = uint8(floor([t1 t2 t3]));
명령어를 이용하여 plot명령어로 그래프를 출력하면
위와 같다. 이는 floor로 인하여 소수점 이하를 모두 버렸기 때문이다.
소수점을 유지하기 위하여 해당 배열들을
T2 = [t1 t2 t3];
명령어를 이용하여 plot명령어로 그래프를 출력하면
위와 같다. 이는 4.3.1절에 있는 부분적 선형 스트레칭 함수와 유사한 것을 알 수 있다.