成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

OpenCV-Python,計(jì)算機(jī)視覺(jué)開(kāi)發(fā)利器

阿羅 / 3168人閱讀

摘要:而這其中,很多應(yīng)用都涉及到計(jì)算機(jī)視覺(jué)這樣一個(gè)細(xì)分領(lǐng)域。常見(jiàn)的圖像處理灰度圖二值化平滑邊緣提取這幾種都屬于數(shù)字圖像處理的常用方法。對(duì)這方面知識(shí)感興趣的,可以找本數(shù)字圖像處理的相關(guān)教材系統(tǒng)地看一遍,了解數(shù)字圖像處理的基礎(chǔ)。

人工智能 ,一個(gè)已經(jīng)被談?wù)摿藥资甑母拍睿ㄗ钤缡?圖靈1950年 提出)。如今這幾年,相關(guān)技術(shù)的發(fā)展速度是越來(lái)越快。高大上如無(wú)人駕駛、智能安防、AI輔助診斷,接地氣如刷臉支付、內(nèi)容推薦、自動(dòng)翻譯等,眾多領(lǐng)域借助人工智能的力量而進(jìn)化。從百度搜索指數(shù)的變化,也能從一個(gè)側(cè)面反映出關(guān)注度在不斷上升。

而這其中,很多應(yīng)用都涉及到“ 計(jì)算機(jī)視覺(jué) ”這樣一個(gè)細(xì)分領(lǐng)域。簡(jiǎn)單來(lái)說(shuō),就是將圖像信息轉(zhuǎn)化為計(jì)算機(jī)可以處理的數(shù)字信息,從而讓計(jì)算機(jī)能“看得見(jiàn)”。這個(gè)信息不僅僅是二維的圖片,也包括三維場(chǎng)景、視頻序列等?;旧纤行枰玫綌z像頭、圖片、視頻的應(yīng)用場(chǎng)景,都離不開(kāi)計(jì)算機(jī)視覺(jué)的支持。因此,這也是人工智能領(lǐng)域中比較熱門(mén)的一個(gè)方向。

來(lái)自《2017年人工智能行業(yè)發(fā)展研究報(bào)告白皮書(shū)》- IT耳朵&IT桔子

而說(shuō)到計(jì)算機(jī)視覺(jué),就不能不提到 OpenCV ,它是一個(gè)歷史悠久、功能豐富、社區(qū)活躍的開(kāi)源視覺(jué)開(kāi)發(fā)庫(kù)。一方面,它提供了計(jì)算機(jī)視覺(jué)以及圖像處理方面最常用最基礎(chǔ)的功能支持,是開(kāi)發(fā)的必備工具;另一方面,它在新版本中緊跟潮流,加入對(duì)新的算法、硬件的支持(v3.3 正式引入 DNN)。

OpenCV 基于 C++ 編寫(xiě),但提供了 Python、Ruby、MATLAB 等多種語(yǔ)言接口。這對(duì)于習(xí)慣使用 Python 開(kāi)發(fā)的人工智能從業(yè)者來(lái)說(shuō)非常方便。之前的不少習(xí)題和開(kāi)發(fā)案例中,我們都有用到過(guò)。今天我們?cè)儆脦讉€(gè)常見(jiàn)的例子,演示下 OpenCV-Python 的強(qiáng)大功能。

安裝:

OpenCV 的安裝,不同平臺(tái)不同版本會(huì)有一些差異。安裝前需要裝好 numpy ,強(qiáng)烈建議先安裝好 Anaconda ,然后直接通過(guò)命令安裝:


pip install opencv-python

如果你運(yùn)氣好,代碼里運(yùn)行 import cv2 沒(méi)報(bào)錯(cuò)就是成功了。

但大多數(shù)時(shí)候可能不行。你可以考慮去這里下載安裝文件:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

然后通過(guò)命令從本地安裝:


pip install opencv_python3.4.3cp37cp37mwin_amd64.whl

這里下載的安裝文件 版本 號(hào)務(wù)必要和你本機(jī)的 Python 版本位數(shù) 相對(duì)應(yīng)。

如果安裝時(shí)還有其他問(wèn)題,可在網(wǎng)上直接搜索報(bào)錯(cuò),通常都會(huì)有解決方案,這里不一一贅述。

