일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
- 컴퓨터비전
- 자바
- CSS
- 정수와유리수
- 데이터분석
- 코딩테스트
- 머신러닝
- JSP/Servlet
- 데이터베이스
- 파이썬
- 중학1-1
- SQL
- 혼공머신
- 파이썬라이브러리
- 컴퓨터구조
- pandas
- numpy/pandas
- 정보처리기사실기
- C++
- 텍스트마이닝
- CNN
- 운영체제
- 중학수학
- 정보처리기사필기
- 데이터입출력구현
- 자바 실습
- 연습문제
- html/css
- 딥러닝
- 영어공부
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
비전 에이전트 7 - 연습문제 풀기 1 : 문제 1~2번 본문
새벽에만 컴퓨터 비전 공부를 하고 아침에는 다른 공부를 하느라 하지 못했다. 이제 오후에 3시간 정도 공부를 해볼 생각이다. 연습문제는 2시간 만에 풀어보고 나머지 한 시간은 7단원 진도를 나가봐야지.
연습문제 풀기
문제 1번
프로그램 6-1은 삑 소리만 낼 수 있다. winsound 모듈이 제공하는 여러 가지 소리를 낼 수 있게 메뉴를 확장하시오.
▶ 힌트 : winsound.PlaySound 함수를 이용한다.
문제 풀기
winsound.PlaySound를 사용하면 더 다양한 소리를 재생할 수 있다. winsound.SND_ALIAS 옵션을 사용하여 시스템 기본 소리를 호출하거나, 파일 경로를 지정해 특정 음원을 재생할 수 있다. 아래 코드는 버튼을 추가해 다양한 소리를 재생하도록 확장한 예시이다.
이렇게 다양한 소리를 재생해보았다. 소리는 녹화할 수 없어 이미지만 올려본다. 근데 별표 소리와 질문 소리는 같았다.
문제 2번
프로그램 6-2에 <여러 프레임 잡기>라는 버튼을 추가하시오. 이 버튼은 프로그램 2-5처럼 c를 누를 때마다 프레임을 획득하여 이어 붙이는 기능을 한다.
프로그램 2-5
이런 식으로 c를 누르면 프레임을 리스트에 추가하는 코드이다.
문제 풀기
프레임 잡기를 하니 이렇게 지금 출력하고 있는 영상이 이미지로 캡처되었다. 하지만 이 코드로는 여러 프레임 잡기를 눌러도 이어 붙이기는 되지 않고 하나의 이미지만 볼 수 있었다. 코드를 수정해야 할 것 같다.
지금 이 코드는 단순히 프레임을 하나씩 저장하는 기능만 하고 있다. 추가된 프레임은 이처럼 문구가 출력된다.
- 여러 프레임 잡기 버튼 추가
- <여러 프레임 잡기> 버튼(multiCaptureButton)을 추가하여 프레임을 여러 장 수집할 수 있도록 했다.
- multiCaptureFunction 함수
- multiCaptureFunction 함수에서는 c 키를 누를 때마다 프레임을 self.capturedFrames 리스트에 추가하며, q 키를 눌러 수집을 종료할 수 있다.
- 수집한 모든 프레임은 np.hstack을 사용하여 가로로 이어 붙여 한 이미지로 표시된다.
- 저장 함수에서 프레임 확인
- saveFunction에서 self.stackedFrames가 존재할 경우에는 이어 붙인 프레임을 저장하고, 아니면 단일 캡처된 프레임을 저장하도록 했다.
코드 다시 수정하기
이 코드는 <프레임 잡기> 버튼과 <여러 프레임 잡기> 버튼을 함께 사용할 수 있도록 수정한 전체 코드이다. captureFunction을 수정하여 <프레임 잡기> 버튼을 눌렀을 때마다 프레임이 capturedFrames 리스트에 추가되도록 하였으며, 이 리스트는 <여러 프레임 잡기> 버튼에서도 함께 사용된다.
수정 사항
- self.capturedFrames 리스트 : <프레임 잡기>와 <여러 프레임 잡기>에서 공통으로 사용하는 리스트로, 각 함수가 호출될 때마다 프레임이 이 리스트에 추가된다.
- captureFunction 수정 : <프레임 잡기> 버튼을 눌러서 단일 프레임을 캡처할 때마다, 이전 프레임은 유지되고 새로운 프레임이 리스트에 추가된다. 이어 붙인 프레임들을 Stacked Captured Frames 창에서 볼 수 있다.
- multiCaptureFunction 기능 개선 : <여러 프레임 잡기>를 누르고 c 키를 누를 때마다 여러 프레임이 capturedFrames 리스트에 추가되고, q 키를 누르면 이어 붙여진 프레임이 표시된다.
- 저장 기능 : saveFunction에서 여러 프레임을 이어 붙인 결과(self.stackedFrames)나 단일 프레임(self.capturedFrame)을 선택적으로 저장한다.
이번에는 이렇게 여러 장이 연결되어 캡처가 잘 되었다.
학습을 마치고
1시간 동안 연습문제 두 문제를 풀어보았다. 문제가 조금 어려웠지만 그래도 풀만 했다. 이번 단원의 연습문제는 총 6문제인데 모두 이처럼 코드를 수정해서 고치는 문제들이다. 뒤쪽으로 갈수록 문제가 점점 어려워진다.
그래도 풀고 나면 배우는 것들이 많다. 다음 문제도 이어서 풀어보겠다.
'인공지능 > 컴퓨터 비전' 카테고리의 다른 글
비전 에이전트 9 - 연습문제 풀기 3 : 문제 5~6번 (2) | 2024.11.12 |
---|---|
비전 에이전트 8 - 연습문제 풀기 2 : 문제 3~4번 (1) | 2024.11.12 |
비전 에이전트 6 - [비전 에이전트 4] 특수 효과 2 : 비디오 특수 효과 (0) | 2024.11.12 |
비전 에이전트 5 - [비전 에이전트 4] 특수 효과 1 : 특수 효과의 원리와 정지 영상의 특수 효과 (0) | 2024.11.12 |
비전 에이전트 4 - [비전 에이전트 3] 파노라마 영상 제작 (0) | 2024.11.12 |