openCV-Python筆記之解讀圖像的讀取、顯示和保存問題
使用cv2.imread(),cv2.imshow(),cv2.imwrite()讀取、顯示和保存圖像
一、讀入圖像
使用函數(shù)cv2.imread(filepath,flags)讀入一副圖片
filepath
:要讀入圖片的完整路徑flags
:讀入圖片的標(biāo)志cv2.IMREAD_COLOR
:默認(rèn)參數(shù),讀入一副彩色圖片,忽略alpha通道cv2.IMREAD_GRAYSCALE
:讀入灰度圖片cv2.IMREAD_UNCHANGED
:顧名思義,讀入完整圖片,包括alpha通道
import numpy as np import cv2 img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)
二、顯示圖像
使用函數(shù)cv2.imshow(wname,img)顯示圖像,第一個參數(shù)是顯示圖像的窗口的名字,第二個參數(shù)是要顯示的圖像(imread讀入的圖像),窗口大小自動調(diào)整為圖片大小
cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() #dv2.destroyWindow(wname)
cv2.waitKey顧名思義等待鍵盤輸入,單位為毫秒,即等待指定的毫秒數(shù)看是否有鍵盤輸入,若在等待時間內(nèi)按下任意鍵則返回按鍵的ASCII碼,程序繼續(xù)運行。
若沒有按下任何鍵,超時后返回-1。參數(shù)為0表示無限等待。
不調(diào)用waitKey的話,窗口會一閃而逝,看不到顯示的圖片。
cv2.destroyAllWindow()
銷毀所有窗口cv2.destroyWindow(wname)
銷毀指定窗口
三、保存圖像
使用函數(shù)cv2.imwrite(file,img,num)保存一個圖像。
第一個參數(shù)是要保存的文件名,第二個參數(shù)是要保存的圖像。
可選的第三個參數(shù),它針對特定的格式:對于JPEG,其表示的是圖像的質(zhì)量,用0 - 100的整數(shù)表示,默認(rèn)95;對于png ,第三個參數(shù)表示的是壓縮級別。默認(rèn)為3.
注意:
cv2.IMWRITE_JPEG_QUALITY
類型為 long ,必須轉(zhuǎn)換成 intcv2.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、使用函數(shù)cv2.flip(img,flipcode)翻轉(zhuǎn)圖像,flipcode控制翻轉(zhuǎn)效果。
flipcode = 0
:沿x軸翻轉(zhuǎn)flipcode > 0
:沿y軸翻轉(zhuǎn)flipcode < 0
:x,y軸同時翻轉(zhuǎn)
imgflip = cv2.flip(img,1)
2、復(fù)制圖像
imgcopy = img.copy()
3、顏色空間轉(zhuǎn)換
#彩色圖像轉(zhuǎn)為灰度圖像 img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)? #灰度圖像轉(zhuǎn)為彩色圖像 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()
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python操作Excel中的各項頁面設(shè)置功能
在使用Excel進行數(shù)據(jù)分析或報告制作時,頁面設(shè)置是確保最終輸出效果專業(yè)、美觀的關(guān)鍵步驟,合理的頁面設(shè)置不僅能夠優(yōu)化打印效果,還能提升數(shù)據(jù)的可讀性,本文將詳細介紹如何使用Python操作Excel中的各項頁面設(shè)置功能,需要的朋友可以參考下2024-08-08Python threading模塊中l(wèi)ock與Rlock的使用詳細講解
python的thread模塊是比較底層的模塊,python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用。這篇文章主要介紹了Python threading模塊中l(wèi)ock與Rlock的使用2022-10-10Python中不同類之間調(diào)用方法的四種方式小結(jié)
類是一種面向?qū)ο蟮木幊谭妒?它允許我們將數(shù)據(jù)和功能封裝在一個實體中,本文主要介紹了Python中不同類之間調(diào)用方法的四種方式小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-02-02關(guān)于Python中的向量相加和numpy中的向量相加效率對比
今天小編就為大家分享一篇關(guān)于Python中的向量相加和numpy中的向量相加效率對比,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python實現(xiàn)股票歷史數(shù)據(jù)可視化分析案例
股票交易數(shù)據(jù)分析可直觀股市走向,對于如何把握股票行情,快速解讀股票交易數(shù)據(jù)有不可替代的作用,感興趣的可以了解一下2021-06-06Python數(shù)據(jù)分析中常見統(tǒng)計方法詳解
數(shù)據(jù)分析是現(xiàn)代社會中不可或缺的一部分,通過對數(shù)據(jù)的統(tǒng)計和分析,我們可以得出有用的信息和見解,本文將介紹在?Python?中常見的數(shù)據(jù)統(tǒng)計方法,希望對大家有所幫助2024-02-02