開始說了一些opencv中的一些常用方法。
namedWindow方法
在OpenCV中,namedWindow
函數用于創建一個窗口,并給它指定一個名字。這個函數的基本語法如下:
import cv2cv2.namedWindow('窗口名稱', '標識' )
-
窗口名稱
:其實窗口名稱,其實也是這個窗口的id,方便對其進行操作。 -
標識
,這個其實有一個默認值WINDOW_AUTOSIZE
,用于設置窗口的各種屬性。當然其還有很多值:
-
cv2.WINDOW_NORMAL
: 窗口可改變大小,也是常用的一個窗口。 -
cv2.WINDOW_FULLSCREEN
: 窗口是全屏顯示。 -
cv2.WINDOW_OPENGL
: 打開OpenGL繪圖
但是如果如下寫:
import cv2cv2.namedWindow('窗口', cv2.WINDOW_NORMAL )
窗口只會一閃而逝,所以一般不會單獨時候,后面會有一個整體例子。
resizeWindow 方法
這個方法,可以設置創建好的窗口,具體呈現的大小。
cv2.resizeWindow('窗口名稱', 寬(直接數值),高(直接數值))
窗口名稱必須存在namedWindow方法創建的窗口名字中。
來一個例子:
import cv2
# cv2.namedWindow('窗口名稱', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名稱', 1920, 1080)
imshow 方法
其實前面兩個就算是創建好好窗口,窗口也是一瞬就消失需要一個將這個窗口持續呈現,是所以就有個這個方法。
cv2.imshow('窗口名稱', img)
- 窗口名稱:窗口的名稱,是一個字符串。在調用
cv2.imshow
后,這個窗口會顯示對應的圖像。 img
:要顯示的圖像,通常是一個NumPy數組。這個數組的維度是二維的,第一個維度表示圖像的高度,第二個維度表示寬度。此外,數組的元素應該是8位無符號整數類型,因為OpenCV默認以BGR方式解釋圖像。可以是cv2.imread() 讀取的圖片返回值
import cv2cv2.namedWindow('窗口名稱', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名稱', 1920, 1080)
# 這個地方的0代表的是灰度模式
cv2.imshow('窗口名稱', 0)
但是這樣的,窗口還是會一閃即逝,還需要其它方法。
waitKey 方法
cv2.waitKey(delay=0)
delay
:表示在函數返回之前等待用戶輸入的毫秒數。如果參數為0,則會一直等待用戶輸入;如果參數大于0,則會在指定的時間后自動返回,而不管用戶是否輸入。
這個函數返回一個整數,表示用戶輸入的字符的ASCII碼。如果用戶按下回車鍵(ASCII碼為10),則函數返回13。
import cv2cv2.namedWindow('窗口名稱', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名稱', 1920, 1080)
# 這個地方的0代表的是灰度模式
cv2.imshow('窗口名稱', 0)
# 0 代表一直等到 數值的話,其單位毫秒
key = cv2.waitKey(0)
destroyAllWindows和destroyWindow 方法
這個看名字就知道了就是銷毀窗口。
destroyAllWindows
:銷毀所有的窗口destroyWindow
:銷毀某個的窗口
cv2.destroyAllWindows()cv2.destroyWindow("窗口名稱")
現在來一個整體的例子:
import cv2
cv2.namedWindow('窗口名稱', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名稱', 1920, 1080)
# 這個地方的0代表的是灰度模式
cv2.imshow('窗口名稱', 0)
# 0 代表一直等到 數值的話,其單位毫秒
key = cv2.waitKey(0)
if(key == 'q'):# 這個是銷毀所有窗口# cv2.destroyAllWindows()# 這個是銷毀指定窗口cv2.destroyWindow("窗口名稱")
imread 方法
imread()
用于讀取圖像文件并將其加載到內存中。它接受一個參數,即要讀取的圖像文件的路徑,并返回一個 NumPy 數組,其中包含圖像的像素數據。
cv2.imread(filename[, flags])
filename
是要讀取的圖像文件的路徑。flags
是一個可選參數,用于指定讀取圖像的方式。它可以是以下值之一:cv2.IMREAD_COLOR
:以彩色方式讀取圖像(默認值)。cv2.IMREAD_GRAYSCALE
:以灰度方式讀取圖像。cv2.IMREAD_UNCHANGED
:以原始格式讀取圖像(包括 alpha 通道)。
import cv2
cv2.namedWindow('陰風陣陣', cv2.WINDOW_NORMAL )
cv2.resizeWindow('陰風陣陣', 1092, 514)
img=cv2.imread('1.jpg')
cv2.imshow('陰風陣陣', img)
# 0 代表一直等到 數值的話,其單位毫秒
key = cv2.waitKey(0)
if(key == 'q'):# 這個是銷毀所有窗口# cv2.destroyAllWindows()# 這個是銷毀指定窗口cv2.destroyWindow("陰風陣陣")