안녕하세요. 지난 포스팅의 Opencv 제대로 쓰기[5].영상 샤프닝에서는 영상으로부터 엣지를 얻은 뒤 샤프닝을 적용하는 방법에 대해서 알아보았습니다. 오늘은 영상으로부터 opencv를 이용해서 히스토그램을 추출하고 히스토그램 평활화하는 방법에 대해서 알아보겠습니다. 오늘도 전체 코드는 아래의 깃허브를 참조해주시길 바랍니다. skawngus1111/opencv-python-tutorial Contribute to skawngus1111/opencv-python-tutorial development by creating an account on GitHub. github.com 가장 먼저 해볼것은 영상으로부터 히스토그램을 추출하는 것입니다. 디지털 영상에서 히스토그램이란 밝기가 어느정도 분포해있는 지 알 ..
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 열화 함수 추정에서는 저희에게 최소한의 정보가 주어졌을 때 열화함수를 추정하는 방법에 대해서 알아보았습니다. 어떻게든 열화함수를 알아냈다면 다음으로 저희가 할 일은 추정된 열화함수를 통해 다시 깨끗한 영상을 만들어주는 복원 과정을 해주면 됩니다. 오늘은 이러한 복원에서 가장 간단한 역 필터링(inverse filtering)에 대해서 알아보도록 하겠습니다. 저희가 열화함수에 대해서 선형성과 위치 불변성을 가정한 것이 기억나시나요? 이와 같은 가정하에서 오염된 영상 $g(x, y)$는 입력 영상 $f(x, y)$과 열화 함수 $H$의 임펄스 응답 사이의 컨볼루션 연산임을 증명하였습니다. 이를 수식으로 정리하면 아래와 같습니다. 여기서 부가 노이즈항 $\eta..
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 선형 및 위치 불변 열화 함수에서는 열화 함수에 선형성(가산성과 동차성을 동시에 만족)과 위치 불변성이라는 특별한 가정을 했을 때 오염된 영상 $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), ..
안녕하세요. 지난 포스팅의 Opencv 제대로 쓰기[4].흐림 처리에서는 opencv를 이용한 2D 필터링을 할 수 있는 함수인 cv2.filter2D, 박스 필터링을 적용하는 함수인 cv2.blur, 가우시안 블러링을 적용하는 함수인 cv2.GaussianBlur 들에 대해서 알아보고 커널의 크기나 분산의 크기를 바꾸는 등 주요 파라미터들을 바꾸어보면서 어떤 결과가 나오는 지도 알아보았습니다. 이에 이어서 opencv를 이용해서 영상 샤프닝을 수행하는 방법에 대해서 알아보도록 하겠습니다. 영상 샤프닝에 대해서 더 자세히 공부하고 싶으신 분들이나 MATLAB으로 구현을 원하시는 분들은 아래에 이전에 미리 정리해두었던 링크를 참조해주시길 바랍니다. 참고로 본 포스팅에서는 언샤프 마스킹을 구현하지 않았습니다..
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 노이즈만 있을 때 복원하기(공간 필터링) : 적응 필터 구현에서는 영상의 작은 부분에 대한 특성을 고려한 "적응적, 지역적 노이즈 감쇠 필터"와 "적응적 중간값 필터"를 구현해보았습니다. 지금까지는 노이즈 $\eta(x, y)$ 및 $N(\mu, \nu)$에 대해서만 고려했지만 오늘부터는 열화 함수 $h(x, y)$ 및 $H(\mu, \nu)$까지 적용된 오염된 영상을 복원해보도록 하겠습니다. 그 전에 저희는 추정할 열화 함수에 대한 가정과 가정된 열화 함수 $H(\mu, \nu)$에 대한 성질도 확인해보도록 하겠습니다. 저희는 영상 열화의 과정을 아래의 그림과 수식을 이용해서 표현하기로 약속하였습니다. $$g(x, y) = H\left[f(x, y)\ri..
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 주파수 도메인 필터링에 의한 노이즈 감소에 대해서 알아보았습니다. 그런데 이전에 공간 필터링에 대해서 구현할 때 평균 필터와 순서-통계 필터만 구현하고 적응 필터링은 구현하지 않았습니다. 오늘은 적응 필터링을 구현해보도록 하겠습니다. 적응 필터링의 전체 코드는 아래의 링크를 참고해주시길 바랍니다. 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..
안녕하세요. 지난 포스팅의 Opencv 제대로 쓰기[3].외부 카메라 동영상 스크린샷 저장하기에서는 웹캠을 이용해서 핸드폰으로 입력받은 동영상에서 원하는 시점마다 스크린샷을 저장하는 프로그램을 구현해보았습니다. 오늘부터는 본격적으로 영상 처리와 관련된 이야기를 해보려고 합니다. 오늘은 가장 간단한 흐림 처리와 관련된 함수들을 알아보도록 하겠습니다. 기본적인 내용은 아래의 링크에 정리를 해두었으니 코드를 보시기 전에 미리 보고 오시면 더 쉽게 이해할 수 있습니다. 디지털 영상 처리 - 스무딩 공간 필터(Smoothing Spatial Filter) 안녕하세요. 지난 포스팅에서는 디지털 영상처리 - 공간 필터링의 기초에 대해서 알아보았습니다. 이때, 공간 필터링은 결국 영상보다 훨씬 작은 크기의 윈도우 또는..
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 노이즈만 있을 때의 복원(공간 필터링) : 평균 필터와 순서-통계 필터 구현에 대해서 알아보았습니다. 실제 MATLAB으로도 구현을 해보고 각 노이즈별로 어떤 공간 필터링이 효과가 있는 지 까지 분석을 진행하였습니다. 지금까지는 영상 공간에서 수행하는 필터링이였다면 이번에는 주파수 공간에서 수행하는 필터링에 대해서 알아보도록 하겠습니다. 기본적으로 저희가 이전에 알아보았던 공간 필터링과 큰 차이가 없기 때문에 혹시 아직 보시지 않았다면 제가 이전에 미리 정리해놓은 주파수 공간 필터링과 관련된 내용을 먼저 숙지하고 오신 뒤에 보시는 것을 추천드립니다. 1. 노치 필터(Notch Filter) 이 부분은 기본적으로 제가 미리 설명드린 아래의 링크를 보시면 쉽게..