최근 openCV를 이용해서 집안 관찰용 카메라를 만드는 프로젝트를 구상하고 있습니다. 오늘은 openCV를 이용해서 컴퓨터와 연결된 카메라를 띄우는 방법에 대해 알아보겠습니다.
시작하기 전에..
아래 코드를 실행했을 때 다음과 같이 오류가 났습니다.
(interrupted by signal 11: SIGSEGV)
여러 원인이 있는듯한데, 저 같은 경우 python console에서 3.7.3 버젼을 쓰고 있는게 문제였습니다. 3.7.5 로 업그레이드해주니 잘 실행되는점 미리 말씀드립니다.
코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import cv2 cap = cv2.VideoCapture(0) # cap으로 영상을 불러옵니다. cap.set(cv2.CAP_PROP_FRAME_WIDTH, 500) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 300) # 영상 프레임 사이즈를 결정합니다. if cap.isOpened(): # 만약 카메라가 실행되고 있다면, ret, a = cap.read() # ret: True False value입니다. # a: 영상 프레임을 읽어옵니다. while ret: # 제대로 카메라를 불러왔다면~ 반복문을 실행합니다. ret, a = cap.read() cv2.imshow("camera", a) # 이미지를 보여주는 방식과 같습니다. if cv2.waitKey(1) & 0xFF == 27: break # 종료 커맨드. cap.release() cv2.destroyAllWindows() | cs |
실행하면 다음과 같이 카메라가 실행된 것을 볼 수 있습니다.
별다른 종료 커맨드가 입력되지 않는 이상, 계속 카메라 프레임을 읽고, 동일한 윈도우에 표시해주는 방식입니다.
프레임을 하나씩 읽어서 표시하는 방식을 이용해서, 다음 포스팅에서는 움직임, 즉 모션을 인식하는 방법에 대해 알아보겠습니다.
'Developer > OpenCV' 카테고리의 다른 글
[OpenCV] Blur을 통한 이미지 노이즈 제거 (컨볼루션, 가우시안, 미디언) (1) | 2020.08.16 |
---|---|
[OpenCV] 움직임을 인식하는 영상 (motion detecting) (4) | 2020.08.15 |
[OpenCV] 비트와이즈 연산 (Bitwise) (0) | 2020.04.09 |
[OpenCV] 알파블렌딩을 이용한 이미지 합성 (0) | 2020.04.08 |
[OpenCV] 이미지에서 관심영역 설정하기 (좌표 입력, 마우스 드래그) (6) | 2020.02.03 |
댓글