조회 수 729 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_rpi&wr_id=6


라즈베리 파이에 카메라 모듈을 설치하는 것만으로도 많은 것이 가능해집니다.

여기서 말하는 카메라 모듈은 PC에 사용하는 USB 캠이 아니라 (실제로는 비슷할 수도 있지만) 라즈베리 파이 전용으로 나온 Pi Camera 모듈입니다. 아래와 같이 라즈베리 파이 이더넷 소켓쪽에 있는 카메라용 케이블 소켓에 끼워주면 됩니다.

camera-connection

여기서는 카메라로 할 수 있는 기본적인 동작들을 Python으로 구현해 보겠습니다.

먼저 카메라를 라즈베리 파이에 연결합니다.

 

 

패키지 설치 확인 및 설정

 

먼저 라즈베리 파이의 패키지들 업데이트 한 번 하고, python-picamera 패키지를 확인합니다. 최신 이미지에는 이미 설치되어 있을겁니다.

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install python-picamera

라즈베리 파이 설정에 들어가서 카메라를 활성화 해줍니다.

  • sudo raspi-config
  • 'Enable Camera'

설정화면을 나오면 재부팅 해줍니다.

 

 

카메라 제어 (CONSOLE)

 

Console 에서 커맨드를 이용해서 카메라를 제어하는 방법입니다.

카메라 테스트를 위해 preview 이미지를 가져옵니다.

  • raspistill -v -o

Raspistill 을 이용해서 사진을 찍습니다.

  • raspistill -v -o xxx.jpg

Raspivid 를 이용하면 녹화가 가능합니다. 녹화 기본 설정이 1080p (1920×1080)​ 입니다. 5초간 비디오를 녹화해 봅니다.

  • raspivid -t 5000 -o xxx.h264

 

 

카메라 제어 (PYTHON)

 

이제 파이썬 언어를 이용해서 카메라를 제어하는 방법을 소개합니다.

Preview 이미지를 가져오는 소스는 아래와 같습니다.

  • nano camera_preview.py
#!/usr/bin/python
import time
import picamera

with picamera.PiCamera() as picam:
    picam.start_preview()
    time.sleep(10)
    picam.stop_preview()
    picam.close()

저장 후 아래 두 명령어 중 하나로 실행하시면 테스트 해볼 수 있습니다.

  • sudo python camera_preview.py
  • sudo ./camera_preview.py  (이 경우는 먼저 해당 파일에 chmod 명령어로 executable 권한을 부여해줘야 합니다.)

 

주의!!!  import picamera 부분에서 라이브러리 찾을 수 없다고 에러가 나올 수 잇습니다. 이 경우는 picamera가 제대로 설치되지 않은 경우입니다. 위 가이드대로 설치과정을 해도 인식이 안된다면 아래 명령어로 다시 설치하고 시도해보세요.

  • sudo pip install -U picamera

 

 

아래는 사진을 찍는 코드입니다.

#!/usr/bin/python
import time
import picamera
import os
path=os.getenv("HOME")+""  #adjust path for location of this program
with picamera.PiCamera() as picam:
    picam.rotation=90 #adjust as necessary
    picam.start_preview()
    time.sleep(5)
    picam.capture('pic.jpg')
    # picam.capture(path+'/photo.jpg',resize=(640,480))
    # time.sleep(2)
    picam.stop_preview()
    picam.close()

여기서는 사진을 jpg로 저장했는데 png, gif, bmp, yuv, rgb, raw 형식으로 저장도 가능합니다.

 

비디오를 녹화하는 코드입니다.

#!/usr/bin/python

import time
import picamera

with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.start_recording('video.h264')
        picam.wait_recording(20)
        picam.stop_recording()
    picam.stop_preview()
    picam.close()

주의하실 점은... 앞선 이미지 촬영과는 달린 start_recording() 이후 time.sleep() 대신 picam.wait_recording() 을 사용한다는 것입니다. 레코딩을 위해 필요한 사항들을 체크하는 역할을 합니다.

 

참고자료


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
449 LINUX vim 에디터 이쁘게 사용하기 2018.08.06 652 0
448 Pi 아두이노에 도움이 되는 전자부품들 2018.06.20 432 0
447 일반 Visual Studio Code 환경 설정 및 사용 방법 1 2018.06.01 3429 0
446 Pi 라즈베리파이 음성인식 S/W 2018.04.26 678 0
445 Pi 파이썬 코드를 이용한 파이카메라 제어 2018.04.24 777 0
» Pi 라즈베리파이 PI CAMERA 설치하기 2018.04.24 729 0
443 Python [tensorflow] 텐서플로우 문서 한글번역본 2018.03.22 563 0
442 Pi LiPo charger 리튬 배터리 충전모듈 사용법 file 2018.03.19 806 0
441 Pi Arduino Pro Mini PIN 정보 file 2018.03.18 532 0
440 일반 날씨정보 rss 2018.03.08 414 0
439 Python [tensorflow] 선형회귀 예제 2018.02.05 690 0
438 HTML5 [Javascript] Javascript Patterns 요약 secret 2018.01.16 0 0
437 HTML5 [Javascript] Promise 이해하기 2018.01.04 843 0
436 HTML5 [CSS] 선택자(Selector)의 이해 2017.12.29 2162 0
435 JAVA Timer 사용하기 - Timer, TimerTask 2017.12.23 554 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 30 Next ›
/ 30

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5