라즈베리파이 카메라 모듈 사용법

2018. 12. 17. 22:56·Development/라즈베리파이
반응형

                                                                                                                                                         

                                                                                                                                                                                                                   

                                                                                                                                                         

                                                                                                                                                                                                             

                                                                                                                                                                                                          

라즈베리파이 카메라 모듈을 키는 명령어는
$ raspistill
 
라즈베리파이 비디오 모듈을 키는 명령어는
$ raspivid
 
원격 제어를 통해 라즈베리파이를 디스플레이하면,
라즈베리파이 카메라 모듈을 켰을 때 들어오는 화면이 뜨지를 않는다.
 
동영상도 마찬가지다.5
 
http://statkclee.github.io/raspberry-pi/rpi-picam.html
Menu -> Programming -> Thonny Python IDE
camera.py로 저장
 
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera = PiCamera() 명령어를 통해서 camera 객체를 생성한다. camera 객체를 조작해서 설정을 조정할 수 있다.
여기까지는 기본적으로 카메라를 쓸 수 있게하는 부분
camera.start_preview()
sleep(10)
camera.stop_preview()
저장 후, F5를 눌러 실행
 
위의 코드는 카메라를 그냥 켜서 미리보기 기능만 되도록 하는 것.
 
모니터를HDMI로 연결하니,노트북에는 안뜨고 모니터에는 뜬다.독특한 현상이다.
아무래도 카메라 아웃풋이 HDMI로만 이루어지게 되어 있는 것 같다.
 
 
 
카메라 미리보기 기능은 라즈베리파이가 모니터에 직접 연결될 때만 동작된다.원격연결(SSH, VNC)된 경우 카메라 미리보기 기능이 작동되지 않는다.
라고 나와있음(http://statkclee.github.io/raspberry-pi/rpi-picam.html
카메라 모듈에 대한 가장 일반적인 사용법은 정지화면 사진을 찍는 것이다.
•  sleep 시간을 줄이도록 코드를 수정하고 camera.picture() 행을 추가한다:
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()
사진을 캡쳐하기 전에 적어도2초 정도 준비 시간을 두는 것이 중요한데,이유는 센서에게 조명을 준비할 시간을 제공하기 위해서다.
5장의 사진을 찍게 하는 코드
camera.start_preview()
for i in range(5):
   sleep(5)
   camera.capture('/home/pi/Desktop/image%s.jpg' % i)
camera.stop_preview()
동영상 촬영
정지화면 사진을 찍는데 카메라를 사용했으니,동영상 비디오 녹화로 옮겨보자.
1.           코드를 수정해서 capture()를 start_recording(), stop_recording() 함수로 교체한다.
camera.start_preview()
camera.start_recording('/home/pi/video.h264')
sleep(10)
camera.stop_recording()
camera.stop_preview()
•  상기 파이썬 코드를 실행시키면, 10초 동안 동영상을 녹화하고 나서 미리보기 기능이 닫힌다.
•  동영상을 재생시키려면,상단 작업막대에서 검은색 모니터 아이콘을 클릭해서 터미널 윈도우를 연다.
 
 
 
•  다음 명령어를 입력하고 엔터 키를 눌러 동영상을 재생시킨다.
omxplayer video.h264
 
 
 
•  촬영된 동영상이 재생된다. omxplayer 전송 프레임률이 빠르게 설정되어 있어서 촬영된 것보다 실제로 빠르게 재생된다.
라즈베리파이 카메라 모듈에서 허용되는 최소한의 해상도는64 by 64라고 함
이게 픽셀 정보인가??
MNIST를28 by 28이라고 하는 거하고 똑같은 의미인가?
해상도 조절하는 코드
camera.resolution = (2592, 1944) #(2592, 1944)가 최대 해상도. (64, 64)가 최소한의 해상도
camera.framerate = 15
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/max.jpg')
camera.stop_preview()
The following example shows that certain properties can be adjusted “live” while a preview is running. In this case, the brightness is increased steadily during display:
 
 
 
The next example demonstrates setting the camera resolution (this can only be done when the camera is not recording) to 640x480, then starting a preview and a recording to a disk file:
 
 
 
 
 
 
이렇게 하면,하나의 파일당500kb내외의 크기를 가짐.
픽셀을 어느 정도의 크기로 할지는 박사님과 상의해야 확실히 알 것 같음.
캡쳐링 한RGB형태의 이미지를numpy array형태로 표현 가능
 
 
 
print(stream.array)를 통해 배열 내부의 구체적인 값 출력 가능
동영상 찍는 동안에 캡쳐 뜨는 코드
 
 
 
카메라를 위한 모든 가이드라인은 해당 사이트를 참고한다.

http://picamera.readthedocs.io/en/release-1.9/
반응형
저작자표시 비영리 변경금지 (새창열림)

'Development > 라즈베리파이' 카테고리의 다른 글

라즈베리파이 인터넷 연결  (0) 2018.12.20
라즈베리파이 카메라-사람 간 거리 인식 프로젝트 정리  (0) 2018.12.17
라즈베리파이에서 맥북으로 원격접속  (1) 2018.12.17
라즈베리파이에 텐서플로우 설치하기  (0) 2018.12.17
라즈베리파이 카메라 설정  (0) 2018.12.17
'Development/라즈베리파이' 카테고리의 다른 글
  • 라즈베리파이 인터넷 연결
  • 라즈베리파이 카메라-사람 간 거리 인식 프로젝트 정리
  • 라즈베리파이에서 맥북으로 원격접속
  • 라즈베리파이에 텐서플로우 설치하기
doh.k
doh.k
  • doh.k
    DOHk's DevLog
    doh.k
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DailyLog
      • TIL
      • Project
        • Development
        • Artificial Intelligence
      • Development
        • Database
        • WEB
        • CSE
        • javascript
        • Algorithms
        • Linux
        • Network
        • Python
        • 라즈베리파이
        • Apple
      • Research
        • 논문
        • 금융,블록체인
        • Time-Series
        • 수학
        • 미적분학
        • 화학
      • Artificial Intelligence
        • Machine Learning
        • Deep Learning
        • TensorFlow
        • ReinforcementLearning
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터베이스
    스프링
    Spring
    기계학습
    아이패드
    gradient descent
    자바스크립트
    pycharm
    딥러닝
    ssh
    경사하강법
    라즈베리파이
    Machine Learning
    리눅스
    파이썬
    Python
    Linux
    Network
    JavaScript
    머신러닝
    Algorithms
    알고리즘
    Mac
    네트워크
    블록체인
    gradient
    데이터
    가상화폐
    자료구조
    맥북
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
doh.k
라즈베리파이 카메라 모듈 사용법
상단으로

티스토리툴바