반응형

OpenCV/OpenCV 강좌 8

OpenCV 강좌 7 - 마우스 이벤트 🖱️

🖐 안녕하세요~ 오랜만에 OpenCV 강좌를 포스팅하네요...(😢요즘 너무 바빠서,,) 이번 강좌는 저번 강좌 키보드 이벤트에 이어서 마우스 이벤트에 관하여 강좌를 시작하겠습니다. OpenCV는 마우스 이벤트를 처리하기 위해 cv2.setMouseCallback(window name, callback, param) 를 사용합니다. 🙄 앵? 우리가 평소에 사용하던 함수처럼 보이지가 않네요.... 보통은 함수(윈도우이름,특성)을 입력하는데 onMouse? 가 뭘까요?? 일단 코드를 통해 분석해 봅시다. import cv2 import numpy as np def onMouse(event,x,y,flags,param): if event==cv2.EVENT_LBUTTONDOWN: # 마우스 왼쪽 버튼 클릭 if..

OpenCV 강좌 6 - 키보드 이벤트

이전 강좌에서 cv2.waitkey() 함수를 통하여 키보드에서 입력된 값을 수신할 수 있다고 배웠었다. 이번 강좌에서는 키보드 이벤트에 관하여 좀 더 자세히 설명하고 그에 따른 예제를 통해 확실히 배워보자. 키보드 이벤트 함수 설명 cv2.waitKey(delay) 키보드로부터 입력된 1byte의 키값을 받는다. cv2.waitKeyEx(delay) 키보드로부터 입력된 2byte의 키값을 받는다. 1바이트? 차이로 무슨일이 가능해질까? cv2.waitKey()를 이용하여 대부분의 키값을 얻을 수 있지만 1byte의 용량 제한으로 인해 받지 못하는 키값도 발생한다. 키(F1, F2, …, F12), ↑, ↓, ←, → 화살표 키 등 특수 키들이 대표적이다. 특수키 cv2.waitKeyEx() 반환값 특수..

OpenCV 강좌 5 - 문자를 출력하자~

