Raspbery Pi 3 で Python3環境にOpenCV3を突っ込んでみる
これらは、Google+でチョコチョコ書いた内容をまとめただけ。
Raspberry Pi 3 のPythonのバージョン
>>> import platform
>>> platform.python_version()
'3.5.3'
>>> import cv2
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
import cv2
ImportError: No module named 'cv2'
当然入ってない。
コマンドプロンプトからpip3でinstallする。
$ sudo pip3 install opencv-python
Collecting opencv-python
Downloading https://www.piwheels.org/simple/opencv-python/opencv_python-3.4.1.15-cp35-cp35m-linux_armv7l.whl (7.5MB)
100% |████████████████████████████████| 7.5MB 16kB/s
Requirement already satisfied: numpy>=1.12.1 in /usr/lib/python3/dist-packages (from opencv-python)
Installing collected packages: opencv-python
Successfully installed opencv-python-3.4.1.15
>>> import cv2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import cv2
File "/usr/local/lib/python3.5/dist-packages/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: libcblas.so.3: cannot open shared object file: No such file or directory
ライブラリが足りない。
apt-cache searchなどで探す。そして、libcblas3 libjasper1 libqt4-testをインストール。芋づる式にいろいろインストール。
$ sudo apt-get install libcblas3 libjasper1 libqt4-test
(略)
>>> import cv2
>>> cv2.__version__
'3.4.1'
これで、Python3+OpenCV3の環境の出来上がり。
picameraを使って静止画の取り込み。
----ここから----
import cv2
import picamera
import numpy
camera = picamera.PiCamera()
image = numpy.empty(camera.resolution.width * camera.resolution.height * 3, dtype=numpy.uint8)
camera.capture(image, 'bgr')
image = image.reshape( (camera.resolution.height, camera.resolution.width, 3) )
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
----ここまで----
picameraを使って動画表示
----ここから----
import cv2
import picamera
import numpy
camera = picamera.PiCamera()
image = numpy.empty(camera.resolution.width * camera.resolution.height * 3, dtype=numpy.uint8)
while (True):
camera.capture(image, 'bgr')
image = image.reshape( (camera.resolution.height, camera.resolution.width, 3) )
cv2.imshow("image", image)
if cv2.waitKey(1) >= 1 :
break;
cv2.destroyAllWindows()
----ここまで----
後は、適当に遊びます。