基本的圖像讀寫(xiě):

我們用圖像處理的經(jīng)典范例 Lenna 來(lái)做測(cè)試

可自行搜索這幅圖像的來(lái)頭


import cv2 as cv
# 讀圖片
img = cv.imread("img/Lenna.png")
# 圖片信息
print("圖片尺寸:", img.shape)
print("圖片數(shù)據(jù):", type(img), img)
# 顯示圖片
cv.imshow("pic title", img)
cv.waitKey(0)
# 添加文字
cv.putText(img, "Learn Python with Crossin", (50, 150), cv.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 4)
# 保存圖片
cv.imwrite("img/Lenna_new.png", img)

OpenCV-Python 中的圖像數(shù)據(jù)使用了 numpy 庫(kù)的 ndarray 類(lèi)型 進(jìn)行管理,便于進(jìn)行各種數(shù)值計(jì)算和轉(zhuǎn)換。

常見(jiàn)的圖像處理:


import numpy as np
# 灰度圖
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imwrite("img/Lenna_gray.png", img_gray)
# 二值化
_, img_bin = cv.threshold(img_gray, 127, 255, cv.THRESH_BINARY)
cv.imwrite("img/Lenna_bin.png", img_bin)
# 平滑
img_blur = cv.blur(img, (5, 5))
cv.imwrite("img/Lenna_blur.png", img_blur)
# 邊緣提取
_, contours, _ = cv.findContours(img_bin, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
img_cont = np.zeros(img_bin.shape, np.uint8)    
cv.drawContours(img_cont, contours, -1, 255, 3) 
cv.imwrite("img/Lenna_cont.png", img_cont)

這幾種都屬于 數(shù)字圖像處理 的常用方法。OpenCV-Python 基本都封裝好的接口,只需一兩行代碼就能完成,在實(shí)際項(xiàng)目開(kāi)發(fā)中非常方便。

我們編程教室之前的“ 每周一坑 ”欄目里,和圖像相關(guān)的題目基本都可以用 OpenCV-Python 來(lái)解決。

對(duì)這方面知識(shí)感興趣的,可以找本數(shù)字圖像處理的相關(guān)教材系統(tǒng)地看一遍,了解數(shù)字圖像處理的基礎(chǔ)。

除了基礎(chǔ)功能,OpenCV 在代碼附帶的 Samples 里還提供了一些經(jīng)典開(kāi)發(fā)案例:

人臉檢測(cè)

https://github.com/opencv/opencv/blob/master/samples/python/facedetect.py

使用方法


python facedetect.py

核心代碼


cascade = cv.CascadeClassifier("haarcascade_frontalface_alt.xml")
rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30), flags=cv.CASCADE_SCALE_IMAGE)

此功能基于 Haar 分類(lèi)器 實(shí)現(xiàn),項(xiàng)目中附帶有訓(xùn)練好的分類(lèi)器文件。此外,你還可以使用 OpenCV 訓(xùn)練針對(duì)其他目標(biāo)特征的分類(lèi)器。

我們之前的開(kāi)發(fā)案例 《Python 送你一頂圣誕帽》 就使用了 OpenCV-Python 的人臉識(shí)別代碼。獲取代碼請(qǐng)?jiān)诠娞?hào)(Crossin的編程教室)里回復(fù)關(guān)鍵字 圣誕帽

姿態(tài)識(shí)別

https://github.com/opencv/opencv/blob/master/samples/dnn/openpose.py

使用方法


python openpose.py --model pose.caffemodel --proto pose.prototxt --dataset MPI

核心代碼


net = cv.dnn.readNetFromCaffe(args.proto, args.model)
inp = cv.dnn.blobFromImage(frame, 1.0 / 255, (inWidth, inHeight), (0, 0, 0), swapRB=False, crop=False)
net.setInput(inp)
out = net.forward()

詳情參見(jiàn)文章: 用 Python 實(shí)現(xiàn)抖音尬舞機(jī)
獲取代碼請(qǐng)?jiān)诠娞?hào)(Crossin的編程教室)里回復(fù)關(guān)鍵字 姿態(tài)

風(fēng)格遷移

https://github.com/opencv/opencv/blob/master/samples/dnn/fast_neural_style.py

