【第一節(jié)】OpenCV初識
目標
????? 在這里你將學(xué)會怎樣讀入一幅圖像,怎樣顯示一幅圖像,以及如何保存一
????????幅圖像
????? 你將要學(xué)習(xí)如下函數(shù):CV2.imread(),CV2.imshow(),CV2.imwrite()
????? 如果你愿意的話,我會叫你如何使用 Matplotlib 顯示一幅圖片
1、讀入圖像
使用函數(shù)CV2.imread()讀入圖像。這幅圖像應(yīng)該在此程序的工作路徑,
或者給函數(shù)提供完整路徑,
第二個參數(shù)是要告訴函數(shù)應(yīng)該如何讀取這幅圖片。
????● CV2.IMREAD COLOR:讀入一副彩色圖像。圖像的透明度會被忽略,
????????這是默認參數(shù)。
????● CV2.IMREAD_ GRAYSCALE:以灰度模式讀入圖像
????????CV2.IMREAD_ UNCHANGED:讀入-幅圖像,并且包括圖像的alpha通道
注意:首次使用opencv需要安裝一下,指令如下:
警告:就算圖像路徑是錯的,OpenCV也不會提醒你,但當(dāng)你使用命令print(img)時得到的結(jié)果時None。
2、顯示圖像
使用函數(shù)CV2.imshow()顯示圖像。窗口會自動調(diào)整為圖像大小。第一個參數(shù)是窗口的名字,其次才是我們的圖像。你可以創(chuàng)建多個窗口,只要你喜歡,但是必須給他們不同的名字
窗口截圖顯示會是下面的樣子:

???????CV2.waitKey()是一個鍵盤綁定函數(shù)。需要指出的是它的時間尺度是毫秒級。函數(shù)等待特定的幾毫秒,看是否有鍵盤輸入。特定的幾毫秒之內(nèi),如果按下任意鍵,這個函數(shù)會返回按鍵ASCII碼值,程序?qū)^續(xù)運行。如果沒有鍵盤輸入,返回值為-1,如果我們設(shè)置這個函數(shù)的參數(shù)為0,那它將會無限期的等待鍵盤輸入。它也可以被用來檢測特定鍵是否被按下,例如按鍵a是否被按下,這個后面我們會接著討論。
??????CV2.destroyAllWindows(可以輕易刪除任何我們建立的窗口。如果你想刪除特定的窗口可以使用CV2 .destroyWindow(),在括號內(nèi)輸入你想刪除的窗口名。
建議:一種特殊的情況是,你也可以先創(chuàng)建一個窗口,之后再加載圖像。這種情況下,你可以決定窗口是否可以調(diào)整大小。使用到的函數(shù)是CV2.namedWindow()。初始設(shè)定函數(shù)標簽是CV2.WINDOW_ AUTOSIZE。 但是如果你把標簽改成CV2.WINDOW_ NORMAL,你就可以調(diào)整窗口大小了。當(dāng)圖像維度太大,或者要添加軌跡條時,調(diào)整窗口大小將會很有用
3、保存圖像
?????使用函數(shù)CV2.imwrite()來保存一個圖像。首先需要一個文件名,之后才是你要保存的圖像。
4、總結(jié)一下
下面的程序?qū)虞d一個灰度圖,顯示圖片,按下“s”鍵保存后退出,或者按下ESC鍵退出不保存。
附:使用Matplotlib
????????Matplotib是python的一個繪圖庫,里頭有各種各樣的繪圖方法。之后會陸續(xù)了解到?,F(xiàn)在,你可以學(xué)習(xí)怎樣用Matplotib顯示圖像。你可以放大圖像,保存它等等。.
安裝指令: pip install matplotlib
顯示窗口截屏如下:
