0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談Python中的opencv

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-04-12 16:36 ? 次閱讀

經(jīng)典機器學(xué)習(xí),深度學(xué)習(xí),當(dāng)下這些熱門的詞匯不知不覺在我們學(xué)習(xí)(diaosi)氛圍濃重的大學(xué)蔓延開來,作為與計算機專業(yè)毫不相干的,指揮摁下開機鍵,點開穿越火線嫻熟地操作wasd的我而言,當(dāng)周圍人討論opencv,tensorflow,sklearn這些玄幻詞匯時,聽得我是一頭霧水。今天,重拾一年前敲擊hello world的自信,開啟了Python的opencv生涯。

壹 為什么選擇python?

作為時下最時尚的python語言,簡潔的代碼,借助于向軍火庫一般的各種開源工具包,你可以完成你想做的任何事。數(shù)值計算這些numpy,scipy,數(shù)據(jù)分析工具pandas,可視化matplotlib,可以使得非計算機工科生甚至文科生輕松上手,爬取處理數(shù)據(jù)。作為膠水語言的python在opencv上的應(yīng)用不僅簡單方便編寫代碼,其運行速度有時甚至優(yōu)于c++等,讓你更加專注于目標(biāo)而不是語法結(jié)構(gòu)。最重要的是,如果你已經(jīng)下載過了anaconda python,安裝opencv只需要一行代碼就可完成!

貳 掌握anaconda和安裝opencv

anaconda是用于科學(xué)計算的免費的python版本。可以在官網(wǎng)上下載anaconda,https://www.anaconda.com/,選擇windows還是linux或是蘋果的mac os??辞宄?2位還是64位便可以下載。不過,下載數(shù)小時,經(jīng)常下載不成功是常事。這時候,強烈建議逛一逛清華或者中科大的鏡像站,下載變成分分鐘的事。

opencv的安裝:在網(wǎng)頁上下載好對應(yīng)版本的.whl文件后,打開你電腦的命令行,pip install一下就ok了。

叁 常見圖片的格式

作為圖像處理,那就需要知道常見的圖片格式有哪些。

比較老的有bmp格式,bmp格式無損及沒有壓縮像素,但麻煩的是圖片的體積偏大。

接著是jpg格式或者是jpeg格式,這是有損壓縮的模式,將像素信息用jpeg保存成文件再讀取出來。這個是我比較常處理的,用最少的磁盤空間得到最好的圖片質(zhì)量。

還有是png格式,是一種無損壓縮模式,用的是行程編碼算法,相比jpeg,更加適合存儲幾何特征比較強的圖片。

我們在空間搞笑圖片中常看見的GIF格式圖片,是多幀圖像的集合。我們處理讀取時也要一幀一幀讀。通過調(diào)節(jié)參數(shù)也可以控制顯示快慢。

我們常說的黑白圖像,在計算機中有兩種。一種是位圖模式,是真真切切的非黑即白,這種圖像只有一位深度:0就是純黑,1就是純白。

還有一種圖像叫灰度圖像,在生活中我們常把灰度圖像作為黑白圖像。事實上,灰度圖像有8位深度,(0,0,0,0,0,0,0,0)是純黑,(1,1,1,1,1,1,1,1)是純白,其余介于1至255之間的就是不同深度的灰度圖像。

彩色圖像就是RGB圖像,顧名思義,RED,GREEN,BLUE,這三種色彩疊加組合可以構(gòu)成我們?nèi)搜劭吹降娜魏晤伾?,在計算機處理彩色圖像時,也是通過紅綠藍(lán)三個通道來進行,每個通道又各有八個深度,由此,我們知道,理論上計算機可以構(gòu)成256的三次方種顏色!

肆 色彩空間轉(zhuǎn)換

hsv顏色模型更接近人感覺顏色的方式,H是色相,S是飽和度,V是亮度。

lab色彩空間:L:整張圖的亮度,a和b表示顏色多少,用于編碼顏色。

opencv提供了上百種顏色空間轉(zhuǎn)換方法,opencv做轉(zhuǎn)化時,用到了cvtColor函數(shù)。

該函數(shù)用兩個參數(shù)足以,第一個是圖像名稱,第二個是轉(zhuǎn)換方式。

例如,我已經(jīng)讀入一個函數(shù),

img = cv2.imread(path,way),

其中path是路徑,way是讀入方式,灰度圖,彩色圖還是加載alpha通道。

接著, gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 這就完成了彩色圖像與灰度圖像之間的轉(zhuǎn)化。

其中,cv2.COLOR_BGR2GRAY這個方式,如果轉(zhuǎn)化后還想要csv,就cv2.COLOR_BGR2CSV,如果想變更通道順序,那么cv2.COLOR_BGR2RGB就可以了,很好玩。

圖像縮放用cv2.resize函數(shù),例如變成400*400像素記得寫成cv2.resize(img,(400,400))。同樣如果想x方向縮小直接fx=0.5即可。

