學習筆記python+opencv環境搭建

2020-08-15 19:09:52

https://blog.csdn.net/qq_41204464/article/details/88827186
python2 --version   #檢視python2安裝版本
python3 --version   #檢視python3安裝版本

方法:利用pip安裝opencv-python
1. 先把ubuntu 中 python版本預設設定爲:python3
echo alias python=python3 >> ~/.bashrc
source ~/.bashrc
分別執行兩行命令,就可以了。
2.如果ubuntu中沒有pip 的,先安裝pip
sudo apt-get install python3-pip
pip show pip  #檢視pip軟體管理工具版本
sudo python -m pip install --upgrade pip  #升級pip工具
3.在pip中可以方便快速的安裝opencv-python和opencv-contrib-python,只需要輸入兩條指令即可:
sudo pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple                  #安裝opencv,要保證安裝路徑在/usr/local/lib/python3.5/dist-packages下
sudo pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple      #安裝opencv的contrib擴充套件包,要保證安裝路徑在/usr/local/lib/python3.5/dist-packages下
sudo pip3 install imutils -i https://pypi.tuna.tsinghua.edu.cn/simple    #imutils是在OpenCV基礎之上的一個封裝,達到更爲簡潔呼叫OpenCV介面的目的
如果中途沒報錯,恭喜安裝成功了。如果報錯:
4.測試安裝opencv方法Python介面是否成功:
python
import cv2
####################################################################################
python 有python2和python3的區別
那麼pip也有pip和pip3的區別
大概是這樣的
1、pip是python的包管理工具,pip和pip3版本不同,都位於Scripts\目錄下:
2、如果系統中只安裝了Python2,那麼就只能使用pip。
3、如果系統中只安裝了Python3,那麼既可以使用pip也可以使用pip3,二者是等價的。
4、如果系統中同時安裝了Python2和Python3,則pip預設給Python2用,pip3指定給Python3用。
5、重要:虛擬環境中,若只存在一個python版本,可以認爲在用系統中pip和pip3命令都是相同的

sudo find / -iname "*opencv*" > /home/xust/Desktop/opencv_find.txt  #查詢opencv檔案所有資訊存入opencv_find.txt
whereis python
which python
#######################################################################################
pycharm安裝:
1)進入https://www.jetbrains.com/pycharm/download/#section=linux,選擇Professional專業版,直接點選DOWNLOAD,
2)進入跳轉頁面,出現提示框,點savefile,開始下載;
3)下載完成後,安裝包在Downloads資料夾下
4)解壓檔案。右鍵安裝包,點選「Extract Here」
5)先整理資料夾,把 pycharm-2018.1.4 資料夾放在Downloads根目錄,方便找到;
6)開啓終端,進入pycharm-2018.1.4/bin;
7)執行sh ./pycharm.sh命令檔案,開始安裝;

【Python】解決:Pycharm無法識別Python已安裝的模組,如cv2(OpenCV)模組
Pycharm的選單  File | Settings | Settings視窗 | Project:XXXX | Project Interpreter項 | 視窗右側 齒輪按鈕點選 | Show All... | 然後依據上圖提示開啓「Interpreter Paths」視窗
將已安裝的Python路徑下的 Lib/site-packages 這個路徑新增到「Interpreter Paths」視窗項中,最後儲存


買了一個免驅的USB攝像頭Cubeternet USB2.0 Camera,連線虛擬機器OK,一般預設/dev/video0
lsusb  
結果
Bus 001 Device 002: ID 1e4e:0109 Cubeternet     #可以檢視USB攝像頭的ID
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0e0f:0008 VMware, Inc. 
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

cd /dev
dmesg | grep video
[21765.592771] Linux video capture interface: v2.00
[21765.679440] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0109)      #可知攝像頭使用的是UVC協定
[21765.748343] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[21765.751278] uvcvideo 1-1:1.0: Entity type for entity Extension 4 was not initialized!
[21765.751280] uvcvideo 1-1:1.0: Entity type for entity Processing 3 was not initialized!
[21765.751281] uvcvideo 1-1:1.0: Entity type for entity Camera 1 was not initialized!
[21765.752410] usbcore: registered new interface driver uvcvideo

cd /dev
sudo cat /sys/kernel/debug/usb/devices  #檢視攝像頭協定

sudo apt-get install camorama
camorama

sudo apt-get install cheese
sudo apt install webcam
cheese

若cheese開啓攝像頭video0黑畫面的處理方法:
lsusb檢視一下是否有找到攝像頭。
ls /dev | grep video,檢視是否有video0。
如以上兩點都有,需要檢查的部分是虛擬機器設定>usb控制器>usb相容性>(usb2.0/3.0)。如果當前選中的是2.0就選擇3.0,如果當前選中的是3.0就選擇2.0。然後確定。
在VMware的工具列選擇虛擬機器>可移動裝置>攝像頭>斷開連線。然後再虛擬機器>可移動裝置>攝像頭>連線。然後重新開啓cheese,發現已經有影象了。

python+opencv開啓攝像頭原始碼:
import cv2
capture = cv2.VideoCapture(0)
while True:
    ret, frame = capture.read()
    frame = cv2.flip(frame,1)   #映象操作  1表示左右映象
    frame = cv2.flip(frame,-1)   #映象操作  -1表示上下映象
    cv2.imshow("video", frame)
    key = cv2.waitKey(50)
    #print(key)
    if key  == ord('q'):  #判斷是哪一個鍵按下
        break
cv2.destroyAllWindows()