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