본문 바로가기
공부기록

6월 28일 라즈베리파이 - 카메라연결

by project100 2023. 6. 28.

카메라를 라즈베리파이에 연결 후

 

Raspberry Pi Configuration 

sudo raspi-config

환경설정

3. Interface Options - I1 Legacy Camera - 예 - 확인

6. Advanced Options - A8 Glamor - 예 - 확인

Finish 설정종료

 

라즈베리파이 리부트 - Reboot

 

카메라 설정 확인 명령

vcgencmd get_camera

 

문구 ghkrdls 

supported=1 detected=1, libcamera interfaces=0

supported=0인 경우 설정 필요

detected=0인 경우 리부트 또는 카메라 장치 이상

 

VNC 아이콘 클릭

 

 

Options - Troubleshooting - Enable direct capture mode - ok

 

from picamera import PiCamera
import time

# 카메라 객체 생성
camera = PiCamera()

camera.start_preview(fullscreen=False, window(100,100,640,480))
time.sleep(5)
camera.stop_preview()
camerea.close()

 

gui 프로그램 만들때 계층화하여 만듦

HTML 문서 만들기와 비슷 영역 구성

 

import tkinter as tk
from picamera import PiCamera

pic_number = 0
cm = PiCamera()

def camera_start():
	cm.resolution = (640, 480)
    cm.start_preview(fullscreen=False, window=(100,100,640,480))
    
def camera_stop():
	cm.stop_preview()
    
def close_window():
	root.destroy()
    cm.stop_preview()
    cm.close()
    quit()
    
def camera_captuer():
    global pic_number
    pic_number += 1
    cm.capture(f'image_{pic_number}.jpg')
    
root = tk.Tk()
root.title('Camera GUI')
root.geometry('250x150+500+50')

frame = tk.Frame(root)
frame.pack(pady = 0, padx = 0)

btn_start = tK.Button(frame, text='Start', width=20, pady=10, padx=20, command=camera_start)
btn_stop = tK.Button(frame, text='Stop', width=20, pady=10, padx=20, command=camera_stop)
btn_capt = tK.Button(frame, text='Capture', width=20, pady=10, padx=20, command=camera_capture)

btn_start.grid(row=0, column=0, pady=3, padx=1)
btn_stop.grid(row=0, column=0, pady=3, padx=1)
btn_capt.grid(row=0, column=0, pady=3, padx=1)

root.protocol('WM_DELETE_WINDOW', close_window)
root.mainloop()

 

OpenCv 설치

sudo apt update

sudo apt install python3-opencv

 

import cv2

print(cv2.__version__)