此外,圖像反轉(zhuǎn),圖像保存,閾值化處理等也被opencv包裝成了函數(shù),用起來也十分方便。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    625

    瀏覽量

    41214
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376

原文標(biāo)題:淺淺淺淺談opencv

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    手寫圖像模板匹配算法在OpenCV的實現(xiàn)

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板匹配的代碼
    的頭像 發(fā)表于 11-11 10:12 ?24次閱讀
    手寫圖像模板匹配算法在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的實現(xiàn)

    基于OPENCV的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發(fā)板

    攝像頭)1、安裝python3-opencvaptinstallpython3-opencv2、查看攝像頭支持的格式與分辨率root@de
    的頭像 發(fā)表于 11-07 09:03 ?534次閱讀
    基于<b class='flag-5'>OPENCV</b>的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發(fā)板

    Python在AI的應(yīng)用實例

    Python在人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細(xì)探討Python在AI的幾個關(guān)鍵應(yīng)用
    的頭像 發(fā)表于 07-19 17:16 ?873次閱讀

    opencv-pythonopencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?881次閱讀

    嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu編譯OpenCV

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在 Ubuntu 環(huán)境下將 OpenCV 編譯為 X86 架構(gòu)可能更加方便和高效。 通過在主機上編譯并
    發(fā)表于 06-07 09:21

    ELF 1技術(shù)貼|如何在Ubuntu編譯OpenCV

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在Ubuntu環(huán)境下將OpenCV編譯為X86架構(gòu)可能更加方便和高效。通過在主機上編譯并使用X86架構(gòu)
    的頭像 發(fā)表于 05-31 16:41 ?1116次閱讀
    ELF 1技術(shù)貼|如何在Ubuntu<b class='flag-5'>中</b>編譯<b class='flag-5'>OpenCV</b>庫

    STM32MP135如何使用opencv-python或v4l2-ctl打開攝像頭,并保存為圖片?

    行。 但是官方的例程,直接用v4l推送到media上,直接顯示的又是可以的。 請問我該如何使用opencv-python 或v4l2-ctl打開攝像頭,并保存為圖片?
    發(fā)表于 05-30 06:16

    itop-RK3588開發(fā)板機器視覺開發(fā)OpenCV-Python的安裝

    itop-RK3588開發(fā)板機器視覺開發(fā)OpenCV-Python的安裝
    的頭像 發(fā)表于 01-26 15:18 ?4046次閱讀
    itop-RK3588開發(fā)板機器視覺開發(fā)<b class='flag-5'>OpenCV-Python</b>的安裝

    split在python的用法

    split在python的用法 split()是Python中一個非常常用的字符串函數(shù),它能夠根據(jù)指定的分隔符將一個字符串分割成多個子字符串,并返回一個包含這些子字符串的列表。本文將詳細(xì)介紹
    的頭像 發(fā)表于 12-25 15:12 ?1944次閱讀

    Python2與Python3的差異

    Python2,print語句是一個關(guān)鍵字,而在Python3,print函數(shù)被引入,必須使用括號。此外,Python3要求字符串必須使
    的頭像 發(fā)表于 11-23 16:48 ?872次閱讀

    pythontext的用法

    Python的text是一個常見的數(shù)據(jù)類型,它用于存儲和處理文本數(shù)據(jù)。在Python,文本常常被表示為字符串(string),字符串是一系列Unicode字符的有序序列。 在
    的頭像 發(fā)表于 11-23 15:46 ?3246次閱讀

    pycharmpython interpreter怎么設(shè)置

    在PyCharm設(shè)置Python解釋器非常簡單,只需按照以下步驟操作: 打開PyCharm,并打開你的項目。 在菜單欄中選擇"File"(文件),然后選擇"Settings"(設(shè)置)。在
    的頭像 發(fā)表于 11-22 11:08 ?2961次閱讀

    pythonnumber代表什么

    Python,number(數(shù)字)是一種內(nèi)置的數(shù)據(jù)類型,用于表示數(shù)值。Python提供了幾種不同的number類型,分別是整數(shù)(int)、浮點數(shù)(float)、復(fù)數(shù)(complex)和布爾值
    的頭像 發(fā)表于 11-22 09:50 ?1828次閱讀

    Python如何表達(dá)復(fù)數(shù)

    Python,可以使用complex類型來表示和操作復(fù)數(shù)。復(fù)數(shù)是由一個實部和一個虛部組成的數(shù),可以使用下列格式來表示:real + imag*j,其中real是實部,imag是虛部。在
    的頭像 發(fā)表于 11-21 16:50 ?2075次閱讀

    pythontuple的用法

    Python的元組(tuple)是一種不可變的有序集合。與列表(list)類似,元組可以存儲任意類型的數(shù)據(jù),但是元組一旦創(chuàng)建就不能被修改。在Python,元組是使用圓括號進行表示,
    的頭像 發(fā)表于 11-21 16:27 ?895次閱讀