OpenCV Python 4.0安裝與開發注意事項

2021-12-29 OpenCV學堂

星標或者置頂【OpenCV學堂】

乾貨文章與技術教程第一時間送達

OpenCV4.0發布已經快兩個月啦,Python社區終於推出了OpenCV Python4.0的安裝包與擴展模塊安裝包,下載地址如下:

https://pypi.org/project/opencv-python/

安裝OpenCV-Python

如果你是第一次使用OpenCV Python開發包,想要安裝OpenCV Python4.0隻要執行如下命令行即可:

pip install opencv-python
上述命令行會成功安裝OpenCV4.0開發包

如果你還想使用OpenCV Python的擴展模塊,執行如下命令行即可:

pip install opencv-contrib-python
上述命令行會既安裝OpenCV4.0 release模塊又安裝擴展模塊

如果你已經安裝了OpenCV以前的3.x版本只需要執行對應的升級安裝命令行如下(假設你已經安裝opencv-python 3.x)

pip install –upgrade opencv-python
即可升級安裝到最新OpenCV 4.0的Python語言開發包。

如果在安裝的時候遇到python命令不識別或者pip命令行不識別,請執行如下的命令行實現安裝:

python –m pip install opencv-python
或者
python –m pip install opencv-contrib-python

安裝好以後打開pycharm IDE,執行如下測試代碼

import cv2 as cv

src = cv.imread("D:/images/test5.png")
cv.imshow("opencv-python", src)
cv.waitKey(0)
cv.destroyAllWindows()

運行顯示如下:

重大改動

注意這些改變只存在與OpenCV-Python與OpenCV-Contrib-Python開發包中
1.在擴展模塊中去掉了SIFT與SURF相關API的調用文件
現在如果想在OpenCV Python 4.x中想使用SIFT與SURF只有靠自己從原始碼CMake來編譯生成python版本的安裝包才可以。

2.全部取消CV_XXX這種枚舉類型,比如在3.x中可以正常使用的語句


namedWindow(「input」, cv.CV_WINDOW_AUTOSIZE)


namedWindow(「input」, cv.WINDOW_AUTOSIZE)

3.findContours函數返回結果由3.x的三個參數變為兩個參數





binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

OpenCV4.0中需要改為

contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

4.增加了python語言版本的對DNN模塊的加持!
支持圖像分類、對象檢測(SSD、RCNN、Faster-RCNN、mask-RCNN)、圖像分割等網絡的使用,而且代碼特別簡潔,以圖像分類Inception h5模型代碼調用為例,演示如下:

import cv2 as cv
import numpy as np

bin_model = "D:/projects/opencv_tutorial/data/models/googlenet/bvlc_googlenet.caffemodel"
protxt = "D:/projects/opencv_tutorial/data/models/googlenet/bvlc_googlenet.prototxt"


classes = None
with open("classification_classes_ILSVRC2012.txt", 'rt') as f:
    classes = f.read().rstrip('\n').split('\n')


net = cv.dnn.readNetFromCaffe(protxt, bin_model)

winName = 'Deep learning image classification in OpenCV'
cv.namedWindow(winName, cv.WINDOW_AUTOSIZE)

cap = cv.VideoCapture("D:/images/video/lane.avi")
while cv.waitKey(1) < 0:
    hasFrame, frame = cap.read()
    if not hasFrame:
        cv.waitKey()
        break
    result = np.copy(frame)
    
    blob = cv.dnn.blobFromImage(frame, 1.0, (224, 224), (104, 117,123), False, crop=False)

    
    net.setInput(blob)
    out = net.forward()

    
    out = out.flatten()
    classId = np.argmax(out)
    confidence = out[classId]

    
    t, _ = net.getPerfProfile()
    label = 'Inference time: %.2f ms' % (t * 1000.0 / cv.getTickFrequency())
    cv.putText(result, label, (0, 15), cv.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0))

    
    label = '%s: %.4f' % (classes[classId] if classes else 'Class #%d' % classId, confidence)
    cv.putText(result, label, (100, 50), cv.FONT_HERSHEY_SIMPLEX, 1.0, (0, 255, 0), 2)
    cv.imshow(winName, result)

