臨安做網(wǎng)站的公司有哪些搜狗網(wǎng)
OpenCV學(xué)習(xí)之cv2.imshow()函數(shù)
一、簡介
cv2.imshow
是 OpenCV 庫中用于顯示圖像的基本函數(shù)之一。在圖像處理和計(jì)算機(jī)視覺的過程中,使用該函數(shù)可以快速預(yù)覽處理后的圖像,便于調(diào)試和結(jié)果展示。
二、基本語法
cv2.imshow('WindowName', Imgmat)
三、參數(shù)說明
WindowName
(str): 窗口名稱,用于唯一標(biāo)識(shí)一個(gè)窗口。Imgmat
(numpy.ndarray): 要顯示的圖像,通常是一個(gè) numpy 數(shù)組。- ?????????一定要注意該處的圖像數(shù)據(jù)
不能是浮點(diǎn)數(shù)
像素值,否則imshow函數(shù)將進(jìn)行數(shù)據(jù)截?cái)?/code>將
大于1的數(shù)都截?cái)辔?
,導(dǎo)致圖像顯示錯(cuò)誤。 - 為什么要提這個(gè)?這是因?yàn)槲覀冏鰣D像處理經(jīng)常會(huì)轉(zhuǎn)換成浮點(diǎn)數(shù)進(jìn)行計(jì)算
- ?????????一定要注意該處的圖像數(shù)據(jù)
四、示例
示例 1: 顯示一張圖像
import cv2# 讀取圖像,讀者需更改路徑
image = cv2.imread('2015.jpg')# 顯示圖像
cv2.imshow('Image Window', image)# 等待用戶按鍵(這里的 0 表示無限等待)
cv2.waitKey(0)# 銷毀所有窗口
cv2.destroyAllWindows()
示例 2: 錯(cuò)誤顯示一張圖像
import cv2
import numpy as np# 讀取圖像,讀者需更改路徑
image = cv2.imread('2015.jpg')# 顯示圖像,這里會(huì)顯示很奇怪,因?yàn)榘l(fā)生了數(shù)據(jù)截?cái)?#xff0c;在參數(shù)說明部分已經(jīng)做了說明
cv2.imshow('Image Window', image.astype(np.float64))# 等待用戶按鍵(這里的 0 表示無限等待)
cv2.waitKey(0)# 銷毀所有窗口
cv2.destroyAllWindows()
示例 3: 實(shí)時(shí)顯示視頻幀
import cv2# 打開攝像頭
cap = cv2.VideoCapture(0)while True:# 逐幀捕獲ret, frame = cap.read()# 顯示幀cv2.imshow('Video Frame', frame)# 按下 'q' 鍵退出循環(huán)if cv2.waitKey(1) & 0xFF == ord('q'):break# 釋放攝像頭
cap.release()# 銷毀所有窗口
cv2.destroyAllWindows()
五、非常實(shí)用的顯示技巧
示例 1: 橫向同時(shí)顯示多張圖片(橫向拼接)
cv2.imshow('Image Window', np.hstack((image,image)))
示例 2: 縱向同時(shí)顯示多張圖片(縱向拼接)
cv2.imshow('Image Window', np.vstack((image,image)))
示例 3: 以矩陣形式同時(shí)顯示多張圖片(雙向拼接)
cv2.imshow('Image Window', np.vstack((np.hstack((image,image)),np.hstack((image,image)))))