使用方法


python fast_neural_style.py --model starry_night.t7

核心代碼


net = cv.dnn.readNetFromTorch(args.model)
net.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV);
inp = cv.dnn.blobFromImage(frame, 1.0, (inWidth, inHeight), (103.939, 116.779, 123.68), swapRB=False, crop=False)
net.setInput(inp)
out = net.forward()

詳情參見(jiàn)文章: Python+OpenCV 十幾行代碼模仿世界名畫(huà)
獲取代碼請(qǐng)?jiān)诠娞?hào)(Crossin的編程教室)里回復(fù)關(guān)鍵字 名畫(huà)

以上便是 OpenCV-Python 的一些簡(jiǎn)單應(yīng)用。OpenCV 官方 Samples 代碼里還有很多有趣的例子(地址:https://github.com/opencv/opencv )更強(qiáng)大的功能也有待你在開(kāi)發(fā)中逐步體會(huì)。

希望這篇管中窺豹的文章可以讓各位對(duì) OpenCV 和計(jì)算機(jī)視覺(jué)有一個(gè)初步的了解和直觀的認(rèn)識(shí),進(jìn)而共同參與到人工智能這場(chǎng)技術(shù)浪潮中來(lái)。

獲取更多學(xué)習(xí)資源和代碼實(shí)例,請(qǐng)?jiān)诠娞?hào)(Crossin的編程教室)里回復(fù)關(guān)鍵字 項(xiàng)目

════

其他文章及回答:

如何自學(xué)Python|新手引導(dǎo)|精選Python問(wèn)答|Python單詞表|人工智能|嘻哈|爬蟲(chóng)|我用Python|高考|requests|AI平臺(tái)

歡迎搜索及關(guān)注: Crossin的編程教室

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/45009.html

相關(guān)文章

  • 超不清視頻播放器-用Python將視頻轉(zhuǎn)成字符

    摘要:一幅圖像全部轉(zhuǎn)成字符序列后,就可以直接在控制臺(tái)輸出了。讀取視頻使用了,并直接用它提供的方法轉(zhuǎn)了灰度圖,在之前的文章中也有過(guò)介紹,計(jì)算機(jī)視覺(jué)開(kāi)發(fā)利器這一步比較重要,因?yàn)橛械囊曨l分辨率很高,直接一個(gè)像素轉(zhuǎn)一個(gè)字符的話量太大,所以先縮小圖片。 今天分享的這段代碼,看起來(lái)沒(méi)啥實(shí)際用處,而且有些反潮流,因?yàn)楝F(xiàn)如今大家看視頻都追求更高分辨率的超清畫(huà)質(zhì),而我們這個(gè),是 一個(gè)超不清的視頻播放器 : 在...

    DobbyKim 評(píng)論0 收藏0
  • 常用的十大python圖像處理工具

    摘要:但無(wú)論是用于何種用途,這些圖像都需要進(jìn)行處理。圖像處理中的常見(jiàn)任務(wù)包括顯示圖像,基本操作如裁剪翻轉(zhuǎn)旋轉(zhuǎn)等,圖像分割,分類(lèi)和特征提取,圖像恢復(fù)和圖像識(shí)別。圖像處理系統(tǒng)有時(shí)被稱(chēng)為圖像處理的瑞士軍刀。 showImg(https://segmentfault.com/img/remote/1460000019631626); 原文標(biāo)題:10 Python image manipulation...

    Crazy_Coder 評(píng)論0 收藏0
  • Python中的十大圖像處理工具

    摘要:之成為圖像處理任務(wù)的最佳選擇,是因?yàn)檫@一科學(xué)編程語(yǔ)言日益普及,并且其自身免費(fèi)提供許多最先進(jìn)的圖像處理工具。該庫(kù)包含基本的圖像處理功能,包括點(diǎn)操作使用一組內(nèi)置卷積內(nèi)核進(jìn)行過(guò)濾以及顏色空間轉(zhuǎn)換。圖像處理系統(tǒng)有時(shí)被稱(chēng)為圖像處理的瑞士軍刀。 showImg(https://segmentfault.com/img/remote/1460000019442221);編譯:張秋玥、小七、蔣寶尚 本...

    yuanxin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<