반응형

Computer Vision/Implement 9

Hough transform (python 구현)

Hough transform 머신비전, 영상처리 분야의 Hough Transform에 대해 알아보겠습니다. 1. 개요 Hough Transform은 Edge 영상에서 Edge 중 특정한 모양(직선, 원, 타원)을 찾아내는 알고리즘입니다. 이번 글은 직선에 대해서만 다루겠습니다. 핵심 원리는 Hough Space로 변환을 하여, 교차점으로부터 공통된 직선을 찾아낸는 것입니다. https://nabinsharma.wordpress.com/2012/12/26/linear-hough-transform-using-python/ Linear Hough Transform Using Python In this post I will explain the Hough transform for line detection. I..

Convolution theorem in Fourier transform (python)

Convolution theorem in Fourier transform 머신비전, 영상처리 분야의 Convolution theorem에 대해 알아보겠습니다. 1. Overview Convoluttion Theorem은 다음과 같습니다. 핵심은 이미지와 필터에 대한 covolution의 결과와 이미지와 필터를 FFT를 한 후, element-wise product을 수행 후 inverse FFT를 수행하면 결과가 같다는 것입니다. http://www.cs.virginia.edu/~vicente/vision/slides/lecture06.pdf 이러한 결과는 아래와 같이 활용가능합니다. covolution 결과는 연산에 시간이 오래 걸리기 때문에, FFT를 이용하여 빠르게 같은 결과를 얻을 수 있습니다. ..

Frequency domain filtering (python)

Frequency domain filtering 머신비전, 영상처리 분야의 Frequency domain filtering에 대해 알아보겠습니다. 이번에는 numpy 라이브러리의 FFT (Fast Fourier Transform)을 이용하였습니다. 1. 절차 이미지에 대해서, Frequecy domain filtering의 절차는 아래와 같이 진행됩니다. https://pt.slideshare.net/ASHI14march/enhancement-in-frequency-domain/3 Enhancement in frequency domain Slide 3 of 42 of Enhancement in frequency domain www.slideshare.net 2. Python 구현 사용한 라이브리러는 다음..

Edge detection (python 구현)

Edge detection 머신비전, 영상처리 분야의 Edge detection, 윤곽선 검출에 대해 알아보겠습니다. 0. Edge 만화에서 물체를 선(Edge)으로 표현하여 사람들에게 정보를 전달하는 것과 같이, 이미지 영상에서도 Edge는 중요한 역할을 합니다. 영상에서 Edge는 밝기가 갑자기 변한다는 점을 이용하여 찾아냅니다. 이상적인 경우에는, 물체의 경계선과 같은 부분을 알아내어 데이터의 양을 줄일 수 있으며, 이후의 일을 간단화할 수 있습니다. Sonka, Milan, Vaclav Hlavac, and Roger Boyle. Image processing, analysis, and machine vision. 4th ed. Cengage Learning, 2014. p135. 1. Rober..

Median filtering (python 구현)

Median filtering 머신비전, 영상처리 분야의 Median filtering에 대해 알아보겠습니다. 0. Overview Median filtering은 window(filter)가 이미지를 지나가면서 Median값(중간값)을 새로운 픽셀 값을 return하며 수정된 이미지를 갖습니다. Median filtering은 이미지의 노이즈를 없애는데 사용됩니다. 1. python 구현 간단한 알고리즘이므로 바로 구현해보겠습니다. 사용한 라이브러리입니다. 입력으로 image와 filter size와 stride(filter가 한 번에 몇 pixel 움직이는지)를 주면 result를 return합니다. 원본 이미지에 노이즈가 포함되어 있었을 때와 결과를 비교하여 필터 사이즈가 커질수록 노이즈는 많이 없..

Histogram equalization (python 구현)

Histogram equalization 머신비전, 영상처리 분야의 Histogram equalization 알고리즘에 대해 알아보겠습니다. 0. Overview Historgram equalization은 이전 글인 contrast stretching과 비슷하게 명암대비를 변경하여 이미지를 더욱 육안으로 확인하기 쉽도록 합니다. Histogram equalization의 경우에는 intensity가 집중되어 있는 곳을 stretching 하고, 반대로, intensity가 집중되지 않은 곳은 압축시켜 최종적으로, histogram을 equalization 하게 만듭니다. [출처] en.wikipedia.org/wiki/Histogram_equalization 1. 원리 아래의 그림과 같이 [p_0, p..

Contrast stretching (python 구현)

Contrast stretching 머신비전, 영상처리 분야의 Contrast stretching 알고리즘에 대해 알아보겠습니다. 0. Overview Contrast stretching은 말 그대로 명암대비를 스트레칭해주는 것입니다. 이미지에서 특정한 밝기 값들이 모여있으면 유관으로 판별하기 쉽지 않습니다. 그래서 특정 부분의 명암 영역을 rebalance 하여 이미지가 분명하게 보일 수 있게 하는 것이 목표입니다. 위의 첫 번째 그림은 이미지에 대해서 x축은 밝기 값인 히스토그램입니다. 그림과 같이 특정 영역(100~255)을 두 번째 그림처럼 0~255 영역으로 stretching 해주면 됩니다. 1. python 구현 프로그램에 사용한 라이브러리입니다. 이미지와 관심 영역에 대한 파라미터를 넣어주..

Distance transform (python 구현)

Distance transform 머신비전, 영상처리 분야에서 Distance transform 알고리즘에 대해 알아보겠습니다. 0.Overview Distance transform은 아래와 같이 다양하게 불립니다. the distance function, chamfering algorithm or chamfering Distnace transform은 아래의 그림들과 같이 바이너리 이미지의 subset에 대해서 각 픽셀이 어느 정도 떨어져 있는지를 알려줍니다. 아래 그림의 binary image의 subset은 0입니다. 따라서 변환 결과를 보면, subset이 아닌 곳(binary image에서 1이었던 곳)이 바로 subset에 대해 어느 정도 떨어져 있는지 알려주는 것입니다. [출처] https:..

Connected-component labeling (python 구현)

Connected-component labeling 머신비전, 영상처리 분야에서 Connected-component labeling 알고리즘에 대해 알아보겠습니다. 0. Overview Connected-component labeling은 아래와 같이 여러 가지로 불립니다. Connected-component labeling (CCL), connected-component analysis (CCA), blob extraction, region labeling, blob discovery, region extraction [출처] en.wikipedia.org/wiki/Connected-component_labeling Connected-component labeling은 아래의 그림처럼 기존의 바이너리 ..

반응형