Computer Science/Image Processing
[Image Processing] Piecewise linear transformation(구간별 선형 변환) (by MATLAB)
Bull_
2024. 3. 21. 22:40
개념
아래의 사진과 같이 특정 구간(A-B)에서의 강도나 대비를 다른 함수를 통해 바꿔주는 방법을 말한다.
함수는 고등학교때 배운 범위별 케이스로 나누는 함수를 생각하면 된다.
종류
Contrast Stretching

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

이 기법은 특정 강도(밝기)를 강조시켜준다.
코드
코드는 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 |
사진


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