관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

컴퓨터 비전 7 - OpenCV 동영상 실습해보기 2 - 웹 캠을 사용해 영상 출력하기 본문

인공지능/컴퓨터 비전

컴퓨터 비전 7 - OpenCV 동영상 실습해보기 2 - 웹 캠을 사용해 영상 출력하기

huenuri 2024. 11. 14. 06:51

이어서 동영상 출력에 관한 실습을 진행해 보겠다. 


 

 

 

OpenCV 동영상 다뤄보기 실습 두 번째

이전에 실습했던 코드를 그대로 가져온 후 몇 가지만 수정해 주었다.

 

이전 코드에서 앞부분의 파일 경로를 지우고 0을 클릭하고 웹 캠을 연결하면 카메라가 보인다.

 

 

 

찍을 게 마땅치 않아 벽을 찍어보았다. 이제 파일명도 바꾸고 사진 캡처가 잘 되는지 확인해 보자.

 

 

 

 

 

 

 

 

코드를 실행하고 15초 정도 기다려야 영상 카메라가 작동된다. 성질 급하게 안 보인다고 끄면 안 된다. 컴퓨터 비전 수업도 사실 하나도 안 듣고 정처기 공부를 했었는데, 팀별로 사진을 찍는다고 해서 사진을 찍었던 기억이 난다.

이때까지만 해도 딱 3주 동안만 팀에 있었다. 이전에도 이후에도 난 역시 팀 없이 독립적으로 움직이는 것이 가장 내가 잘할 수 있는 환경이라는 것을 알게 되었다.

 

그런 걸 아시고 선생님이 팀에서 배제하고 개인으로 움직이도록 하셨던 것 같다. 어쨌든 지나고 나니 모든 것이 다 뜻이 있음을 느낀다. 만약 그때 팀원과 트러블이 없고 잘 지냈다면 난 팀에서 나올 생각을 못했을 것이고, 지금처럼 스스로 공부하는 기회도 별로 없었을 것이다.

이어서 다음 실습을 진행해 보겠다.


 

 

 

스티커 사진 찍고 출력하기

 

 

 

맷플로립은 한글이 진행되지 않으므로 이 서체를 설정하는 코드를 추가해 준다. 이런 식으로 4개의 사진이 나올 수 있게 코드를 작성해 준다.

 

 

 

 

 

하지만 무슨 오류가 뜬다. 오류 메시지를 보면, cv2.cvtColor 함수가 실행될 때 (-215:Assertion failed) 오류가 발생하고 있다. 이 오류는 OpenCV에서 cv2.imread가 이미지를 제대로 불러오지 못했을 때 발생하는 오류이다. cv2.imread가 None을 반환하게 되고, 그 상태에서 cv2.cvtColor를 호출하면 이 오류가 발생한다.

혹시 내가 저장하지 않은 이름을 사용해서 그런 것 같아 코드를 다음과 같이 수정했다.

 

 

 

이제 이미지 값이 제대로 출력되었다. 이 코드를 원래 코드에 붙여 넣는다.


 

 

 

 

한글 서체 설정하기

 

 

하지만 한글이 깨져서 보이고 이러한 오류가 떴다. 출력된 메시지는 "Magun Gothic" 폰트를 찾을 수 없다는 경고 메시지이다. plt.rcParams['font.family']로 지정한 폰트가 현재 시스템에 설치되어 있지 않기 때문에, matplotlib가 기본 폰트로 대체하려고 시도하면서 여러 경고 메시지가 출력된 것이다.


 

 

코드 수정해 보기

 

 

맷플로립을 임포트하니 이제 사진과 글씨가 잘 출력되었다. 그런 다음 한 장의 사진을 더 불러와 옆 공간에 만들어주었다. 그리고 그래프 수치값은 필요 없으니 지우는 기능도 추가했다.

 

 

 

 

 

네 장을 출력할 때는 코드가 길어지므로 반복문을 사용하면 된다.


 

 

네 장의 사진 출력하기

 

하지만 사진이 한 장밖에 출력되지 않았다. 코드를 보면, ax.imshow(selca)가 for 루프 밖에 위치해 있어 마지막 이미지(dog_img4.png)만 출력된다. for 루프 안에서 각 이미지가 반복적으로 imshow로 출력되도록 코드를 수정해야 할 것이다.

 

 

 

 

 

여러 번 시도 끝에 드디어 사진이 모두 출력되었다.


 

 

 

학습을 마치고

마지막에 사진 네 장 출력하는 코드는 잘 안돼서 조금 어려웠지만 그래도 이것저것 시도해 보며 많이 배울 수 있었다. 여기까지 해서 기초 이미지 실습을 진행했고 다음 포스트에서는 좀 더 심화된 내용을 다루게 될 것이다.

새벽에 이 수업을 들을까 말까 고민했는데 하길 잘했다는 생각이 든다.