Back

Dealing With Camera on OpenCV

openCV 카메라 처리

카메라 처리

# cv2.VideoCapture(카메라번호)
cap = cv2.VideoCapture(0)

cap.get(cv2.CAP_PROP_FRAME_WIDTH)
cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 240)

if cap.isOpened():
		while True:
				ret, img = cap.read() # 다음 프레임 읽기
				if ret:
						cv2.imshow('camera', img)
						if cv2.waitKey(1) != -1: # 1ms 동안 키 입력 대기
								cv2.imwrite('snapshot.jpg', img) # 키 입력 있으면 프레임 저장
								break
						else:
								print('프레임 없음')
								break
else:
		print("카메라 오픈 오류")

cap.release()
cv2.destroyAllWindows()

비디오 일부분 레코드

cap = cv2.VideoCapture(0)

if cap.isOpened:
		file_path = './record_fps.avi'

		# fps = 15.0
		fps = cap.get(cv2.CAP_PROP_FPS)
		print('fps=', fps)

		fourcc = cv2.VideoWriter_fourcc(*'DIVX') # 인코딩 포맷

		width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
		height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

		size = (int(width), int(height))
		
		# cv2.VideoWriter(저장될_녹화파일_경로, 인코딩포맷, FPS, (가로길이, 세로길이))
		out = cv2.VideoWriter(file_path, fourcc, fps, size) # VideoWriter 객체 생성

		while True:
				ret, frame = cap.read()
				if ret:
						cv2.imshow('camera-recording', frame)
						out.write(frame)
						if cv2.waitKey(int(1000/fps) != -1 :
								break
				else:
						print('no frame')
						break

		out.release()
else:
		print('열 수 없습니다')

cap.release()
cv2.destroyAllWindows()
Built with Hugo
Theme Stack designed by Jimmy