・2018/09/01
OpenCVから Raspberry Pi専用のカメラモジュール RaspiCamを使える様にする方法
(ラズパイの専用カメラモジュール RaspiCamを OpenCVで使う方法、picamera、raspicam_cv)
Tags: [Raspberry Pi], [電子工作]
● OpenCVから Raspberry Pi専用のカメラモジュール RaspiCamを使える様にする方法
画像処理ライブラリの定番の OpenCVはカメラデバイスからの画像入力にも対応していますが、そのままでは Raspberry Pi専用のカメラモジュール RaspiCamに対応していません。
ラズパイの専用カメラモジュール RaspiCamを OpenCVで使う方法を説明します。
●ラズパイの専用カメラモジュール RaspiCamを OpenCVで使う方法
下記の 2つの方法が有ります。
・ picamera - OpenCVを Python言語で使う場合
・ raspicam_cv - OpenCVを C言語、C++言語で使う場合
●ラズパイ専用カメラのインストール方法(カメラモジュールの接続方法)
下記にまとめました。
・2016/05/14
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法
・2017/03/23
Raspberry Pi Zeroに専用カメラモジュール RaspiCam Zeroを接続する方法
ラズパイゼロに専用カメラモジュール を接続して Raspbianで写真の静止画撮影や動画を録画する方法
# コマンドラインでラズパイのカメラを有効にする方法(最後の数字は 0でカメラ有効、1でカメラ無効)
sudo raspi-config nonint do_camera 0
# カメラを有効にすると自動的に gpu_memが 128になります
cat /boot/config.txt | grep gpu_mem
# gpu_mem=128
● picamera - OpenCVを Python言語で使う場合
Python言語の OpenCVで ラズパイの専用カメラモジュール RaspiCamを使う場合。
waveform80/picamera
picamera
This package provides a pure Python interface to the Raspberry Pi camera module for Python 2.7 (or above) or Python 3.2 (or above).
● picameraのインストール方法
Raspbian installation
コマンドラインで下記を実行して、ImportError: No module named picameraのエラーが出なければ OK。
※ Raspbian OS Debian Stretch 2018-06-27版では最初から入っていました。
# Python 2.7
python -c "import picamera"
# Python 3
python3 -c "import picamera"
# お決まりの sudo apt-get updateで最新状態に更新する
sudo apt-get update
# picameraを apt-get installでインストールする
# Raspbian installation
sudo apt-get -y install python-picamera python3-picamera
● picameraの動作確認
picamera - Basic Recipes
● Capturing to a file
capture.py
from time import sleep
from picamera import PiCamera
camera = PiCamera()
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('capture.jpg')
●Capturing to a stream
stream.py
from io import BytesIO
from time import sleep
from picamera import PiCamera
# Create an in-memory stream
my_stream = BytesIO()
camera = PiCamera()
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture(my_stream, 'jpeg')
capture2.py
from time import sleep
from picamera import PiCamera
# Explicitly open a new file called my_image.jpg
my_file = open('capture2.jpg', 'wb')
camera = PiCamera()
camera.start_preview()
sleep(2)
camera.capture(my_file)
# At this point my_file.flush() has been called, but the file has
# not yet been closed
my_file.close()
● Capturing to a PIL Image
PIL = Python Imaging Library
# Pillowで必要なのでインストールする
sudo apt-get install libjpeg-dev
# Python 2.7
sudo pip install Pillow
# Python 3
sudo pip3 install Pillow
pil.py
from io import BytesIO
from time import sleep
from picamera import PiCamera
from PIL import Image
# Create the in-memory stream
stream = BytesIO()
camera = PiCamera()
camera.start_preview()
sleep(2)
camera.capture(stream, format='jpeg')
# "Rewind" the stream to the beginning so we can read its content
stream.seek(0)
image = Image.open(stream)
● picameraの pull request
picameraの pull request
下記の内容はマージして取り込んでも良いのでは?>本家
Update mmalobj.py
#501 opened Aug 31, 2018 by wilcovantoorn
Remove unused io import
#482 opened Apr 13, 2018 by bennuttall
enable MMALPythonSource to send MJPEG and H264 streams
#460 opened Jan 16, 2018 by barney-NG
Automatic MP4 muxing without external tools
#441 opened Sep 12, 2017 by LizardM4
Update api_mmalobj.rst
#394 opened Mar 27, 2017 by MoiCJarod
Corrected 4x4 binning for v1 camera to 2x2
#388 opened Mar 13, 2017 by kozuch
● raspicam_cv - OpenCVを C言語、C++言語で使う場合
C言語、C++言語の OpenCVで ラズパイの専用カメラモジュール RaspiCamを使う場合。
robidouille/raspicam_cv
robidouille/robidouille/pulls
・ Add rotate-option and flip-option.
・ Changed some headers in raspicam_cv for OpenCV v3.0.0
以下のブランチに取り込みました。
● master
Add rotate-option and flip-option
FREEWING-JP/robidouille/raspicam_cv/
● feature/support_OpenCV_v3
Changed some headers in raspicam_cv for OpenCV v3.0.0
feature/support_OpenCV_v3/raspicam_cv/
● raspicam_cvのインストール方法
下記手順で raspicam_cvをビルドします。
# お決まりの sudo apt-get updateで最新状態に更新する
sudo apt-get update
###Prerequisites### First make sure you have cmake and git installed:
sudo apt-get -y install cmake git
# You might also need gcc/g++ in case it's not already installed, along with some other libraries:
sudo apt-get -y install gcc g++ libx11-dev libxt-dev libxext-dev libgraphicsmagick1-dev libcv-dev libhighgui-dev
# You need the raspberry pi userland libraries:
mkdir -p ~/git/raspberrypi
cd ~/git/raspberrypi
git clone https://github.com/raspberrypi/userland.git
cd userland
./buildme
# 5分程度で完了
# Build the raspicam library
# Download Source code
mkdir -p ~/git
cd ~/git
# git clone https://github.com/robidouille/robidouille.git
# OpenCV v2 - master
git clone https://github.com/FREEWING-JP/robidouille.git -b master
# OpenCV v3 - feature/support_OpenCV_v3
# git clone https://github.com/FREEWING-JP/robidouille.git -b feature/support_OpenCV_v3
cd robidouille/raspicam_cv
mkdir objs
make
# 10秒程度で完了
ls -l
# pi@raspberrypi:~/git/robidouille/raspicam_cv $ ls -l
# -rw-r--r-- 1 pi pi 141012 Sep 2 19:20 libraspicamcv.a
# -rwxr-xr-x 1 pi pi 117264 Sep 2 19:20 libraspicamcv.so
# -rwxr-xr-x 1 pi pi 137868 Sep 2 19:20 raspicamtest
# This will create:
libraspicamcv.a: A static raspberry cam library which provides an opencv like interface
libraspicamcv.so: A shared library of the above
raspicamtest: A small test app which uses the static library. Execute with ./raspicamtest. Press Esc to exit.
./raspicamtest
を X Windowから実行します。
# X Windowを起動
sudo systemctl start lightdm
SSHのターミナルからは cannot open display X Windowが無え!と怒られます。
pi@raspberrypi:~/git/robidouille/raspicam_cv $ ./raspicamtest
(RaspiCamTest:17278): Gtk-WARNING **: cannot open display:
● OpenCV - Open Source Computer Vision
OpenCV - Transition guide
Changes overview
This document is intended to software developers who want to migrate their code to OpenCV 3.0.
OpenCV 3.0 introduced many new algorithms and features comparing to version 2.4.
Some modules have been rewritten, some have been reorganized.
Although most of the algorithms from 2.4 are still present, the interfaces can differ.
● imutilsでラズパイ専用カメラモジュールを使用する方法
imutils 0.5.1
jrosebr1/imutils
imutils/demos/picamera_fps_demo.py
# ImportError: No module named imutils.video
# imutils.video
pip install imutils
# Successfully installed imutils-0.5.1
from imutils.video import VideoStream
# vs = VideoStream(src=0).start()
vs = VideoStream(usePiCamera=True).start()
Tags: [Raspberry Pi], [電子工作]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利
ラズパイや Jetson Nano等のワンボードマイコン等への OSイメージの書き込みが簡単にできる
FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する
Raspberry Piや NVIDIA Jetson Nano等の IPアドレスを MACアドレスの OUI部分を使用して発見する
Raspberry Pi 3系のトラブルであるある第一位の電源トラブル、低電圧警報に関する情報のまとめ
ラズパイ3B系での低電圧警報に関する情報まとめ、コマンドラインやログファイルから低電圧を検知する方法
Raspberry Piで CPUの脆弱性 Spectreと Meltdownの脆弱性をチェックする方法
ラズパイで 2018年初頭に大騒ぎになったスペクターとメルトダウンの CPUの脆弱性をチェックする方法
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ
Raspberry Pi関連はこちらへまとめました
下記以外にも多数のラズパイ関係の記事が有ります。
(I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_opencv_raspicam_camera/