運行截圖如下

5.最不可思議的改動-級聯檢測器訓練工具不見啦

-opencv_createsamples
-opencv_traincascade

上述兩個級聯檢測器訓練的工具居然神奇的從release模塊中消失啦,而且在OpenCV4.0的官方release notes中居然沒有任何說明!望周知!想訓練級聯檢測器千萬別用4.0.x的版本了。

總結
OpenCV4.0已經更新了有一段時間了,從C++ API到這幾天剛剛出爐的OpenCV-Python API我一直在不斷使用,調用常見模塊大多數的相關API,總來說接口規範比以前進步很大,很多算法的API都用過同一個API給予不同的參數即可調用,大部分接口採用了代碼實現與API分離的設計原則,極大的降低了學習成本,有利於初學者更快的學習入門。

合抱之木,生於毫末
九層之臺,起於累土
千裡之行,始於足下

歡迎掃碼加入【OpenCV研習社】



推薦閱讀

OpenCV學堂-原創精華文章

《tensorflow零基礎入門視頻教程》

基於OpenCV與tensorflow實現實時手勢識別

圖像分割網絡FCN詳解與代碼實現

深度學習中的反向卷積

OpenCV SIFT特徵算法詳解與使用

HOG特徵詳解與行人檢測
教程|OpenCV場景文字檢測
Selective Search算法與演示


聽說點【好看】會有好運來

