1.程序源碼:
import cv2
import numpy as np
doge = cv2.imread('C:\\Users\\Lin Xi\\Desktop\\OpenCV\\doge.jpg',cv2.IMREAD_COLOR)
cv2.imshow('DOGE!,press "q" to exit!',doge)
if cv2.waitKey(0) == ord('q'):
cv2.destroyAllWindows()
2.程序目的:
從指定路徑讀入一張圖片并打印在窗口內(nèi)
3.程序解析:
首先引入cv2和numpy庫,可以直接pip或者去官網(wǎng)下載,日后有空可以詳解環(huán)境搭建問題。
第一個函數(shù):
cv2.imread(filename,flags)
filename:文件的絕對路徑,可以右擊文件屬性查看,注意更改路徑分隔符為兩個反斜杠\\
flags:可選參數(shù),默認(rèn)cv2.IMREAD_COLOR,參數(shù)列表為:
cv2.IMREAD_COLOR():讀入彩色圖像,對應(yīng)數(shù)字1
cv2.IMREAD_GRAYSCALE():以灰度模式讀入圖像,對應(yīng)數(shù)字0
cv2.IMREAD_UNCHANGED : 加載圖像,包括它的Alpha通道,對應(yīng)數(shù)字-1
如果嫌字多,可以用數(shù)字代替,如以灰度模式讀入圖像可表示為:
cv2.imread(filename,0)
函數(shù)返回該圖像
第二個函數(shù):
cv2.imshow(Windowname,img)
創(chuàng)建窗口可以用一系列Window函數(shù)進(jìn)行更加精細(xì)的操作,這里cv2.imshow會默認(rèn)為我們創(chuàng)建一個新窗口
Windowname:窗口名稱,輸入中文可能會亂碼
img:要顯示的圖片
第三個函數(shù):
cv2.waitKey(value)
看似多余,但只執(zhí)行前四行后發(fā)現(xiàn)圖片一閃而過,所以需要此函數(shù)達(dá)到停滯延時(shí)的效果(本質(zhì)是不斷刷新圖像)
value:1.大于零的整形,表示刷新的頻率時(shí)間,單位ms,超過指定時(shí)間返回-1,有按鍵按下則返回按鍵的ASCII碼值。2.小于等于零無限等待,返回-1,直到有鍵盤按下返回按鍵的ASCII碼值。
通常用此函數(shù)作定時(shí)功能,還可以附加判斷,達(dá)到指定按鍵退出的效果,如下實(shí)現(xiàn)按q鍵退出:
if cv2.waitKey(0) == ord('q'):
64位系統(tǒng)為了防止BUG,最好改為
if cv2.waitKey(0) & 0xFF == ord('q'):
第四個函數(shù):
cv2.destroyAllWindows()
As the name suggests,刪除所有建立的窗口
4.執(zhí)行效果
程序效果圖.PNG
正如計(jì)算機(jī)編程中的Hello world!一般,萬里長征的第一步已然邁出,未來還會遙遠(yuǎn)嗎?