Image Enhancement & Noise reduction & Edge Detection

류창훈·2023년 10월 19일
0

CV (Computer Vision)

목록 보기
3/9

Image Enhancement


이미지 명도 이해



위 그래프에서 x축 a, b 파트에서 기울기 값이 달라지는 것을 확인할 수 있습니다.


그래서 명도 대비가 커지는 현상이 발생합니다.



이런식으로 0~255값 중에서 골고루 퍼져있는 값이면, 'stretching' 기법이 소용없다.



Histogram Equalization


어떤 이미지 데이터를 히스토그램으로 나타낼 수 있는데, 이렇게 시각화 하면, 각 pixel(R,G,B)가 얼마나 나왔는지 바로 파악 할 수 있습니다.


왼쪽 Gray-scale은 픽셀 빈도수를 의미합니다.


그리고 왼쪽 파트처럼, 한쪽부분(위 그래프는 100~200)에 몰려있는 구조는 오른쪽처럼, Equilization을 실시하면 오른쪽과 같이 이미지가 이쁘장 하게 개선되는 것을 확인할 수 있습니다.


다만, 여기서 주의할 점은, 오른쪽처럼 무분별하게 equilization을 해주면 Noise가 생길 가능성이 존재합니다.

왼쪽 그림 오른쪽 그림 비교하면 뭔가 좀 이상한게 느껴진다.


그리고, 이미지를 HSV 값으로 바꿔주고 평활화를 진행하면 좀 더 다양한 색상을 나타낼 수 있어서 더 좋다고 합니다.


HSV에 대한 내용은 저번 포스팅을 보면 나와있다 ㅎㅎ




Noise reduction


Median Filter

median filter는 노이즈 제거를 위해 사용되는 여러 필터 중 하나입니다.
이는 중앙값 (median)을 선택하여 원래 픽셀의 값을 대체합니다.

위 그림을 보면, 두개의 필터가 나오는데, 위의 필터는 외곡된 출력값의 예시이고,

아래 필터는 이미지가 외곡되지 않고 잘 나오는 것을 알 수 있습니다.


필터 모양세는 당연히 다양하게 만들 수 있고, 이는 필터 모양에 따라 출력물이 달라진다는 것을 의미한다.

위의 원본사진은 Impulse noise를 껴 넣은 것으로, 일부 픽셀 또는 샘플이 예상되는 값에서 크게 벗어난 값을 갖는 노이즈를 말합니다.

noise에도 종류가 참 많나보다.

이렇게 되면, 매우 극단적인 값이라서 완전 밝든, 어둡든 한 모양이 나오게 되는데, median filter를 적용하니 어느정도 잘 나온것을 확인할 수 있습니다.


필터 막 옮겨가면서 중간정도의 값을 찍어내기 때문에, 상단 오른쪽 그림처럼 noise가 사라진 값이 나온다.




Edge Detection


엣지 검출 이해


도대체 엣지 검출이 뭐냐?라는 의문에, 위의 그림을 보면 이해가 바로 될 것 같습니다.

위에 그림은 색상(명도)의 변화를 나타내는 것이 아닌, 어떤 경계선(edge)을 기준으로 그래프가 위 아래로 요동치는 것을 확인할 수 있습니다.



Line detection

위는 필터를 뜻합니다.

각 각도 변화마다, 원래의 필터값에서 각각 45°, 수직, -45° 방향으로 막 돌린 필터들 입니다.

이 필터들의 사이즈는 어떤 식으로든 상관이 없습니다. 위에는 3 x 3 크기이지만, 이게 4 x 4, 5 x 5 사이즈도 괜찮다는 말입니다.



Gradient

위의 식들은 기울기를 구할 때 사용되는 3가지 식 입니다.


주로 1번 식을 많이 사용한다고 합니다.

사실 기울기 구하는 식이 이렇게 많은 줄 몰랐다 ㅎㅎ

그리고, edge 검출에 필요한 Prewitt, Sobel, Chen-Frei 연산자가 나왔습니다.


여기서 K값은 스케일링, 정규화 값을 뜻합니다. 커널을 적용한 후의 결과를 나누기 위해 사용됩니다.

추가로, 왼쪽은 수직 방향의 엣지검출, 오른쪽은 수평방향 엣지검출에 사용됩니다.


위 그림을 보면, 경계선으로 구분이 가능한데, 이게 x축 방향으로 edge를 추출하냐, y축 방향으로 edge를 추출하냐에 따라 결과물이 달라집니다.


그리고 밑에 threshhold값 70이라는게, magnitude(기울기 강도) 70 이상인 edge만 edge로 간주한다는 뜻 입니다.




감사합니당 ~ 🦾



profile
Linear AI Developer입니다.

0개의 댓글

관련 채용 정보