대학 수강과목/디지털영상처리

[DIP]디지털영상처리 연습문제 4장 - 문제 및 해설

흐이애 2016. 11. 7. 19:43

[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절에 있는 부분적 선형 스트레칭 함수와 유사한 것을 알 수 있다.



hist2.m


반응형