最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

概述

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

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

在開始之前,請(qǐng)確保已經(jīng)安裝了 OpenCV 庫(kù)。如果沒有安裝,可以通過以下命令進(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序號(hào)則為攝像頭id,0為默認(rèn)第一個(gè)攝像頭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碼,無(wú)按鍵則返回-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ù)顯示圖像。第一個(gè)參數(shù)是窗口名稱,第二個(gè)參數(shù)是要顯示的圖像。

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

2. 讀取和顯示視頻

def read_video():
    """
    讀取視頻/攝像頭
    :return:
    """
    # 視頻路徑為獲取資源,id序號(hào)則為攝像頭id,0為默認(rèn)第一個(gè)攝像頭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碼,無(wú)按鍵則返回-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é)束或讀取失敗。

按鍵檢測(cè):

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() 釋放視頻捕獲對(duì)象。

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

主函數(shù)

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

主函數(shù):

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

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

總結(jié)

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

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

相關(guān)文章

  • 成功解決ValueError:?Supported?target?types?are:('binary',?'multiclass').?Got?'continuous'?instead.

    成功解決ValueError:?Supported?target?types?are:('binary

    本文給大家分享成功解決ValueError:?Supported?target?types?are:('binary',?'multiclass').?Got?'continuous'?instead.的錯(cuò)誤問題,需要的朋友可以參考下
    2023-03-03
  • 教你使用Python畫圣誕樹做浪漫的程序員

    教你使用Python畫圣誕樹做浪漫的程序員

    這不是圣誕節(jié)快到了,還不用Python繪制個(gè)圣誕樹和煙花讓女朋友開心開心,也算是親手做的,稍稍花了點(diǎn)心思,學(xué)會(huì)了趕緊畫給你的那個(gè)她吧
    2022-12-12
  • PyCharm+Miniconda3安裝配置教程詳解

    PyCharm+Miniconda3安裝配置教程詳解

    這篇文章主要介紹了PyCharm+Miniconda3安裝配置教程詳解,需要的朋友可以參考下
    2021-02-02
  • Python學(xué)習(xí)筆記之文件的讀寫操作實(shí)例分析

    Python學(xué)習(xí)筆記之文件的讀寫操作實(shí)例分析

    這篇文章主要介紹了Python學(xué)習(xí)筆記之文件的讀寫操作,結(jié)合實(shí)例形式詳細(xì)分析了Python常見的文件讀寫操作實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • 手把手教你用python繪制熱度圖(heatmap)

    手把手教你用python繪制熱度圖(heatmap)

    我們?cè)谧鲋T如人群密集度等可視化的時(shí)候,可能會(huì)考慮使用熱力圖,在Python中能很方便地繪制熱力圖,下面這篇文章主要給大家介紹了關(guān)于用python繪制熱度圖(heatmap)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 使用Python實(shí)現(xiàn)在Excel工作表中創(chuàng)建、修改及刪除表格區(qū)域

    使用Python實(shí)現(xiàn)在Excel工作表中創(chuàng)建、修改及刪除表格區(qū)域

    在數(shù)據(jù)分析和自動(dòng)化處理的工作中,Excel作為一種強(qiáng)大的工具被廣泛應(yīng)用,而通過Python來(lái)操作Excel工作表中的表格,可以極大提高工作效率,下面我們就來(lái)學(xué)學(xué)如何使用Python在Excel工作表中創(chuàng)建,修改及刪除表格吧
    2024-12-12
  • Python tkinter label 更新方法

    Python tkinter label 更新方法

    今天小編就為大家分享一篇Python tkinter label 更新方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-10-10
  • 詳談Pandas中iloc和loc以及ix的區(qū)別

    詳談Pandas中iloc和loc以及ix的區(qū)別

    今天小編就為大家分享一篇詳談Pandas中iloc和loc以及ix的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-06-06
  • python 3.6.4 安裝配置方法圖文教程

    python 3.6.4 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了python 3.6.4 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 詳解Python實(shí)現(xiàn)按任意鍵繼續(xù)/退出的功能

    詳解Python實(shí)現(xiàn)按任意鍵繼續(xù)/退出的功能

    在學(xué)Python時(shí)在總想實(shí)現(xiàn)一個(gè)按任意鍵繼續(xù)/退出的程序(受.bat毒害), 奈何一直沒有寫,今天抽時(shí)間寫出來(lái)了,下面分享給大家,有需要的可以參考借鑒。
    2016-08-08

最新評(píng)論

安国市| 大城县| 汕尾市| 都安| 庆元县| 新河县| 西昌市| 阿克陶县| 波密县| 陕西省| 永福县| 大名县| 石河子市| 孟津县| 达孜县| 武功县| 台中市| 潞西市| 潜山县| 麟游县| 新余市| 三台县| 新竹市| 井冈山市| 五莲县| 莆田市| 高唐县| 保定市| 土默特左旗| 郸城县| 郑州市| 会宁县| 黄梅县| 濮阳市| 大名县| 枝江市| 涞水县| 云浮市| 洛浦县| 肇东市| 东明县|