欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用OpenCV實(shí)現(xiàn)讀取和顯示圖像與視頻

 更新時間:2024年11月03日 08:43:01   作者:燕鵬01  
OpenCV 是一個強(qiáng)大的計算機(jī)視覺庫,廣泛應(yīng)用于圖像處理和視頻處理等領(lǐng)域,本文將詳細(xì)介紹如何使用 OpenCV 在 Python 中讀取和顯示圖像以及視頻,希望對大家有所幫助

概述

OpenCV 是一個強(qiáng)大的計算機(jī)視覺庫,廣泛應(yīng)用于圖像處理和視頻處理等領(lǐng)域。本文將詳細(xì)介紹如何使用 OpenCV 在 Python 中讀取和顯示圖像以及視頻,并通過具體的代碼示例來展示整個過程。

環(huán)境準(zhǔn)備

在開始之前,請確保已經(jīng)安裝了 OpenCV 庫。如果沒有安裝,可以通過以下命令進(jìn)行安裝:

pip install opencv-python

完整代碼

import cv2


def read_img():
    """
    讀取圖片
    :return:
    """
    img = cv2.imread(r'./resources/lena.jpeg')
    cv2.imshow('lena img', img)
    cv2.waitKey(0)


def read_video():
    """
    讀取視頻/攝像頭
    :return:
    """
    # 視頻路徑為獲取資源,id序號則為攝像頭id,0為默認(rèn)第一個攝像頭id
    cap = cv2.VideoCapture(r'./resources/video.mp4')
    # cap = cv2.VideoCapture(0)
    # cap propId 0-18
    cap.set(3, 800)    # 3為寬
    cap.set(4, 600)  # 4為高
    cap.set(10, 5)  # 10為亮度

    while True:
        success, img = cap.read()
        if success:
            cv2.imshow('video', img)
        else:
            break

        if cv2.waitKey(1) & 0xFF == ord('q'):
            # 有按鍵則返回按鍵ASCII碼,無按鍵則返回-1
            # 取按鍵返回ASCII碼二進(jìn)制后8位,為按鍵'q'退出循環(huán)
            break

    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    # read_img()
    read_video()

示例代碼詳解

1. 讀取和顯示圖像

import cv2

def read_img():
    """
    讀取圖片
    :return:
    """
    img = cv2.imread(r'./resources/lena.jpeg')
    cv2.imshow('lena img', img)
    cv2.waitKey(0)

讀取圖像:

img = cv2.imread(r'./resources/lena.jpeg')

使用 cv2.imread() 函數(shù)讀取圖像文件。路徑使用原始字符串(r'...')以避免轉(zhuǎn)義字符的問題。

顯示圖像:

cv2.imshow('lena img', img)
cv2.waitKey(0)

使用 cv2.imshow() 函數(shù)顯示圖像。第一個參數(shù)是窗口名稱,第二個參數(shù)是要顯示的圖像。

cv2.waitKey(0) 使程序等待用戶按鍵后退出。0 表示無限期等待。

2. 讀取和顯示視頻

def read_video():
    """
    讀取視頻/攝像頭
    :return:
    """
    # 視頻路徑為獲取資源,id序號則為攝像頭id,0為默認(rèn)第一個攝像頭id
    cap = cv2.VideoCapture(r'./resources/video.mp4')
    # cap = cv2.VideoCapture(0)
    # cap propId 0-18
    cap.set(3, 800)    # 3為寬
    cap.set(4, 600)    # 4為高
    cap.set(10, 5)     # 10為亮度

    while True:
        success, img = cap.read()
        if success:
            cv2.imshow('video', img)
        else:
            break

        if cv2.waitKey(1) & 0xFF == ord('q'):
            # 有按鍵則返回按鍵ASCII碼,無按鍵則返回-1
            # 取按鍵返回ASCII碼二進(jìn)制后8位,為按鍵'q'退出循環(huán)
            break

    cap.release()
    cv2.destroyAllWindows()

讀取視頻或攝像頭:

cap = cv2.VideoCapture(r'./resources/video.mp4')
# cap = cv2.VideoCapture(0)

使用 cv2.VideoCapture() 函數(shù)讀取視頻文件或攝像頭。傳入視頻文件路徑或攝像頭ID(例如 0 表示默認(rèn)攝像頭)。

設(shè)置視頻屬性:

cap.set(3, 800)    # 3為寬
cap.set(4, 600)    # 4為高
cap.set(10, 5)     # 10為亮度

使用 cap.set() 方法設(shè)置視頻捕獲屬性。參數(shù) 3 表示寬度,4 表示高度,10 表示亮度。

讀取和顯示視頻幀:

