日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

openCV-Python筆記之解讀圖像的讀取、顯示和保存問題_python

作者:MLusrrt ? 更新時間: 2023-01-11 編程語言

使用cv2.imread(),cv2.imshow(),cv2.imwrite()讀取、顯示和保存圖像

一、讀入圖像

使用函數cv2.imread(filepath,flags)讀入一副圖片

  • filepath:要讀入圖片的完整路徑
  • flags:讀入圖片的標志
  • cv2.IMREAD_COLOR:默認參數,讀入一副彩色圖片,忽略alpha通道
  • cv2.IMREAD_GRAYSCALE:讀入灰度圖片
  • cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道
import numpy as np
import cv2
img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)

二、顯示圖像

使用函數cv2.imshow(wname,img)顯示圖像,第一個參數是顯示圖像的窗口的名字,第二個參數是要顯示的圖像(imread讀入的圖像),窗口大小自動調整為圖片大小

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#dv2.destroyWindow(wname)

cv2.waitKey顧名思義等待鍵盤輸入,單位為毫秒,即等待指定的毫秒數看是否有鍵盤輸入,若在等待時間內按下任意鍵則返回按鍵的ASCII碼,程序繼續運行。

若沒有按下任何鍵,超時后返回-1。參數為0表示無限等待。

不調用waitKey的話,窗口會一閃而逝,看不到顯示的圖片。

  • cv2.destroyAllWindow()銷毀所有窗口
  • cv2.destroyWindow(wname)銷毀指定窗口

三、保存圖像

使用函數cv2.imwrite(file,img,num)保存一個圖像。

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

可選的第三個參數,它針對特定的格式:對于JPEG,其表示的是圖像的質量,用0 - 100的整數表示,默認95;對于png ,第三個參數表示的是壓縮級別。默認為3.

注意:

  • cv2.IMWRITE_JPEG_QUALITY類型為 long ,必須轉換成 int
  • cv2.IMWRITE_PNG_COMPRESSION, 從0到9 壓縮級別越高圖像越小。
cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

四、圖片操作

1、使用函數cv2.flip(img,flipcode)翻轉圖像,flipcode控制翻轉效果。

  • flipcode = 0:沿x軸翻轉
  • flipcode > 0:沿y軸翻轉
  • flipcode < 0:x,y軸同時翻轉
imgflip = cv2.flip(img,1)

2、復制圖像

imgcopy = img.copy()

3、顏色空間轉換

#彩色圖像轉為灰度圖像
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)?
#灰度圖像轉為彩色圖像
img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
# cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS

示例

讀入一副圖像,按’s’鍵保存后退出,其它任意鍵則直接退出不保存

import numpy as np
import cv2
img = cv2.imread('1.jpg',cv2.IMREAD_UNCHANGED)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == ord('s'): # wait for 's' key to save and exit
? ? cv2.imwrite('1.png',img)
? ? cv2.destroyAllWindows()
else:?
? ? cv2.destroyAllWindows()

總結

原文鏈接:https://blog.csdn.net/djcxym/article/details/52097812

欄目分類
最近更新