이번 강좌에서는 CV2를 이용해 글자를 입력해 봅시다~ 함수 설명 cv2.getTextSize(text, fontFace, fontScale, thickness) -> retval, baseLine 문자열 text의 출력을 위한 크기를 retval에 반환 출력될 사각 영여의 하단으로 부터 사대적 기준선 y의 위치를 반환한다. cv2.putText(img, text, org, fontFace, fontScale, color, thickness) text(내용)을 사각형 왼쪽 아래 org(좌표)에 폰트(fonstFace), 폰트스케일(FontScale, color로 문자를 출력한다. 예제 import cv2 import numpy as np img = np.full(shape=(512,512,3),fill_..

OpenCV 강좌 4 - 도형을 그리자.

이번 강좌에서는 OpenCV를 활용해 그림을 그려보도록 하자. "도형을 왜 그려요?" 위와 같은 의문이 들 수도 있다. 백문불여일견[ 百聞不如一見 ] 이라 하던가. 다음 그림을 보고 아! 하고 무릎을 탁 치며 "도형을 그려 어디다 사용하려고!!"라고 생각한 이전의 나를 반성해보도록 하자. 이 그림을 보고 왜 우리가 도형을 그리는 법을 배워야 하는지 대부분이 알 것이다. 우리가 실제 코드를 작성하고 그 결과를 확인하기 위한 가장 좋은 방법은 영상위에 그 결과를 시각화하는 것이다. 단순히 x, y 좌표값을 주면 솔직히 코드가 제대로 작동하는지 잘 모른다. 단순한 도형 그리기 라도 기본기라고 생각하고 제대로 배워보자. 각종 도형 그리기 함수 함수 설명 cv2.line(img, pt1, pt2, color, t..

OpenCV2 강좌 3 - 비디오 프레임 캡처 및 표시

저번 강의에서는 이미지 파일을 입출력을 배웠습니다. 이번 시간에는 동영상의 입출력에 대해 배워볼까 합니다. 비디오란? 비디오를 다루려면 비디오에 대한 구성을 알고 있어야 합니다. 비디오를 간단히 생각하면 이전에 배운 여러 장의 이미지 파일이 순차적으로 재생되면서 잔상효과로 인하여 마치 실제 움직이는 것처럼 보입니다. 비디오 캡처는 아날로그 비디오를 디지털 비디오로 변환하는 과정입니다. 프레임(frame, 동영상을 구성하는 사진 1장 단위)은 비디오에서 캡처한 한 장의 영상입니다. 비디오는 이러한 프레임으로 구성된 연속 시퀀스(Sequence)입니다. 비디오 캡처와 관련된 함수 함수 설명 출력 cv2,VideoCapture(device) 웹캠 같은 장치에서 비디오를 불러온다. 카메라가 한개이면 0, 두 개..

OpenCV 강좌 2 - 영상 입출력과 Display

이전까지 OpenCV를 설치하는 과정까지 진행하였습니다. 오늘은 OpenCV를 활용하여 이미지, 동영상을 불러오고 컴퓨터에서 화면을 띄우는 과정까지 진행하도록 하겠습니다. 함수 설명 출력 cv2.imread(filename, flags) 영상파일(BMP,JPEG,PNG,TIFF 등)을 numpy.ndarray의 배열로 읽어 반환한다. retval cv2.imwrite(filename,img) numpy.ndaaray의 배열 img를 filename의 영상파일로 저장 retval cv2.namedWindow(winname,flag) winname을 갖는 윈도우를 생성한다. X cv2.imshow(winname, img) img를 winname에 표시한다. X cv2.witKey(delay) delay만큼(..

OpenCV 강좌 1 - Pycharm에서 OpenCV를 사용하자.

이제부터 본격적으로 OpenCV에 관해서 다루어 보겠습니다. Pycharm 설치에 관한 글들은 제 블로그가 아니라도 흔히 찾아보실 수 있습니다. 혹시 아직 pycharm을 설치하시지 않으신 분은 다른블로그에서 설치하고 오세요.(굳이 Pycharm이 아니라 일반 Python IDE에서 OpenCV를 사용하셔도 됩니다,) 혹시 OpenCV가 무엇인지 궁금하신 분들은 이전 포스팅 [Python/OpenCV 강좌] - OpenCV 강좌 0 - 강좌에 앞서을 참고하시면 되겠습니다. OpenCV 강좌 0 - 강좌에 앞서 오늘부터 OpenCV에 관해 공부하면서 복습 겸 블로그에 OpenCV에 관한 강좌를 올리게 되었습니다. 그래서 오늘은 OpenCV란 무엇이고, 강좌에 사용될 환경에 관해 드리겠습니다. OpenCV개..

OpenCV 강좌 0 - 강좌에 앞서

오늘부터 OpenCV에 관해 공부하면서 복습 겸 블로그에 OpenCV에 관한 강좌를 올리게 되었습니다. 그래서 오늘은 OpenCV란 무엇이고, 강좌에 사용될 환경에 관해 드리겠습니다. OpenCV개요 OpenCV(Open Source Computer Vision)는 영상처리, 컴퓨터 비전, 비디오 처리, 기계학습(흔히 인공지능이라고 알고 있는) 학습에 관한 라이브러리입니다. 위의 분야들은 사람이 눈을 통해 물체를 인지하는 것처럼 컴퓨터가 카메라를 통해 물체를 인지하는 방법에 대해 연구하는 분야입니다. 물론 OpenCV와 유사한 라이브러리도 있겠지만 제가 OpenCV를 사용하는 이유가 있습니다. OpenCV 장점 1. 오래되었다. OpenCV는 Intel에서 c언어로 개발된 IPL(Image Process..

반응형