while True:
    success, img = cap.read()
    if success:
        cv2.imshow('video', img)
    else:
        break

使用 cap.read() 方法讀取視頻幀。如果讀取成功,success 為 True,img 為當(dāng)前幀的圖像;否則,success 為 False,表示視頻結(jié)束或讀取失敗。

按鍵檢測:

if cv2.waitKey(1) & 0xFF == ord('q'):
    break

使用 cv2.waitKey(1) 等待1毫秒,如果有按鍵按下,則返回按鍵的ASCII碼。& 0xFF 用于取按鍵ASCII碼的后8位。ord('q') 返回字符 ‘q’ 的ASCII碼。如果按鍵為 ‘q’,則退出循環(huán)。

釋放資源:

cap.release()
cv2.destroyAllWindows()

使用 cap.release() 釋放視頻捕獲對象。

使用 cv2.destroyAllWindows() 關(guān)閉所有OpenCV窗口。

主函數(shù)

if __name__ == '__main__':
    # read_img()
    read_video()

主函數(shù):

if __name__ == '__main__': 確保當(dāng)腳本直接運(yùn)行時才執(zhí)行以下代碼。

調(diào)用 read_img() 或 read_video() 函數(shù)來讀取和顯示圖像或視頻。

總結(jié)

本文詳細(xì)介紹了如何使用 OpenCV 在 Python 中讀取和顯示圖像以及視頻,并通過具體的代碼示例展示了整個過程。通過使用 cv2.imread()、cv2.imshow()、cv2.VideoCapture() 和 cv2.waitKey() 等函數(shù),我們可以輕松地處理圖像和視頻數(shù)據(jù)。

到此這篇關(guān)于使用OpenCV實(shí)現(xiàn)讀取和顯示圖像與視頻的文章就介紹到這了,更多相關(guān)OpenCV讀取顯示圖像與視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux下python與C++使用dlib實(shí)現(xiàn)人臉檢測

    Linux下python與C++使用dlib實(shí)現(xiàn)人臉檢測

    這篇文章主要為大家詳細(xì)介紹了Linux下python與C++使用dlib實(shí)現(xiàn)人臉檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • SpringBoot實(shí)現(xiàn)登錄注冊常見問題解決方案

    SpringBoot實(shí)現(xiàn)登錄注冊常見問題解決方案

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)登錄注冊常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果

    使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果

    今天小編就為大家分享一篇使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python條件語句與循環(huán)語句

    Python條件語句與循環(huán)語句

    這篇文章主要介紹了Python條件語句與循環(huán)語句,條件語句就是通過指定的表達(dá)式的運(yùn)行結(jié)果來判斷當(dāng)前是執(zhí)行還是跳過某些指定的語句塊,循環(huán)語句就是對某些語句的重復(fù)執(zhí)行,這個重復(fù)執(zhí)行是通過指定表達(dá)式來控制的,下面來看具體內(nèi)容及續(xù)航管案例吧,需要的朋友可以參考一下
    2021-11-11
  • 利用Python將圖片中扭曲矩形的復(fù)原

    利用Python將圖片中扭曲矩形的復(fù)原

    這篇文章主要給大家介紹了關(guān)于如何利用Python將圖片中扭曲矩形復(fù)原的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 用pip給python安裝matplotlib庫的詳細(xì)教程

    用pip給python安裝matplotlib庫的詳細(xì)教程

    這篇文章主要介紹了用pip給python安裝matplotlib庫的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python高級特性與幾種函數(shù)的講解

    Python高級特性與幾種函數(shù)的講解

    今天小編就為大家分享一篇關(guān)于Python高級特性與幾種函數(shù)的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • pycharm中連接mysql數(shù)據(jù)庫的步驟詳解

    pycharm中連接mysql數(shù)據(jù)庫的步驟詳解

    在進(jìn)行Python研發(fā)的時候,pycharm是一個很好的IDE,下面這篇文章主要給大家介紹了pycharm中連接mysql數(shù)據(jù)庫的步驟,文中通過圖文介紹的非常詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • python selenium firefox使用詳解

    python selenium firefox使用詳解

    這篇文章主要介紹了python selenium firefox使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Python圖像處理之圖像的縮放、旋轉(zhuǎn)與翻轉(zhuǎn)實(shí)現(xiàn)方法示例

    Python圖像處理之圖像的縮放、旋轉(zhuǎn)與翻轉(zhuǎn)實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Python圖像處理之圖像的縮放、旋轉(zhuǎn)與翻轉(zhuǎn)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python使用resize()、rotate()及transpose()等函數(shù)進(jìn)行圖像的縮放、旋轉(zhuǎn)及翻轉(zhuǎn)相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評論