相關焦點

  • 在Ubuntu中安裝OpenCV-Python | 三
    從預構建的二進位文件安裝OpenCV-Python僅用於編程和開發OpenCV應用程式時,此方法最有效。在終端(以root用戶身份)中使用以下命令安裝python-opencv:https://packages.ubuntu.com/trusty/python-opencv軟體包。
  • opencv-python獲取圖像:面向對象與面向過程
    這裡需要注意以下,opencv讀取圖片默認通道為BGR的格式,當在其他UI用戶界面顯示圖像時注意轉換一下通道順序,例如BGR轉換成RGB:Image1=cv2.cvtColor(image, cv2.COLOR_BGR2RGB)下面讀取一張圖片並顯示
  • 聽說你用Python?那你可別中招了!
    python供應鏈攻擊有很多種方式,可以廣撒網,當海王,也可以目標專一,精準打擊。企業內部擁有私有化部署的python倉庫,以及內部開發的python庫。如果內部python庫的名字洩露,攻擊者就可以通過在官方倉庫註冊私有庫,對目標企業進行定向攻擊。
  • Python中如何利用Opencv打開視頻或圖像並用PyQt控制項顯示
    具體安裝請自行百度,這裡介紹使用方法。一、python中opencv打開圖像方法:import cv2filename='dog.jpg'img=cv2.imread(filename)cv2.imshow('Main Window',img)cv2.waitKey() #任意鍵退出cv2.destroyAllWindows()
  • 使用Python+OpenCV進行面部合成
    原文 http://www.learnopencv.com/face-morph-using-opencv-cpp-python/
  • Python機器視覺編程環境搭建方法
    本文以windows平臺為例,介紹使用Python進行計算機視覺編程的開發環境搭建與基本配置,總結了軟體下載地址、安裝方法和開發環境搭建的基本方法,並提供了簡單的代碼示例。想說的是,Python安裝方法與系統、軟體版本等諸多因素有關,要想一步到位比較難,遇到問題多種方式可以混合嘗試。
  • 使用Python+OpenCV實現圖像數據採集
    通常,數據科學家會建立一個圖像識別模型,觀察其準確性,如果足夠高,就表示工作完成了。
  • 如何在Visual Studio開發工具安裝python庫
    >技術pythonDjango在python語言開發工具的pycharm中,可以安裝第三方庫。那麼,在Visual Studio開發工具中,如何安裝python第三方庫呢?下面利用實例說明:操作步驟:1、打開Visual Studio 2019開發工具,創建python項目
  • 利用Python開發App
    最近想到嘗試用python開發一款app,google搜索了一番後,發現確實有路可尋,目前也有了一些相對成熟的模塊,於是便開始了動手實戰,過程中發現這其中有很多坑,好在最終依靠google解決了,因此小記一番。準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。
  • 如何利用Python開發App?
    準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。簡而言之,這是一個python桌面程序開發框架(類似wxpython等模塊),強大的是kivy支持linux、mac、windows、android、ios平臺,這也是為什麼開發app需要用到這個模塊。
  • 用Python教你通過微信來控制電腦攝像頭
    1、安裝庫安裝itchatitchat 是一個開源的微信個人號接口,可以通過python很簡單的去調用微信。安裝osos模塊在運維工作中很常用的一個模塊,可以通過os模塊來調用系統命令安裝cv2通過cv2 來調用攝像頭進行圖像採集等操作pip3 install opencv-python
  • 利用Python開發App實戰
    準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。簡而言之,這是一個python桌面程序開發框架(類似wxpython等模塊),強大的是kivy支持linux、mac、windows、android、ios平臺,這也是為什麼開發app需要用到這個模塊。
  • 重磅發布 | OpenCV 4.0正式來了
    微信公眾號:OpenCV學堂關注獲取更多計算機視覺與深度學習知識覺得文章對你有用,請戳底部廣告支持三天前OpenCV通過GITHUB正式發布了OpenCV又一個重要裡程碑版本OpenCV 4.0意思是說OpenCV現在基於C++11庫而且要求C++11的編譯器在CMake的時候,然後說CMake OpenCV 4.0與OpenCV3.x之間的不同,需要注意一下,如果自己編譯OpenCV 4.0源碼應該注意到。
  • OpenCV-Python圖像像素直方圖
    一維直方圖 python中繪製圖像像素一維直方圖[1](也稱為單通道像素直方圖)有兩種方式,一種是opencv中的cv2.calcHist()函數;另一種是matplotlib.pyplot中的plt.hist()函數。
  • 50 行代碼,看 Python + OpenCV 玩轉實時圖像處理!
    本文來自博客專欄《Python》本專欄專注於Python項目實戰開發應用初學OpenCV圖像處理的小夥伴肯定對什麼高斯函數、濾波處理、閾值二值化等特性非常頭疼,這裡給各位分享一個小項目import PySimpleGUI as sg #pip install pysimpleguiimport cv2 #pip install opencv-pythonimport numpy as np #pip install numpy2、設計GUI基於PySimpleGUI庫文件實現
  • 空調安裝注意事項
    以下是窗式空調安裝注意事項: 1、安裝前,應對空調作一些檢查,如絕緣性檢查,製冷、制熱能力檢查等,以免安裝完畢後要重新拆下來修理。 4、安裝高度應離地面1.5米以上,其外殼上的進風口百葉窗要露在室外,以保持良好通風換氣。
  • [Python運維]cx_Oracle模塊的安裝
    這時需要修改yum可執行文件文件將第一行改成 python2.6即可vim /usr/bin/yum#!/usr/bin/python2.61.安裝Oracle 12c Instant Client由於這次我們使用Python連接Oracle,所以需要oracle客戶端,這裡我們使用Oracle 12c Instant Client注意:12c客戶端不支持連接9i及以下資料庫,如有需求請下載11g的instant client下載地址:
  • OpenCV基礎 | 5.像素運算
    學習視頻可參見python+opencv3.3視頻教學 基礎入門[1]
  • 使用OpenCv和Dlib進行打哈欠檢測
    安裝OpenCv和Dlib庫OpenCv的安裝如下:pip install opencv-pythonDlib的安裝如下:pip install cmakeDlib將從文件中提取所有信息,使用opencv查找不同的特徵。定義函數獲取landmarks並使用顏色對其進行注釋形狀預測器(dat文件)用於從圖像中提取信息,例如眼角,鼻子周圍的區域等。
  • Python 炫技操作:安裝包的八種方法
    由於它是一個第三方工具,因此在使用它之前,需要先安裝$ python3 -m pip install  $ python3 -m userpath append ~/.# 創建虛擬環境並安裝包 $ pipx install pkg 更多 pipx 的使用方法,可參考我之前寫的文章,介紹得非常清楚:解鎖裝包新姿勢,這個場景下 pip 真的難用~4.