最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于Python的Opencv入門教程(P2.項目結(jié)構(gòu)的最后搭建以及實現(xiàn)顯示圖片)

2022-01-08 15:13 作者:閑予1217  | 我要投稿

書接上回(doge)

搭建OpenCV項目結(jié)構(gòu)

在進(jìn)入正式敲代碼前,我們先把我們所需的圖片下載下來。

下載到與你的python項目同一個文件夾里(圖片必須在與代碼文件放在同一個文件夾里如下圖)

這是在Pycharm的顯示效果
這是在windows里的顯示效果

在本教程中,我們將創(chuàng)建兩個Python腳本來幫助您學(xué)習(xí)OpenCV基礎(chǔ)知識:


我們的第一個腳本,opencv_tutorial_01。py將使用電影《羞羞的鐵拳》(ShengTeng.png)中的圖像介紹基本的圖像處理操作。

從這里開始,opencv_tutorial_02。py將向您展示如何使用這些圖像處理構(gòu)建塊來創(chuàng)建OpenCV應(yīng)用程序,以計算俄羅斯方塊圖像(tetris_blocks.png)中對象的數(shù)量。

完成以上步驟,我們的項目環(huán)境以及結(jié)構(gòu)就基本完成了!(終于要敲代碼了)

加載和顯示圖像信息

使用Python學(xué)習(xí)OpenCV基礎(chǔ)知識始于加載和顯示圖像——這是一個只需要幾行代碼的簡單過程。

讓我們首先打開opencv_教程_01。在Pycharm的空白項目中先復(fù)制上以下代碼:?

此處的第_行是指在OpenCV中顯示出來的結(jié)果

在第3行和第4行中,我們同時導(dǎo)入imutils和CV2。CV2包是OpenCV,是用于影像處里的函數(shù)庫;imutils包是一系列的便利函數(shù)。

現(xiàn)在,通過導(dǎo)入,我們已經(jīng)擁有了所需的軟件,讓我們將圖像加載并顯示出來。

要加載我們的羞羞的鐵拳的圖片,我們稱之為CV2.imread(“ShengTeng.png”)。如第7行所示,我們將結(jié)果分配給圖像。我們的圖像實際上只是一個NumPy列表。

在本腳本的后面,我們將需要高度和寬度。所以在第8行,我稱之為image.shape以提取高度、寬度和深度。

高度先于寬度似乎令人困惑,但請這樣想:?

  • 我們用行的#x列#來描述矩陣

  • 行數(shù)是我們的高度

  • 列數(shù)就是我們的寬度?

因此,表示為NumPy列表(多維度列表)的圖像的尺寸實際上表示為(高度、寬度、深度)。

深度是頻道數(shù)-在我們的例子中,這是三個,因為我們使用三個顏色通道:藍(lán)色、綠色和紅色。

第10行顯示的打印命令將向終端輸出值:

為了使用OpenCV在屏幕上顯示圖像,我們使用CV2。第12行的CV2.imshow("Image", image)。下一行等待按鍵(第13行)。這一點(diǎn)很重要,否則圖像的顯示和消失速度甚至比我們看到圖像的速度還要快。


注意:您需要實際單擊OpenCV打開的活動窗口,然后按鍵盤上的鍵來推進(jìn)腳本。OpenCV無法監(jiān)控終端的輸入,因此,如果您在終端中按下一個鍵,OpenCV將不會注意到。同樣,您需要單擊屏幕上活動的OpenCV窗口,然后按鍵盤上的一個鍵。?

訪問單個像素?

頂部:灰度梯度,其中較亮的像素接近255,較暗的像素接近0。底部:RGB維恩圖,其中較亮的像素更靠近中心。


首先,你可能會問:

什么是像素?

所有圖像都由像素組成,像素是圖像的原始構(gòu)建塊。圖像由網(wǎng)格中的像素組成。1226 x866圖像有1226列(寬度)和866行(高度)。具有這些尺寸的圖像中有1226*866=1061716像素。

灰度圖像中的每個像素都有一個表示灰度陰影的值。在OpenCV中,有256種灰度-從0到255。因此,灰度圖像將具有與每個像素相關(guān)聯(lián)的灰度值。

彩色圖像中的像素具有附加信息。在了解圖像處理后,您很快就會熟悉幾種顏色空間。為了簡單起見,我們只考慮RGB顏色空間。

在OpenCV中,RGB(紅、綠、藍(lán))顏色空間中的彩色圖像具有與每個像素相關(guān)聯(lián)的三元組:(B、G、R)。

請注意,排序是BGR而不是RGB。這是因為當(dāng)OpenCV在許多年前首次開發(fā)時,標(biāo)準(zhǔn)是BGR訂購。多年來,該標(biāo)準(zhǔn)現(xiàn)已成為RGB,但OpenCV仍保持這種“傳統(tǒng)”BGR排序,以確保沒有現(xiàn)有的代碼中斷。

BGR 3元組中的每個值的范圍為[0~255]。OpenCV中RGB圖像中的每個像素有多少種顏色?這很簡單:256*256*256=16777216。

現(xiàn)在我們已經(jīng)確切地知道像素是什么,讓我們看看如何檢索圖像中單個像素的值:?

如上所示,我們的圖像尺寸是寬度=1226,高度=866,深度=3。我們可以通過指定坐標(biāo)來訪問數(shù)組中的單個像素值,只要它們在最大寬度和高度范圍內(nèi)。

代碼image[100,50]從位于x=50和y=100的像素中產(chǎn)生一個3元組的BGR值(同樣,請記住,高度是行數(shù),寬度是列數(shù)-現(xiàn)在請花一秒鐘時間讓自己相信這是真的)。如上所述,OpenCV以BGR順序存儲圖像(例如,與Matplotlib不同)。查看為第16行的像素提取顏色通道值有多簡單。

結(jié)果像素值顯示在終端上:

備注

  1. 函數(shù):每種編程語言中,都需要函數(shù)的參與,python同樣也不例外。函數(shù)是集成的子程序,是算法實現(xiàn)的最小方法單位,是完成基本操作的手段的集合。編程中能夠靈活應(yīng)用函數(shù),提高程序設(shè)計的簡單化;實現(xiàn)代碼應(yīng)用的復(fù)用化;提升代碼閱讀的清晰化;加強(qiáng)代碼開發(fā)的強(qiáng)健化;加快代碼開發(fā)的效率化;增強(qiáng)團(tuán)隊開發(fā)的便利化;降低程序理解的復(fù)雜化;減少代碼存儲的減少化。總之,函數(shù)就是為實現(xiàn)功能或操作的獨(dú)立功能塊,可以返回也可以不返回值,可以返回一個值,可以返回多個值等。


基于Python的Opencv入門教程(P2.項目結(jié)構(gòu)的最后搭建以及實現(xiàn)顯示圖片)的評論 (共 條)

分享到微博請遵守國家法律
开封县| 广河县| 张掖市| 抚顺县| 天峨县| 廉江市| 民丰县| 册亨县| 兴文县| 汕头市| 连城县| 土默特右旗| 内江市| 辰溪县| 内乡县| 仪征市| 云安县| 仁寿县| 大石桥市| 维西| 增城市| 库尔勒市| 罗定市| 宕昌县| 洞口县| 本溪市| 郓城县| 阜城县| 贞丰县| 聂拉木县| 会昌县| 阜新市| 县级市| 大宁县| 黄平县| 石景山区| 慈利县| 安国市| 樟树市| 泰宁县| 大厂|