cv2.dnn.readNetFromDarknet()在python3上遇到的问题
問題描述:
代碼如下
net = cv2.dnn.readNetFromDarknet(configPath,weightsPath) #獲取YOLO每一層的名稱 #getLayerNames():獲取網絡所有層的名稱。 ln = net.getLayerNames() # 獲取輸出層的名稱: [yolo-82,yolo-94,yolo-106] # getUnconnectedOutLayers():獲取輸出層的索引 ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]代碼編寫完畢之后 發現 i[0]的數值無法正確獲取,仔細尋找之后發現cv2.dnn.readNetFromDarknet()要求在python2環境下運行
在python2.7的安裝和cv2導入的過程中也遇到了一些問題,故做總結。
步驟:
1.用conda建一個python2虛擬環境
1. 顯示可安裝的python版本 conda search -f python 2. 安裝虛擬環境,名稱為py2 conda create -n py2 python=2.7 3. 激活py2 利用conda info –envs 或者conda env list 查詢的虛擬環境,輸入activate py2激活py2環境#刪除虛擬環境yourenvname conda remove -n yourenvname -all移除虛擬環境2.修改項目的python版本,從python3.8切換到python2.7【注意】
打開File-setting,為該項目設置Python解釋器,defaultSetting為PyCharm設置默認解釋器,兩者的設置過程一樣的,建議都設置一下
在setting頁面中選擇,Project 項目名,Project Interpreter,在如下圖右上角位置點擊Add添加Python解釋器
打開添加頁面如下,在右邊選項欄中選擇第三項System Interpreter,點擊右邊選擇位置按鈕
找到Python解釋器的python.exe文件(Python2和Python3都有這個文件)
添加成功后顯示了Python2解釋器的選項,同理設置Python3解釋器,切換時就在setting中此處進行切換
?3.python2.7裝cv2的解決方案
網上說的pip install opencv-python和換鏡像源都不好使,因為新版的opencv不再支持python2.7 因此安裝的時候需要指定版本
pip install opencv-python==4.2.0.32安裝成功
? 4.運行python遇到SyntaxError: Non-ASCII character '\xe8' 報錯
問題原因:因為沒有指定文件的編碼,默認情況下不能用中文。【不清楚為什么在python3的環境下無問題】
解決方案:在代碼首行加入以下內容
# encoding:utf-8總結
以上是生活随笔為你收集整理的cv2.dnn.readNetFromDarknet()在python3上遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【完美解决方案】module ‘cv2.
- 下一篇: 数据结构链表之栈,Python3简单实现