차선인식, 신호판별 등 자율주행에 쓰이는 카메라는 Logitech 제품으로 윈도우에서 Logitech Capture 프로그램으로 녹화를 하고있었다.

근데 팀장 선배가 혹시 Logitech Capture 프로그램에서 자체적으로 보정을 하고 있지는 않을까?!라는 의문을 제기해서 Ubuntu에서

카메라에 찍히는 영상을 바로 저장하는 코드를 만들어봤다. (이러다가 Opencv 고수될듯..아직 멀었지만ㅋㅋㅋ)

 

내가 처음 짰던 코드

찾아본 블로그들에서는 맨날 gray로 바꾸고 색 반전을 해서 그냥 비디오만 캡쳐하는 코드만 가져와서 돌려봤는데, 파일은 저장되지만 영상이 열리지 않았다ㅜㅅㅜ

VideoWriter() 함수의 파라미터를 좀 더 살펴볼걸 그랬다.

코드와 문제점을 Github Issue에 올렸더니, 선배가 조금 손봐주셨다ㅏ

 

바뀐점은 VideoWriter의 파라미터를 get함수를 사용해서 우리가 사용하는 캠에 맞는 값으로 변경 후 

if cv2.waitKey(1) == ord('q')로 바꿔줬다. 

&0xFF 부분에서 오류가 났다고 한다ㅜㅜ

 

#오류난 이유#

cv2.waitKey(1) 은 바로 전에 입력된 key를 반환한다. 입력된 key가 없으면 -1을 반환

&0xFF 는 키의 단일바이트 표시를 유지하기 위한 이진 AND 작업이라고 한다.

그니까 q키가 입력되기 전까지 계속 while문을 돌려야하는건데, 처음 짰던 코드에는 1이 아닌 0이 들어가있다...대체 왜 들어갔지?ㅋㅋㅋㅋ

저 코드들은 여러 코드들 조합 보면서 끄적끄적 적었던거여서 출처가 정확히 기억이 안난다ㅜㅅㅜ

 

 

 

결국 저 코드로 USB CAM 영상을 촬영했는데 결과는!!(뚜둥!!)

ㄸㄹㄹ...

 

+ Recent posts