在 Opencv 中,如果想要加載展示一張圖片,有以下幾個(gè)步驟:
- 讀取圖像:根據(jù)指定路徑讀取圖像,將圖像轉(zhuǎn)化為數(shù)字矩陣形式;
- 創(chuàng)建窗口:創(chuàng)建圖像顯示窗口,命名窗口名稱;
- 顯示圖像:通過窗口以數(shù)字矩陣形式展示圖像;
- 釋放內(nèi)存:展示完成,釋放內(nèi)存。
四個(gè)步驟
讀取圖像
OpenCV 提供函數(shù) cv2.imread()
讀取圖像,該函數(shù)的一般形式如下:
image_arr = cv2.imread(filename, flags)
-
filename
:要讀取的圖像文件路徑; -
flags
:可選參數(shù),用于指定如何讀取圖像:-
cv2.IMREAD_COLOR
:默認(rèn)值,讀取 RGB 三通道圖像; -
cv2.IMREAD_GRAYSCALE
:讀取圖像,并調(diào)整為單通道灰度圖像; -
cv2.IMREAD_UNCHANGED
:讀取圖像,保持原始所有通道信息; - 等等
-
讀取圖像后,將以數(shù)字矩陣的形式保存在內(nèi)存中 image_arr
變量中。這個(gè)數(shù)字矩陣包含了圖像的像素信息,可以進(jìn)行各種圖像處理和分析操作,比如后續(xù)博文會(huì)介紹到圖像轉(zhuǎn)換、濾波、邊緣檢測(cè)等。
e . g . c o d e . e.g.code. e.g.code. 讀取一張圖像以及其灰度圖矩陣信息:
import cv2
image_arr_1 = cv2.imread("universe.jpg")
image_arr_2 = cv2.imread("universe.jpg", cv2.IMREAD_GRAYSCALE)
print("原圖矩陣為:", image_arr_1)
print("灰度圖矩陣為:", image_arr_2)
創(chuàng)建窗口
OpenCV 提供函數(shù) cv2.namedWindow()
來創(chuàng)建一個(gè)展示窗口并賦予名稱,該函數(shù)的一般形式如下:
cv2.namedWindow('WindowName', WindowSize)
-
WindowName
:指定窗口名稱; -
WindowSize
:可選參數(shù),指定窗口大?。?-
WINDOW_AUTOSIZE
: 默認(rèn)值,窗口大小自適應(yīng)內(nèi)容; -
WINDOW_NORMAL
: 窗口正常顯示,用戶可以調(diào)整窗口大??; -
WINDOW_KEEPRATIO
: 保持圖像的寬高比; - 等等
-
創(chuàng)建窗口后,我們將在顯示圖像時(shí)使用該窗口進(jìn)行展示;
e . g . c o d e e.g.code e.g.code
# 創(chuàng)建一個(gè)名為 "MyWindow" 的窗口,用戶可以調(diào)整窗口大小
cv2.namedWindow('MyWindow', cv2.WINDOW_NORMAL)
顯示圖像
OpenCV 提供的 imshow()
函數(shù)用來顯示圖像。該函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)為窗口名稱,第二個(gè)參數(shù)為要顯示的圖像數(shù)字矩陣。
到此,理論上我們已經(jīng)可以打開一個(gè)名為 Image Of Universe 的窗口并展示我們的圖像 universe.jpg,但是我們還缺少兩行代碼;
import cv2
# 讀取圖像
image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
# 創(chuàng)建展示窗口
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
# 展示圖像
cv2.imshow('Image Of Universe', image_arr)
# 未完待續(xù)
# 缺少設(shè)定窗口展示時(shí)間
# 缺少釋放內(nèi)存資源代碼
首先,缺少設(shè)定窗口展示時(shí)間。Opencv 規(guī)定,需要設(shè)定窗口展示的時(shí)間,否則將會(huì)一閃而過。設(shè)定函數(shù)為 waitKey
,單位為毫秒;
cv2.waitKey(1000) # 代表窗口展示時(shí)間為1s
cv2.waitKey(0) # 窗口將一直展示
釋放內(nèi)存
最后,展示完成后,通過函數(shù) destoryAllWindows()
釋放內(nèi)存;
cv2.destoryAllWindows()
完整代碼
綜上,完整代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-823426.html
import cv2
image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
cv2.imshow('Image Of Universe', image_arr)
key = cv2.waitKey(0)
if key == ord('q'):
print("退出展示窗口")
cv2.destroyAllWindows()
定稿:2024/1/24
版本:第三版
如有任何問題,請(qǐng)留言或私信,感謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-823426.html
到了這里,關(guān)于【OpenCV】P2 程序加載顯示圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!