[英]How can i make OpenCV work fully on Raspberry Pi 4 (Raspbian Buster)?
我已經嘗試了很多天在我的 Raspberry Pi 4 上使用 Raspbian Buster 安裝 OpenCV,但我無法完成。 安裝在大多數情況下都有效,但在導入或使用 cv2.imshow() 等 cv2 方法時,會出現錯誤(見下文)。
有人讓 OpenCV 在 Raspberry Pi 4 上工作,或者知道如何讓它工作? 預先感謝您的幫助 :-)!
用pip安裝OpenCV后報錯:
pip install opencv-python
pip install opencv-contrib-python
python
>>> import cv2
ImportError: libImath-2_2.so.12: cannot open shared object file: no such file or directory
我無法安裝這個庫“libImath-2_2.so.12”。 錯誤仍然存在。
使用 conda 安裝 OpenCV 后出錯:
conda install -c conda-forge opencv
conda install -c conda-forge opencv=4.1.0
conda install -c menpo opencv
python
>>> import cv2
>>> img = cv2.imread("image.png", 0)
>>> cv2.imshow("Frame", img)
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /home/jhelmus/conda/conda-bld/opencv_1512174356192/work/modules/highgui/src/window.cpp, line 605
Traceback (most recent call last):
File "detect_video.py", line 113, in <module>
cv2.imshow("Frame", img_main)
cv2.error: /home/jhelmus/conda/conda-bld/opencv_1512174356192/work/modules/highgui/src/window.cpp:605: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage
我檢查了庫 libgtk2.0-dev 和 pkg-config 已經安裝。 我不知道如何以一種使其工作的方式“在函數 cvShowImage 中配置腳本”。
通過編譯安裝 OpenCV 后出錯
我經歷了這兩個指南中描述的編譯過程。 這些指南適用於我的 Raspberry Pi 3b,但不適用於我的 Raspberry Pi 4:
我能夠使用 make、sudo make install 等完成編譯。之后雖然我現在仍然需要將 openCV 安裝鏈接到我的 Python 綁定。 使用cmake
命令,我設置了以下路徑:
/home/pi/miniconda3/bin/python3 (ver 3.5.6)
lib/python3.5/dist-packages
/usr/bin/python2.7
我現在如何訪問 OpenCV,如何將其鏈接到 Python 以便我可以將其作為 cv2 導入?
預先感謝您的幫助 :-)!
保羅
在@Ingo 的幫助下,我終於能夠在 Raspbian Buster 上安裝 OpenCV,其解決方案比預期的要簡單得多:
只需運行sudo apt install python3-opencv
,它就可以工作,並且還可以使用 cv2.imshow() 創建窗口。
首先有一個全新的 raspbian
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqtgui4
sudo apt-get install libqt4-test
sudo apt-get install libhdf5-dev
sudo pip3 install flask
sudo pip3 install numpy
sudo pip3 install opencv-contrib-python
sudo pip3 install imutils
sudo pip3 install opencv-python
你必須在你的cmake
之后運行make
。 在下一步中,當您的make
完成且沒有錯誤時,您運行make install
。
現在您可以在 Python 中使用 OpenCV(假設您的配置有效)。 也許你必須重建opencv,因為你使用Python2.7進行構建。 將PYTHON_DEFAULT_EXECUTABLE
設置為 Python3 以將 OpenCV 與 Python3 一起使用: -DPYTHON_DEFAULT_EXECUTABLE=$(which python3)
對於 opencv 4.3.0 raspberry pi 4 raspbian buster tbb neon
安裝步驟
wget https://github.com/cyysky/OpenCV-Raspberry-Pi-4-Package-for-Python/raw/master/opencv_4.3.0-1_armhf.deb
sudo dpkg -i opencv_4.3.0-1_armhf.deb # This will install fail for dependency
sudo apt-get -f install # Auto install dependency package
sudo dpkg -i opencv_4.3.0-1_armhf.deb # Now start install
sudo apt-get install tesseract-ocr # Optional : tesseract-ocr
如果您有導入問題:
export LD_PRELOAD=$LD_PRELOAD:/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0
用戶 acine sachiro 發布的答案的略短(列表/字典理解)版本。
import os
dct = {'apt-get' : ['update', 'upgrade', 'other commands', 'etc.'],
'apt-get install' : ['libatlas-base-dev','libjasper-dev', 'libqtgui4', 'libhdf5-dev'],
'pip3 instal' : ['flask', 'numpy', 'opencv-contrib-python', 'imutils', 'opencv-python']}
# The below code shows how nested list comprehension works
for k,v in dct.items():
for i in v:
print (k,i)
# which can be re-written to:
[print (k,i) for k,v in dct.items() for i in v]
執行命令的實際工作代碼是:
import os
dct = {'apt-get' : ['update', 'upgrade', 'other commands', 'etc.'],
'apt-get install' : ['libatlas-base-dev','libjasper-dev', 'libqtgui4', 'libhdf5-dev'],
'pip3 instal' : ['flask', 'numpy', 'opencv-contrib-python', 'imutils', 'opencv-python']}
[os.system(f"sudo {k} {i}") for k,v in dct.items() for i in v]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.