전체 글

image processing

디지털 영상 처리 - 최소 평균 오차(Wiener) 필터링 구현하기

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 최소 평균 오차(Wiener) 필터링에서는 Wiener 필터링과 영상 내 노이즈의 정도를 측정하는 SNR(Signal-to-Noise Ratio)에 대해서 알아보았습니다. 오늘은 실제로 Wiener 필터링을 구현해보도록 하겠습니다. 오늘은 MATLAB에 구현되어 있는 wiener 필터링을 활용하겠습니다. wiener 필터링 예제는 아래의 MATLAB 공식 홈페이지 문서를 참조하였습니다. 위너 필터(Wiener Filter)를 사용하여 영상 디블러 처리하기 - MATLAB & Simulink Example - MathWorks 한국 이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까? kr.mathworks.com 기본..

image processing

디지털 영상 처리 - 최소 평균 오차(Wiener) 필터링

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 역 필터링에서는 굉장히 단순한 방법으로 영상을 복원하는 방법에 대해서 알아보았습니다. 그리고 역 필터링에서 발생하는 문제인 0으로 나눌 때 특정 주파수 영역만 나누는 cut-off 방법도 배웠습니다. 오늘은 이보다 좀 더 고차원적인 방법으로 영상을 복원하는 방법에 대해서 알아보겠습니다. 1. Wiener 필터링 기본적으로 영상 복원의 목표는 오염되지 않은 영상 $f$와 복원된 영상 $\hat{f}$ 사이의 차이를 최소하는 것으로 생각할 수 있습니다. 이를 수식화하면 아래와 같습니다. $$e^{2} = \mathbb{E}\{(f - \hat{f})^{2}\}$$ 여기서 $\mathbb{E}\{\cdot\}$는 기댓값을 의미합니다. 즉, 위 식은 $(f - \..

Programming/Python

Opencv 제대로 쓰기[6].영상 히스토그램

안녕하세요. 지난 포스팅의 Opencv 제대로 쓰기[5].영상 샤프닝에서는 영상으로부터 엣지를 얻은 뒤 샤프닝을 적용하는 방법에 대해서 알아보았습니다. 오늘은 영상으로부터 opencv를 이용해서 히스토그램을 추출하고 히스토그램 평활화하는 방법에 대해서 알아보겠습니다. 오늘도 전체 코드는 아래의 깃허브를 참조해주시길 바랍니다. skawngus1111/opencv-python-tutorial Contribute to skawngus1111/opencv-python-tutorial development by creating an account on GitHub. github.com 가장 먼저 해볼것은 영상으로부터 히스토그램을 추출하는 것입니다. 디지털 영상에서 히스토그램이란 밝기가 어느정도 분포해있는 지 알 ..

image processing

디지털 영상 처리 - 역 필터링

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 열화 함수 추정에서는 저희에게 최소한의 정보가 주어졌을 때 열화함수를 추정하는 방법에 대해서 알아보았습니다. 어떻게든 열화함수를 알아냈다면 다음으로 저희가 할 일은 추정된 열화함수를 통해 다시 깨끗한 영상을 만들어주는 복원 과정을 해주면 됩니다. 오늘은 이러한 복원에서 가장 간단한 역 필터링(inverse filtering)에 대해서 알아보도록 하겠습니다. 저희가 열화함수에 대해서 선형성과 위치 불변성을 가정한 것이 기억나시나요? 이와 같은 가정하에서 오염된 영상 $g(x, y)$는 입력 영상 $f(x, y)$과 열화 함수 $H$의 임펄스 응답 사이의 컨볼루션 연산임을 증명하였습니다. 이를 수식으로 정리하면 아래와 같습니다. 여기서 부가 노이즈항 $\eta..

image processing

디지털 영상 처리 - 열화 함수 추정

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 선형 및 위치 불변 열화 함수에서는 열화 함수에 선형성(가산성과 동차성을 동시에 만족)과 위치 불변성이라는 특별한 가정을 했을 때 오염된 영상 $g(x, y)$란 깨끗한 영상 $f(x, y)$와 열화 함수 $H$의 임펄스 응답 $h(x, y)$ 사이의 컨볼루션 연산을 통해 얻을 수 있음을 알게 되었습니다. 이를 정리하면 아래와 같죠. $$g(x, y) = h(x, y) * f(x, y) + \eta(x, y) \Leftrightarrow G(\mu, \nu) = H(\mu, \nu)F(\mu, \nu) + N(\mu, \nu)$$ 여기서 $G(\mu, \nu), F(\mu, \nu), H(\mu, \nu), N(\mu, \nu)$는 각각 $g(x, y), ..

Programming/Python

Opencv 제대로 쓰기[5].영상 샤프닝

안녕하세요. 지난 포스팅의 Opencv 제대로 쓰기[4].흐림 처리에서는 opencv를 이용한 2D 필터링을 할 수 있는 함수인 cv2.filter2D, 박스 필터링을 적용하는 함수인 cv2.blur, 가우시안 블러링을 적용하는 함수인 cv2.GaussianBlur 들에 대해서 알아보고 커널의 크기나 분산의 크기를 바꾸는 등 주요 파라미터들을 바꾸어보면서 어떤 결과가 나오는 지도 알아보았습니다. 이에 이어서 opencv를 이용해서 영상 샤프닝을 수행하는 방법에 대해서 알아보도록 하겠습니다. 영상 샤프닝에 대해서 더 자세히 공부하고 싶으신 분들이나 MATLAB으로 구현을 원하시는 분들은 아래에 이전에 미리 정리해두었던 링크를 참조해주시길 바랍니다. 참고로 본 포스팅에서는 언샤프 마스킹을 구현하지 않았습니다..

image processing

디지털 영상 처리 - 선형 및 위치 불변 열화 함수

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 노이즈만 있을 때 복원하기(공간 필터링) : 적응 필터 구현에서는 영상의 작은 부분에 대한 특성을 고려한 "적응적, 지역적 노이즈 감쇠 필터"와 "적응적 중간값 필터"를 구현해보았습니다. 지금까지는 노이즈 $\eta(x, y)$ 및 $N(\mu, \nu)$에 대해서만 고려했지만 오늘부터는 열화 함수 $h(x, y)$ 및 $H(\mu, \nu)$까지 적용된 오염된 영상을 복원해보도록 하겠습니다. 그 전에 저희는 추정할 열화 함수에 대한 가정과 가정된 열화 함수 $H(\mu, \nu)$에 대한 성질도 확인해보도록 하겠습니다. 저희는 영상 열화의 과정을 아래의 그림과 수식을 이용해서 표현하기로 약속하였습니다. $$g(x, y) = H\left[f(x, y)\ri..

image processing

디지털 영상 처리 - 노이즈만 있을 때 복원하기(공간 필터링) : 적응 필터 구현

안녕하세요. 지난 포스팅의 디지털 영상 처리 - 주파수 도메인 필터링에 의한 노이즈 감소에 대해서 알아보았습니다. 그런데 이전에 공간 필터링에 대해서 구현할 때 평균 필터와 순서-통계 필터만 구현하고 적응 필터링은 구현하지 않았습니다. 오늘은 적응 필터링을 구현해보도록 하겠습니다. 적응 필터링의 전체 코드는 아래의 링크를 참고해주시길 바랍니다. skawngus1111/DIP Digital Image Processing exercise&code. Contribute to skawngus1111/DIP development by creating an account on GitHub. github.com 1. 적응적, 지역적 노이즈 감소 필터(Adaptive, Local Noise Reduction Filte..

Johns Hohns
Everyday Image Processing