OpenCV4短評(píng)
OpenCV4 是目前主流的計(jì)算機(jī)視覺(jué)庫(kù),在經(jīng)典版本基礎(chǔ)上大幅優(yōu)化性能,新增 DNN 深度學(xué)習(xí)模塊,可直接部署主流 AI 視覺(jué)模型??缙脚_(tái)支持完善,硬件加速效果更好,圖像處理、目標(biāo)檢測(cè)、視頻追蹤等功能更穩(wěn)定。API 設(shè)計(jì)更規(guī)范,不過(guò)依舊無(wú)圖形界面,需要編程基礎(chǔ),新手入門(mén)有一定門(mén)檻。
OpenCV4適合人群
適合計(jì)算機(jī)視覺(jué)工程師,用于深度學(xué)習(xí)模型部署與實(shí)時(shí)視覺(jué)處理;適合科研及高校學(xué)生,開(kāi)展圖像算法實(shí)驗(yàn)與項(xiàng)目開(kāi)發(fā);適合工業(yè)檢測(cè)開(kāi)發(fā)者,實(shí)現(xiàn)高精度的缺陷檢測(cè)與視覺(jué)識(shí)別需求。
OpenCV4特色
1、在擴(kuò)展模塊中去掉了SIFT與SURF相關(guān)API的調(diào)用文件
現(xiàn)在如果想在OpenCV Python 4.x中想使用SIFT與SURF只有靠自己從源代碼CMake來(lái)編譯生成python版本的安裝包才可以。
# OpenCV 3.x中:
namedWindow(“input”, cv.CV_WINDOW_AUTOSIZE)。
# OpenCV4.x:
namedWindow(“input”, cv.WINDOW_AUTOSIZE)。
2、全部取消CV_XXX這種枚舉類(lèi)型,比如在3.x中可以正常使用的語(yǔ)句
# 在OpenCV3.x中輪廓發(fā)現(xiàn)API返回三個(gè)值分別為:
# image 返回的圖像。
# contours 每個(gè)輪廓的點(diǎn)集合。
# hierarchy 每個(gè)輪廓對(duì)應(yīng)的層次信息。
binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)。
3、findContours函數(shù)返回結(jié)果由3.x的三個(gè)參數(shù)變?yōu)閮蓚€(gè)參數(shù)
OpenCV4.0中需要改為:
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)。
4、增加了python語(yǔ)言版本的對(duì)DNN模塊的加持
支持圖像分類(lèi)、對(duì)象檢測(cè)(SSD、RCNN、Faster-RCNN、mask-RCNN)、圖像分割等網(wǎng)絡(luò)的使用。
語(yǔ)言的接口,可應(yīng)用于人機(jī)互動(dòng),物體識(shí)別,圖像處理等領(lǐng)域。
OpenCV4新增功能
DNN對(duì)很多網(wǎng)絡(luò)層進(jìn)行了提升,如ONNS中的LSTM, Broadcasting, Algebra over constants, Slice with multiple inputs;DarkNet中的grouped convolutions, sigmoid, swish, scale_channels;MobileNet-SSD v3
更多OpenVINO后端特性:可通過(guò)nGraph添加自定義層
優(yōu)化CUDA后端,并殺掉一些BUG
可以使用最新的IPP-CV 2020.0.0Gold版本進(jìn)行CPU優(yōu)化
使用SIMD指令優(yōu)化了integral、resize和RLOF實(shí)現(xiàn)
更多演示和例子
opencv_contrib:增加了Alpha Matting算法
calib3d:findChessboardCorners SB算法提升
core:getNumberOfCPUs()函數(shù)提升
imgcodecs:支持OpenJPEG庫(kù)
highgui(Qt):增加到剪切板的復(fù)制功能
OpenCV4應(yīng)用領(lǐng)域
應(yīng)用領(lǐng)域編輯
1、人機(jī)互動(dòng)
2、物體識(shí)別
3、圖像分割
4、人臉識(shí)別
5、動(dòng)作識(shí)別
6、運(yùn)動(dòng)跟蹤
7、機(jī)器人
8、運(yùn)動(dòng)分析
9、機(jī)器視覺(jué)
10、結(jié)構(gòu)分析
11、汽車(chē)安全駕駛
OpenCV4常見(jiàn)問(wèn)題
OpenCV4和OpenCV3有什么區(qū)別?
1、在擴(kuò)展模塊中去掉了SIFT與SURF相關(guān)API的調(diào)用文件
現(xiàn)在如果想在OpenCV Python 4.x中想使用SIFT與SURF只有靠自己從源代碼CMake來(lái)編譯生成python版本的安裝包才可以。
# OpenCV 3.x中
namedWindow(“input”, cv.CV_WINDOW_AUTOSIZE)
# OpenCV4.x
namedWindow(“input”, cv.WINDOW_AUTOSIZE)
2、全部取消CV_XXX這種枚舉類(lèi)型,比如在3.x中可以正常使用的語(yǔ)句
# 在OpenCV3.x中輪廓發(fā)現(xiàn)API返回三個(gè)值分別為
# image 返回的圖像
# contours 每個(gè)輪廓的點(diǎn)集合
# hierarchy 每個(gè)輪廓對(duì)應(yīng)的層次信息
binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
3、findContours函數(shù)返回結(jié)果由3.x的三個(gè)參數(shù)變?yōu)閮蓚€(gè)參數(shù)
OpenCV4.0中需要改為
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
4、增加了python語(yǔ)言版本的對(duì)DNN模塊的加持!
支持圖像分類(lèi)、對(duì)象檢測(cè)(SSD、RCNN、Faster-RCNN、mask-RCNN)、圖像分割等網(wǎng)絡(luò)的使用
圖像讀取返回 None 如何解決?
規(guī)范路徑:使用純英文絕對(duì)路徑,禁止中文、空格、特殊字符導(dǎo)致讀取失??;
文件校驗(yàn):確認(rèn)圖片為 jpg/png/bmp 格式,無(wú)損壞、未加密、完整下載;
函數(shù)調(diào)用:使用 cv2.imread (),默認(rèn)彩色讀取,傳 0 可直接讀取灰度圖;
權(quán)限設(shè)置:Windows 以管理員身份運(yùn)行程序,獲取文件完整讀取權(quán)限;
替換測(cè)試:使用標(biāo)準(zhǔn)測(cè)試圖片,排查文件本身?yè)p壞導(dǎo)致的讀取異常。
圖像顯示窗口閃退怎么辦?
添加等待語(yǔ)句:imshow 后必須加 cv2.waitKey (0),等待按鍵關(guān)閉窗口;
銷(xiāo)毀資源:代碼末尾添加 cv2.destroyAllWindows (),安全釋放顯示資源;
空值判斷:先判斷 img 是否為空,為空則打印提示,避免空數(shù)據(jù)閃退;
循環(huán)適配:視頻處理用 cv2.waitKey (1),實(shí)現(xiàn)幀刷新不卡死;
環(huán)境重啟:重啟 PyCharm/Jupyter,解決內(nèi)核卡頓導(dǎo)致的界面異常。
攝像頭無(wú)法打開(kāi)怎么排查?
調(diào)整索引:內(nèi)置攝像頭用 cv2.VideoCapture (0),外接設(shè)備試 1/2 索引;
權(quán)限開(kāi)啟:系統(tǒng)設(shè)置授予相機(jī)權(quán)限,關(guān)閉微信、瀏覽器等占用程序;
驅(qū)動(dòng)更新:更新攝像頭硬件驅(qū)動(dòng),在系統(tǒng)相機(jī)中測(cè)試設(shè)備正常;
代碼校驗(yàn):添加 cap.isOpened () 判斷,未打開(kāi)輸出報(bào)錯(cuò)信息定位問(wèn)題;
格式設(shè)置:調(diào)用 cap.set () 設(shè)置分辨率幀率,適配設(shè)備支持的參數(shù)。
視頻保存失敗無(wú)法播放?
編碼器配置:使用 cv2.VideoWriter_fourcc (*'mp4v'),適配 MP4 格式保存;
參數(shù)匹配:寬高、幀率必須與原視頻一致,分辨率不匹配會(huì)保存失??;
路徑規(guī)范:保存路徑無(wú)中文,文件后綴設(shè)為 mp4,OpenCV4 最優(yōu)支持格式;
資源釋放:完成后執(zhí)行 cap.release () 和 out.release (),鎖定視頻文件;
格式修復(fù):保存失敗可更換 XVID 編碼器,生成 avi 格式視頻測(cè)試。
圖像顏色失真紅藍(lán)顛倒?
原理說(shuō)明:OpenCV4 默認(rèn) BGR 通道,Matplotlib 顯示為 RGB,導(dǎo)致顏色顛倒;
快速轉(zhuǎn)換:使用 cv2.cvtColor (img, cv2.COLOR_BGR2RGB) 修正顏色通道;
窗口區(qū)分:cv2.imshow 無(wú)需轉(zhuǎn)換,第三方繪圖庫(kù)必須執(zhí)行通道轉(zhuǎn)換;
保存優(yōu)化:直接保存 BGR 格式圖像,無(wú)需轉(zhuǎn)換,避免保存后失真;
通道處理:拆分 BGR 通道重新排序,適配不同可視化工具的要求。
OpenCV4與PIL/Pillow區(qū)別
功能定位:OpenCV4 是全功能計(jì)算機(jī)視覺(jué)庫(kù),支持圖像、視頻、AI、攝像頭;Pillow 僅輕量圖片處理,無(wú)視覺(jué)算法。
性能效率:OpenCV4 處理速度快,適合大圖、視頻、高并發(fā);Pillow 純 Python 實(shí)現(xiàn),性能弱,僅適合簡(jiǎn)單操作。
適用領(lǐng)域:OpenCV4 用于自動(dòng)駕駛、工業(yè)檢測(cè)、安防、AI 視覺(jué);Pillow 用于網(wǎng)頁(yè)、輕量圖片裁剪、格式轉(zhuǎn)換。
上手難度:OpenCV4 函數(shù)豐富,學(xué)習(xí)曲線(xiàn)稍高;Pillow 接口簡(jiǎn)單,新手極易上手。
OpenCV4更新日志
1.修復(fù)BUG,新版體驗(yàn)更佳
2.更改了部分頁(yè)面
華軍小編推薦:
OpenCV4是一款非常實(shí)用、簡(jiǎn)單的工具,有興趣的用戶(hù)可以在華軍軟件園下載使用,另外還有眾多同款同類(lèi)軟件提供下載,如:AlphaEbot動(dòng)作編輯軟件、河小象編程客戶(hù)端、自動(dòng)化測(cè)試工具AutoRunner、Easy GUI、小海龜LOGO語(yǔ)言等。




























您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用