




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章:OpenCV基本使用主講:李紅蕾復(fù)習(xí)分享時間OpenCV基本操作使用4.1圖像讀取4.2圖像轉(zhuǎn)換4.3色彩分離與合并04imread(filename[,flags])→retval
4.1
圖像讀取
OpenCV的imread()用于讀取圖像:函數(shù)說明:(1)retval是讀取到的圖像對象,在OpenCV中是Mat類型;(2)參數(shù)filename是將要讀取的圖像文件名;函數(shù)imread()支持大部分圖像格式,常用的包括位圖(*.bmp、*.dib)、JPEG圖像(*.jpg、*.jpeg)、網(wǎng)絡(luò)圖形(*.png)、TIFF文件(*.tiff、*.tif)等(3)flag是讀取標記,可省略,不同標記值代表含義不同,如-1表示讀取圖像格式不變,0表示單通道的灰度圖像,1表示三通道BGR圖像,為默認值。4.1
圖像讀取在實際編碼過程中,相較于直接使用數(shù)字方式,大家更提倡使用OpenCV常量的方式。imread()函數(shù)的flag參數(shù)取值的常量表示如表所示im=cv2.imread(“cat.jpg”)#讀入圖像文件
print(im.shape)#(200,200,3)
print(im.size)#120000
print(im.dtype)#uint8
4.1
圖像讀取
獲取圖像的屬性信息使用imread()函數(shù)獲取圖像對象后,可以繼續(xù)獲取圖像的屬性信息,包括圖像形狀(shape)、像素數(shù)(size)、數(shù)據(jù)類型(dtype)等。解釋:shape屬性返回圖像的行數(shù)、列數(shù)和通道數(shù)。size屬性返回圖像的像素數(shù)量。dtype屬性返回的是圖像的數(shù)據(jù)類型。4.1
圖像讀取【練習(xí)1】采用不同的flag讀取圖片,查看各自的形狀、尺寸和數(shù)據(jù)類型結(jié)果:defaut(1026,1024,3)3151872uint8bgrim(1026,1024,3)3151872uint8unchange(1026,1024,4)4202496uint8grayim(1026,1024)1050624uint8完成實驗報告練習(xí)1imshow(winname,mat)→None
imshow("Window1",cv2.imread("cat.jpg"))
4.2
圖像顯示
使用imshow()函數(shù)可以顯示圖像參數(shù)說明:None表示函數(shù)沒有返回值;winname是窗口名稱。如“Window1”。mat是圖像對象。提示:如果要將窗口創(chuàng)建和顯示分離,可以在使用imshow()函數(shù)之前,使用函數(shù)namedWindow()提前創(chuàng)建窗口。此處在imshow()語句前添加dWindow("Window1"),效果是一樣的。例如,在窗口中顯示圖像cat.jpg的語句為:destroyWindow(winname)→None
cv2.waitKey(5000)
cv2.destroyWindow("Window1")
4.2
圖像顯示
使用destroyWindow()可以銷毀圖像窗口參數(shù)說明:None表示函數(shù)沒有返回值;winname是要銷毀的窗口名稱。提示:在實際使用該函數(shù)通常搭配waitKey()函數(shù)使用。waitKey()用于監(jiān)聽按鍵事件,當監(jiān)聽到按鍵被按下,則繼續(xù)執(zhí)行程序,或者設(shè)置等待時間。如果要直接銷毀所有OpenCV的創(chuàng)建的窗口,則使用destroyAllWindows()函數(shù)。如等待5秒后銷毀窗口,代碼為:4.2
圖像顯示
waitKey()和ASCII碼表:waitKey(waittime)→key
#key對應(yīng)ASCII碼(美國信息交換標準代碼)whileTrue:
ifcv2.waitKey(0)==27:
cv2.destroyAllWindows()
break監(jiān)聽特定按鍵的實例:4.2圖像顯示【練習(xí)2】創(chuàng)建一個窗口“win”,在該窗口中默認顯示“cat.jpg”.持續(xù)監(jiān)聽鍵盤,如果監(jiān)聽到空格鍵(key==32),則顯示圖像在cat.jpg和little.png之間切換。如果監(jiān)聽到ESC(key==27),則銷毀窗口。完成實驗報告練習(xí)2
imwrite(filename,img[,params])→retval
cv2.imwrite(“l(fā)ena.jpg",cv2.imread("cat.jpg"))
4.3
圖像保存
imwrite()函數(shù)表示保存圖片到本地參數(shù)說明:(1)retval表示返回保存圖像對象,為True或False;(2)參數(shù)filename是待保存文件地址的完整路徑,包含文件擴展名;(3)img是被保存的圖像對象;(4)params是可選的保存參數(shù);如將讀出的cat.jpg文件保存為lena.jpg,語句為:4.1
圖像讀取【例】讀取圖片cat.jpg并顯示,等待按鍵后執(zhí)行窗口銷毀、圖像數(shù)據(jù)打印,并重新將圖像保存為cat1.jpg。完成實驗報告練習(xí)3
4.1
圖像讀取運行結(jié)果分析:首先讀取到的圖像顯示出來。執(zhí)行到“cv2.waitKey()”開始等待,此時按下任意按鍵,圖像窗口會關(guān)閉。執(zhí)行結(jié)果窗口打印出圖像數(shù)據(jù)。圖像輸出數(shù)據(jù)片段如圖從圖中可以看出輸出的像素是3個元素的數(shù)組。需要注意的是,OpenCV默認讀取的三通道圖像為BGR格式BGR復(fù)習(xí)1.
OpenCV讀取圖像的函數(shù)是?A
open()Bimread()Cload()Dimopen()2.OpenCV保存圖像的函數(shù)是?A
save()Bimsave()Cimwrite()write()3.
cv2.waitKey無限等待鍵盤按下事件的參數(shù)是?A
cv2.waitKey(5000)Bcv2.waitKey(-1)Ccv2.waitKey(1)Dcv2.waitKey(0)im=cv2.imread("cat.jpg",cv2.IMREAD_GRAYSCALE)
4.2
圖像轉(zhuǎn)換(1)
轉(zhuǎn)灰度圖像圖像處理過程中,為了減少減少數(shù)據(jù)量,提高計算效率,經(jīng)常需要將彩色圖轉(zhuǎn)換為灰度圖或二值圖像。方法一:以灰度圖的形式讀取圖片,直接將imread()函數(shù)的第2個參數(shù)設(shè)置為cv2.IMREAD_GRAYSCALE或0即可,語句為:im1=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
4.2
圖像轉(zhuǎn)換4.2.1轉(zhuǎn)灰度圖像OpenCV也專門提供了cvtColor(),用于不同顏色模式轉(zhuǎn)換的函數(shù),函數(shù)定義為:cvtColor(src,code[,dst[,dstCn]])→dst
其中:(1)
dst:表示轉(zhuǎn)換后的目標圖像;(2)
src:要轉(zhuǎn)換的原始圖像;(3)
code:指定顏色空間轉(zhuǎn)換類型編碼;(4)
dstCn:表示目標圖像的通道數(shù),默認為None,即保持原圖像的通道數(shù)。例如:將前面彩色圖像轉(zhuǎn)為灰度圖像,通過該函數(shù)實現(xiàn),將code參數(shù)設(shè)置為cv2.COLOR_BGR2GRAY4.2
圖像轉(zhuǎn)換常用cvtColor()的code參數(shù)如表所示:4.2
圖像轉(zhuǎn)換【例2.2】以默認方式讀取圖片cat.jpg,將圖像轉(zhuǎn)為灰度圖,比較原始圖像與灰度圖的區(qū)別。完成實驗報告練習(xí)4
4.2
圖像轉(zhuǎn)換代碼分析:(1)OpenCV默認按照BGR的模式讀取圖像;(2)
通過cvtColor()函數(shù)轉(zhuǎn)變?yōu)镽GB模式;(3)
轉(zhuǎn)變?yōu)閱瓮ǖ赖幕叶葓D模式。從圖中可以看出,雖然BGR轉(zhuǎn)變?yōu)镽GB,但imshow()函數(shù)仍然按照B-G-R的通道順序顯示圖像,形成了通道錯位。所以,RGB格式圖像在色彩上出現(xiàn)了明顯的變化,原來的R通道顯示為B通道,而原來的B通道則顯示為R通道。4.2
圖像轉(zhuǎn)換
4.2.2轉(zhuǎn)二值圖像二值圖像是只有“黑”和“白”兩種顏色的圖像,將原始圖像轉(zhuǎn)變?yōu)槎祱D像的基本原理是:設(shè)置一個閾值,將小于閾值的像素值改為0,大于閾值的像素值改為255。OpenCV的threshold()函數(shù)可以方便地實現(xiàn)二值圖像轉(zhuǎn)換。threshold函數(shù)定義threshold(src,thresh,maxval,type[,dst])→retval,dst
其中:src是原圖像對象,thresh表示中間閾值,可以任意設(shè)置,范圍在0到255之間。maxval是最大閾值,設(shè)置為255。type是閾值算法類型,type設(shè)置為0,表示常規(guī)的閾值算法。dst是結(jié)果數(shù)據(jù)圖像,retval是閾值。4.2
圖像轉(zhuǎn)換【例2.3】以灰度圖的方式讀取圖片cat.jpg,將灰度圖轉(zhuǎn)為二值圖并顯示,比較灰度圖與二值圖的區(qū)別。完成實驗報告練習(xí)5
4.2
圖像轉(zhuǎn)換結(jié)果分析:采用了NumPy的hstack()函數(shù)對圖像進行橫向拼接的,將兩個圖片顯示在同一個窗口中。hstack()函數(shù)可以對相同形狀的圖像進行橫向拼接,縱向拼接要使用vstack()函數(shù)。4.3色彩分離與合并
OpenCV可以對圖像進行色彩的分離與合并,其中split()函數(shù)可用于拆分圖像的通道,merge()用于通道合并。split()函數(shù)定義為:split(m[,mv])→mv
式中,m是多通道數(shù)組,mv是通道矢量。如拆分1個BGR圖像,可使用語句為:b,g,r=cv2.split(im)
提示:OpenCV圖像通道排序順序是“藍色B-綠色G-紅色R”,并非習(xí)慣上認為的“紅色R-綠色G-藍色B”。同時,拆分后的圖像數(shù)據(jù)的維數(shù)會發(fā)生變化,不再是三維數(shù)組,而是二維數(shù)組,每個元素表示像素在拆分通道上的值。4.3色彩分離與合并
merge()用于通道合并,函數(shù)定義為:merge(mv[,dst])→dst
其中:dst是目標圖像,mv是通道矢量。如要將通道b、g、r合并為BGR圖像為newim=cv2.merge([b,g,r])
4.3色彩分離與合并
【例2.4】將BGR圖像lena.jpg進行通道拆分,再將通過順序變化后合并成新圖像完成實驗報告練習(xí)6
4.3色彩分離與合并
代碼分析:(1)首先通過split()方法將RGB圖像cat.jpg
拆分成b、g和r通道(2)使用merge()函數(shù)將3個通道錯序合并;(3)最后通過NumPy的拼接函數(shù)對結(jié)果分別進行拼接顯示。從效果圖中能明顯看到通道錯序后的變化,圖像從暖色調(diào)變成了冷色調(diào)。
NumPy與OpenCV互轉(zhuǎn)NumPy
to
OpenCV由于OpenCV是基于Numpy,所以不需要額外的轉(zhuǎn)換函數(shù),就可以直接被OpenCV使用。#【案例】使用numpy生成3個形狀為(200,200)的隨機矩陣,并使用opencv合并顯示。
importcv2
importnumpyasnp
b=np.random.randint(0,255,(200,200),dtype=np.uint8)
g=np.random.randint(0,255,(200,200),dtype=np.uint8)
r=np.random.randint(0,255,(200,200),dtype=np.uint8)
im=cv2.merge((b,g,r))
cv2.imshow("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程施工的重點和難點及保證措施
- 【中考模擬】2025年江蘇省鎮(zhèn)江市第三中學(xué)數(shù)學(xué)中考練習(xí)卷(含解析)
- 斷橋鋁窗安裝現(xiàn)場監(jiān)督質(zhì)量保證措施
- 十四五規(guī)劃房地產(chǎn)調(diào)控心得體會
- 危重患者轉(zhuǎn)運及交接操作流程他
- 小學(xué)合唱社團藝術(shù)交流計劃
- 民用建筑施工進度計劃
- 成人教育教育信息化能力提升培訓(xùn)心得體會
- 以延吉市XX中學(xué)為例剖析高中化學(xué)習(xí)題課教學(xué)現(xiàn)狀與提升路徑
- 以市場為導(dǎo)向:中國美術(shù)學(xué)院藝術(shù)設(shè)計職業(yè)技術(shù)學(xué)院專業(yè)設(shè)置變革與實踐
- GB/T 13323-2009光學(xué)制圖
- GB/T 11177-1989無機膠粘劑套接壓縮剪切強度試驗方法
- 鈷領(lǐng)域:華友鈷業(yè)企業(yè)組織結(jié)構(gòu)及部門職責(zé)
- 內(nèi)容參考zipc教程
- FZ/T 43022-2011莨綢工藝飾品
- 基金投資管理系統(tǒng)O32用戶手冊-股指期貨套保系統(tǒng)
- 機械原理課程設(shè)計-自動打印機設(shè)計說明書
- 冰山模型提出者麥克利蘭教授6族勝任力分析模型
- 建設(shè)工程消防設(shè)計審查申報表
- 江西省中考語文備考及答題技巧——語文考點及答題策略-人教版初中九年級全冊語文素材
- 成立生物安全委員會及工作制度管理辦法和職責(zé)
評論
0/150
提交評論