日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pythonopencv显示图像_OpenCV-Python 读取显示图像 | 五

發布時間:2023/12/4 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonopencv显示图像_OpenCV-Python 读取显示图像 | 五 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目標

在這里,你將學習如何讀取圖像,如何顯示圖像以及如何將其保存回去

你將學習以下功能:cv.imread(),cv.imshow(),cv.imwrite()

(可選)你將學習如何使用Matplotlib顯示圖像

使用OpenCV

讀取圖像

使用cv.imread()函數讀取圖像。圖像應該在工作目錄或圖像的完整路徑應給出。

第二個參數是一個標志,它指定了讀取圖像的方式。

cv.IMREAD_COLOR: 加載彩色圖像。任何圖像的透明度都會被忽視。它是默認標志。

cv.IMREAD_GRAYSCALE:以灰度模式加載圖像

cv.IMREAD_UNCHANGED:加載圖像,包括alpha通道

注意

除了這三個標志,你可以分別簡單地傳遞整數1、0或-1。

請參見下面的代碼:

import numpy as np

import cv2 as cv

#加載彩色灰度圖像

img = cv.imread('messi5.jpg',0)

警告

即使圖像路徑錯誤,它也不會引發任何錯誤,但是print img會給出None

顯示圖像

使用函數**cv.imshow()**在窗口中顯示圖像。窗口自動適合圖像尺寸。

第一個參數是窗口名稱,它是一個字符串。第二個參數是我們的對象。你可以根據需要創建任意多個窗口,但可以使用不同的窗口名稱。

cv.imshow('image',img)

cv.waitKey(0)

cv.destroyAllWindows()

窗口的屏幕截圖如下所示(在Fedora-Gnome機器中):

cv.waitKey()是一個鍵盤綁定函數。其參數是以毫秒為單位的時間。該函數等待任何鍵盤事件指定的毫秒。如果您在這段時間內按下任何鍵,程序將繼續運行。如果0被傳遞,它將無限期地等待一次敲擊鍵。它也可以設置為檢測特定的按鍵,例如,如果按下鍵 a 等,我們將在下面討論。

注意

除了鍵盤綁定事件外,此功能還處理許多其他GUI事件,因此你必須使用它來實際顯示圖像。

cv.destroyAllWindows()只會破壞我們創建的所有窗口。如果要銷毀任何特定的窗口,請使用函數 cv.destroyWindow()在其中傳遞確切的窗口名稱作為參數。

注意

在特殊情況下,你可以創建一個空窗口,然后再將圖像加載到該窗口。在這種情況下,你可以指定窗口是否可調整大小。這是通過功能cv.namedWindow()完成的。默認情況下,該標志為cv.WINDOW_AUTOSIZE。但是,如果將標志指定為cv.WINDOW_NORMAL,則可以調整窗口大小。當圖像尺寸過大以及向窗口添加跟蹤欄時,這將很有幫助。

請參見下面的代碼:

cv.namedWindow('image',cv.WINDOW_NORMAL)

cv.imshow('image',img)

cv.waitKey(0)

cv.destroyAllWindows()

寫入圖像

使用函數cv.imwrite()保存圖像。

第一個參數是文件名,第二個參數是要保存的圖像。

cv.imwrite('messigray.png',img)

這會將圖像以PNG格式保存在工作目錄中。

總結

在下面的程序中,以灰度加載圖像,顯示圖像,按s保存圖像并退出,或者按ESC鍵直接退出而不保存。

import numpy as np

import cv2 as cv

img = cv.imread('messi5.jpg',0)

cv.imshow('image',img)

k = cv.waitKey(0)

if k == 27: # 等待ESC退出

cv.destroyAllWindows()

elif k == ord('s'): # 等待關鍵字,保存和退出

cv.imwrite('messigray.png',img)

cv.destroyAllWindows()

警告

如果使用的是64位計算機,則必須k = cv.waitKey(0)按如下所示修改行:k = cv.waitKey(0) & 0xFF

使用Matplotlib

Matplotlib是Python的繪圖庫,可為你提供多種繪圖方法。你將在接下來的文章中看到它們。在這里,你將學習如何使用Matplotlib顯示圖像。你可以使用Matplotlib縮放圖像,保存圖像等。

import numpy as np

import cv2 as cv

from matplotlib import pyplot as plt

img = cv.imread('messi5.jpg',0)

plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')

plt.xticks([]), plt.yticks([]) # 隱藏 x 軸和 y 軸上的刻度值

plt.show()

窗口的屏幕截圖如下所示:

還可以看看

Matplotlib中提供了許多繪圖選項。請參考Matplotlib文檔以獲取更多詳細信息。一些,我們將在路上看到。

警告

OpenCV加載的彩色圖像處于BGR模式。但是Matplotlib以RGB模式顯示。因此,如果使用OpenCV讀取彩色圖像,則Matplotlib中將無法正確顯示彩色圖像。有關更多詳細信息,請參見練習。

其他資源

Matplotlib繪圖樣式和功能:http://matplotlib.org/api/pyplot_api.html

練習題

當你嘗試在OpenCV中加載彩色圖像并將其顯示在Matplotlib中時,存在一些問題。閱讀此討論:http://stackoverflow.com/a/15074748/1134940)并理解它。

總結

以上是生活随笔為你收集整理的pythonopencv显示图像_OpenCV-Python 读取显示图像 | 五的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。