2022年4月23日土曜日

PiCar-Xでlane detection(04) PiCameraから画像の取り込み

 今回は、手順1番目のPiCameraから画像の取り込みについてです。

1.PiCameraから画像の取り込み

2.オリジナル画像から作業領域をクロップ

3.画像をBGRからHSVへ変換

4.OpenCV – inRangeで画像を2値化

5.OpenCV – cannyによるエッジ検出

6.region of interest(注目する領域)を設定

7.OpenCV – HoughLinesPによる直線の検出


一般的にpythonからPicameraを制御するためにはpicameraパッケージを使います。

【プログラム例】

import time
import picamera

# 写真の保存場所
CAM_DIR = "/home/pi/picar-x/Picamera/"

with picamera.PiCamera() as camera:


 while True:
   try:
     camera.resolution = (640, 480)     
     camera.start_preview()
     time.sleep(2)
     filename = time.strftime("%Y%m%d%H%M%S") + ".jpg"
     save_dir_filename = CAM_DIR + filename
     camera.capture(save_dir_filename)
   except KeyboardInterrupt:
     print("Ctrl+Cで停止しました")
     break
しかしここでは、画像・動画に関する処理機能をまとめたOpenCVライブラリと、画像処理ユーティリティーのimutilsモジュールをそれぞれインストールして使いました。

pip install opencv-contrib-python
pip install imutils

【プログラム例】
import cv2
import time
from imutils.video import VideoStream
from imutils import resize

# 写真の保存場所
CAM_DIR = "/home/pi/picar-x/Picamera/"

vs = VideoStream(src=0).start()

while True:
    try:
       # ファイルの取込
       img = vs.read()
       image = resize(img, width=640)

        
       filename = time.strftime("%Y%m%d%H%M%S") + ".jpg"
       save_dir_filename = CAM_DIR + filename
       cv2.imwrite(save_dir_filename,image)

    except KeyboardInterrupt:
      print("Ctrl+Cで停止しました")
      break

0 件のコメント:

コメントを投稿