OpenCV란 Open source Computer Vision의 약자로 영상/동영상 처리에 사용할 수 있는 오픈소스 라이브러리입니다.
이 라이브러리에는 굉장히 많은, 그리고 다양한 라이브러리들이 효율적이고 실시간 처리에 중점을 두고 설계되었기 때문에 OpenCV에서 제공되는 API를 사여 코딩하여도 괜찮은 상용 프로그램을 만들 수 있습니다.
cv.cvtColor(image, cv.COLOR_BGR2GRAY) 라는 한 줄의 코드로 컬러 이미지를 흑백이미지로 바꿀 수 있습니다.( OpenCV에서는 BGR순서로 색깔을 입력했기 떄문에 RGB2GRAY입니다. )
또는 눈에 보이지 않는 숫자도 threshold기법을 이용해 찾을 수도 있고,
아래와 같이 이미지의 노이즈도 제거할 수 있습니다.( 포토샵의 기능들이 여기서 왔다고 생각하시면 됩니다. )
깃허브에 저장하기 위해 visual studio code를 이용해 opencv를 시작하겠습니다.( 가상환경은 콘다 가상환경입니다 )
opencv에는 2개의 라이브러리가 필요합니다.
pip install opencv-python
pip install opencv-contrib-python
pip install numpy
영상처리를 할 때 꼭 필요한 numpy라이브러리도 다운받습니다.( 이미지는 행렬처리해야 속도가 빠릅니다 )
위의 노이즈를 제거하는 코드를 보여드리겠습니다.
Opencv 라이브러리는 cv2입니다.
이미지 처리하기 위해 numpy와 함께 import해줍니다.
imread()함수로 이미지를 읽어오고 , medianBlur()함수에 인자들을 넣어 이미지를 변환해줍니다.
그리고 imshow()를 이용해 원본 이미지와 변환된 이미지를 출력합니다.
waitKey()는 출력된 이미지가 바로 꺼지지 않도록 해주고(K는 대문자입니다), destroyAllWindow()는 위의 코드들이 모두 실행되었으면 출력된 창을 모두 닫아주는 코드입니다.
OpenCV의 함수에 대한것들은 구글링을 하거나 공식 홈페이지로 들어가 reference를 참조해 인자들을 확인해서 사용하면 됩니다.
'프로그래밍 > openCV' 카테고리의 다른 글
차선 검출하기 (0) | 2021.04.22 |
---|---|
허프 변환 ( Hough Transform ) (0) | 2021.04.21 |
엣지 검출하기 (feat. sobel, Laplacian, Canny) (0) | 2021.04.20 |
OpenCV를 이용해 이미지 모양 변환하기( Homography ) (0) | 2021.04.18 |