Ich habe es aus dem Quellcode erstellt.
$ wget https://github.com/opencv/opencv/archive/3.4.3.zip -O opencv-3.4.3.zip
$ wget https://github.com/opencv/opencv_contrib/archive/3.4.3.zip -O opencv_contrib-3.4.3.zip
$ unzip opencv-3.4.3.zip
$ unzip opencv_contrib-3.4.3.zip
$ cd opencv-3.4.3
$ mkdir build
$ cd build
$ ./cmake.sh
$ make -j4
$ sudo make install
$ sudo ldconfig
$ cd /path/to/site-packages
$ sudo ln -s /usr/local/lib/python3.6/site-packages/cv2.cpython-36m-aarch64-linux-gnu.so cv2.so
Da cmake viele Optionen hat und ich es viele Male erneut versucht habe, habe ich eine Datei wie folgt erstellt.
cmake.sh
#!/bin/sh
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF \
-D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF \
-D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF \
-D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF \
-D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF \
-D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF \
-D BUILD_DOCS=OFF -D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
-D BUILD_opencv_python3=ON -D FORCE_VTK=ON \
-D WITH_TBB=ON -D WITH_V4L=ON \
-D WITH_OPENGL=ON -D WITH_CUBLAS=ON \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=`pyenv local 3.6.8; pyenv which python` \
-D PYTHON3_INCLUDE_DIR=`pyenv local 3.6.8; python -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'` \
-D PYTHON3_NUMPY_INCLUDE_DIRS=`pyenv local 3.6.8; python -c 'import numpy; print(numpy.get_include())'` \
-D PYTHON3_LIBRARIES=`find $PYENV_ROOT/versions/3.6.8/lib -name 'libpython*.so'` \
-D WITH_FFMPEG=ON \
..
Ich bin neu bei OpenCV und habe aufgrund der besonderen Umgebung nicht reibungslos gearbeitet. Ich bin über die folgenden Punkte gestolpert.
-D PYTHON3_hogehoge
machen. Ich habe das Ergebnis von cmake nicht richtig gesehen. ..matplotlib Ich habe matplotlib für die Bildanzeige. Ich habe die Fehlermeldung erhalten, dass das Backend keine GUI ist, daher habe ich PyQt5 wie folgt eingefügt. (Ich habe es durch Ausprobieren gemacht, daher habe ich das Gefühl, dass es nicht genügend Befehle gibt.)
$ sudo apt install -y qt5-qmake qt5-default
$ wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.12/sip-4.19.12.tar.gz
$ wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.10.1/PyQt5_gpl-5.10.1.tar.gz
$ tar -xvf sip-4.19.12.tar.gz
$ tar -xvf PyQt5_gpl-5.10.1.tar.gz
$ cd sip-4.19.12/
$ python configure.py --sip-module=PyQt5.sip
$ make -j4
$ sudo make install
$ cd ../PyQt5_gpl-5.10.1/
$ python configure.py --qmake /usr/bin/qmake --sip-incdir ~/deeplabcut/sip-4.19.12/siplib
$ make
$ sudo make install
$ pip install pyqt5
Kann Lenas Gesicht erkannt werden? Ich habe die Funktionsweise von OpenCV anhand des Themas überprüft.
cvtest.py
import cv2
import matplotlib.pyplot as plt
cascade_path = '/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml'
def face_detection(img_src):
img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier(cascade_path)
facerect = cascade.detectMultiScale(img_gray)
if len(facerect) == 0:
print('No face detected')
return None
rect = facerect[0]
cv2.rectangle(
img_src,
tuple(rect[0:2]), tuple(rect[0:2] + rect[2:4]),
(255, 255, 255),
thickness=2)
return img_src
if __name__ == "__main__":
lena_path = './lena.png'
lena_src = cv2.imread(lena_path)
lena_face_detected = face_detection(lena_src)
if lena_face_detected is None:
img_show = lena_src
else:
img_show = cv2.cvtColor(lena_face_detected, cv2.COLOR_BGR2RGB)
plt.imshow(img_show)
plt.show()
Das Folgende ist das Ausführungsergebnis. Sie können es sicher erkennen. Beeindruckend
Wenn die Kamera ankommt, würde ich gerne damit spielen.
das ist alles.
Recommended Posts