관리 메뉴

Bull

[Image Processing] Piecewise linear transformation(구간별 선형 변환) (by MATLAB) 본문

Computer Science/Image Processing

[Image Processing] Piecewise linear transformation(구간별 선형 변환) (by MATLAB)

Bull_ 2024. 3. 21. 22:40

개념


아래의 사진과 같이 특정 구간(A-B)에서의 강도나 대비를 다른 함수를 통해 바꿔주는 방법을 말한다.

 

함수는 고등학교때 배운 범위별 케이스로 나누는 함수를 생각하면 된다.

 

종류


Contrast Stretching

출처:  Digital Image Processing( Rafael C . Gonzalez  ,  Richard E. Woods  저자)

 

이 기법은 명암을 좀더 대비시켜 준다.

 

 

Intensity Level Slicing

출처:  Digital Image Processing( Rafael C . Gonzalez  ,  Richard E. Woods  저자)

 

이 기법은 특정 강도(밝기)를 강조시켜준다.

 

코드


코드는 intensify level slicing을 예제로 해보겠다.

 

함수는 intensify level slicing 사진의 1번째 도표와 비슷하게 만들어 주었다.

 

img = imread("dog.jpg");
img = uint8(mean(img,3));

A=150;
B=200;

[m,n] = size(img);

for i=1:m
    for j=1:n
        if img(i,j) <=A
            img(i,j) = 0;
        elseif img(i,j) >=B
            img(i,j) = 255;
        else
            img(i,j)=img(i,j);
        end
    end
end

imshow(img);

 

함수에 대한 설명은 직관적으로 볼 수 있게 히스토그램으로 나타내었다.

 

before after
150이하 0
150~120 원본
200이상 255

 

사진


출처:&nbsp;https://mypetlife.co.kr/150519/

 

약간 무서운 사진이 되었다....