OpenCV之cv2.imshow()

一、cv2.imshow()介紹

cv2.imshow()是OpenCV中顯示圖像的主要函數之一。它可以顯示傳遞給它的圖像窗口,或者將圖像作為選定窗口的內容。cv2.imshow()的語法如下:

cv2.imshow(winname, mat)

其中,winname是顯示窗口的名稱,mat是要顯示的圖像。該函數返回值為None。

二、顯示靜態圖像

要顯示靜態圖像,可以使用cv2.imread()函數讀取圖像,然後使用cv2.imshow()函數進行顯示。下面是一個例子:

import cv2

# 讀取圖像
img = cv2.imread('test.jpg')

# 顯示圖像
cv2.imshow('image', img)

# 等待按鍵事件
cv2.waitKey(0)

運行上述代碼,我們可以看到彈出了一個名為”image”的窗口,其中顯示了讀取的圖像。

三、捕捉鍵盤事件

cv2.imshow()函數通常與cv2.waitKey()配合使用。cv2.waitKey()等待鍵盤事件,返回按下按鍵的ASCII碼。

下面的例子演示了如何在按下ESC鍵或q鍵時關閉圖像顯示窗口:

import cv2

# 讀取圖像
img = cv2.imread('test.jpg')

# 顯示圖像
cv2.imshow('image', img)

# 循環等待按鍵事件,直到ESC鍵或q鍵被按下
while True:
    k = cv2.waitKey(0)
    if k == 27 or k == ord('q'):
        break

# 關閉窗口
cv2.destroyAllWindows()

在該例子中,我們首先顯示圖像,並循環等待按鍵事件。如果按下了ESC鍵或q鍵,就跳出循環,關閉顯示窗口。需要注意的是,cv2.waitKey()的參數0表示無限等待,直到按下按鍵。

四、顯示視頻流

除了靜態圖像,cv2.imshow()函數還可以用於顯示實時視頻流。可以使用cv2.VideoCapture()函數打開視頻文件或攝像頭,然後使用cv2.imshow()函數顯示每個幀。

下面是一個讀取並顯示視頻文件的例子:

import cv2

# 打開視頻文件
cap = cv2.VideoCapture('test.mp4')

# 循環顯示每一幀
while cap.isOpened():
    # 讀取一幀
    ret, frame = cap.read()

    # 如果幀讀取失敗,退出循環
    if not ret:
        break

    # 顯示幀
    cv2.imshow('video', frame)

    # 等待按鍵事件,延時10毫秒
    k = cv2.waitKey(10)

    # 如果按下ESC鍵或q鍵,退出循環
    if k == 27 or k == ord('q'):
        break

# 釋放視頻文件和窗口
cap.release()
cv2.destroyAllWindows()

在該例子中,我們首先使用cv2.VideoCapture()函數打開視頻文件,然後循環讀取每個幀並顯示。如果按下ESC鍵或q鍵,就退出循環,釋放視頻文件和顯示窗口。

五、小結

cv2.imshow()是OpenCV中一個非常重要的函數,它可以用於顯示靜態圖像、捕捉鍵盤事件、以及顯示視頻流等。在使用cv2.imshow()函數時,需要注意顯示窗口名稱、圖像文件的讀取、鍵盤事件的等待、視頻流的讀取等方面的問題。

原創文章,作者:YFJMV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372285.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
YFJMV的頭像YFJMV
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相關推薦

  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • Python OpenCV 直線檢測

    本文將介紹在Python OpenCV中進行直線檢測的方法,主要涉及到圖像的邊緣檢測、霍夫變換和繪製直線等操作。 一、邊緣檢測 由於直線檢測是從圖像的邊緣開始的,因此必須先找到圖像…

    編程 2025-04-29
  • Opencv 實現讀取 BMP 圖片

    Opencv 是一個基於 C/C++ 語言的開源計算機視覺庫,可以用於圖像處理、特徵識別、目標跟蹤、機器學習等領域。在圖像處理中,讀取 BMP 圖片是常見操作之一。 一、打開 BM…

    編程 2025-04-27
  • opencv鼠標繪圖

    本文將為您詳細介紹如何使用opencv在原始圖片上進行鼠標繪圖。 一、準備工作 在開始繪製之前,您需要先準備好以下的工作: 1、安裝opencv庫,可以通過pip install …

    編程 2025-04-27
  • 深入探討OpenCV版本

    OpenCV是一個用於計算機視覺應用程序的開源庫。它是由英特爾公司創建的,現已由Willow Garage管理。OpenCV旨在提供一個易於使用的計算機視覺和機器學習基礎架構,以實…

    編程 2025-04-25
  • OpenCV的全面介紹

    OpenCV是一款強大的開源計算機視覺庫,它包含了各種用於圖像和視頻處理,圖像識別和機器學習的函數,它可以用於開發實時的計算機視覺軟件和系統,特別適用於圖像處理、物體識別、人臉識別…

    編程 2025-04-25
  • Opencv CUDA編譯用法介紹

    本文將從多個方面對Opencv CUDA編譯進行詳細的闡述和解讀。通過以下小標題,我們將詳細介紹如何進行編譯。 一、環境搭建 在使用CUDA進行加速之前,需要進行CUDA的環境搭建…

    編程 2025-04-25
  • 詳解OpenCV高斯濾波

    一、高斯濾波的介紹 OpenCV高斯濾波是一種平滑圖像的處理方法,通常用於去除噪聲、模糊化圖像等。它的原理是利用高斯函數進行加權平均,從而減少噪聲的干擾。 在圖像處理中,噪聲是一種…

    編程 2025-04-25
  • Clion配置OpenCV

    Clion是一個功能強大的跨平台集成開發環境,但要開發圖像處理、計算機視覺等相關領域應用,需要將OpenCV集成到Clion中,才能方便地進行開發。本文將介紹如何在Clion中配置…

    編程 2025-04-24
  • Opencv圖像拼接

    一、拼接方法 Opencv圖像拼接方法主要有兩種,分別是水平拼接和垂直拼接。 水平拼接是將多張圖像在水平方向連接在一起,最終形成一張橫向拼接的長圖。垂直拼接是將多張圖像在垂直方向連…

    編程 2025-04-24

發表回復

登錄後才能評論