如何将图像保存至计算机G7X,opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作...
本文使用的函數(shù):
cv2.imread()讀入一幅圖像cv2.imshow()顯示一幅圖像cv2.imwrite()寫(xiě)入一幅圖像
讀入圖像
cv2.imread(參數(shù)1,參數(shù)2)
第一個(gè)參數(shù)是要讀取圖像的路徑
就算圖像的徑是錯(cuò)誤的OpenCV 也不會(huì)提提醒你但是當(dāng)你使用命令print image時(shí)得到的結(jié)果是None。
第二個(gè)參數(shù)是數(shù)應(yīng)如何取幅圖片,他有一下幾個(gè)可取值
cv2.IMREAD_COLOR入一副彩色圖像,圖像的明度會(huì)忽略(默認(rèn)參數(shù))61 cv2.IMREAD_GRAYSCALE以灰度模式入圖像cv2.IMREAD_UNCHANGED入一幅圖像并且包括圖像的 alpha
代碼演示
有代碼可見(jiàn),讀取成功,第二個(gè)參數(shù)為0,表示使用默認(rèn)參數(shù)
顯示圖像
我們讀取到了這個(gè)圖片之后,我們應(yīng)該顯示它,因?yàn)檩敵鲋惠敵鲆欢褏?shù),我們可以使用imshow方法來(lái)顯示
imshow(參數(shù)1,參數(shù)2)
參數(shù)1的意思就是顯示的這張圖片的窗口的名字,參數(shù)二是顯示哪張圖片(就是我們剛才讀到的那張)
這個(gè)代碼就是顯示image并且命名窗口為first,但有一個(gè)問(wèn)題,這個(gè)程序運(yùn)行一瞬間就關(guān)閉,如何才能持久話這個(gè)窗口呢
使用cv2.waitkey(參數(shù))方法可以解決這個(gè)問(wèn)題,這個(gè)方法是盤(pán)綁定函數(shù),它參數(shù)是一個(gè)毫秒單位的數(shù)字,假如
cv2.waitkey(2000),這個(gè)程序就相當(dāng)于堵塞式程序,這個(gè)意思就是在兩秒之內(nèi)如果有鍵盤(pán)按下,則這個(gè)程序會(huì)立刻繼續(xù)往下執(zhí)行,如果兩秒之內(nèi)沒(méi)有鍵盤(pán)按下,兩秒之后,程序也會(huì)往下執(zhí)行,就是說(shuō)最多堵塞兩秒鐘,這樣圖片就可以顯示至少兩秒鐘
如果我們?cè)谶@兩秒之內(nèi)按下鍵盤(pán)的話,它的返回值是按下鍵盤(pán)的ascii碼,如果沒(méi)有按下鍵盤(pán)盤(pán)入則返回值為-1
如果當(dāng)這個(gè)參數(shù)為0的時(shí)候,那么這個(gè)堵塞程序時(shí)間是無(wú)限,什么時(shí)候按下鍵盤(pán),什么時(shí)候程序往下執(zhí)行,如果不按下則程序永遠(yuǎn)無(wú)法往下執(zhí)行,這就使的該程序變成圖片永久顯示,什么時(shí)候按下鍵盤(pán),程序才會(huì)往下走完,圖片消失
程序運(yùn)行完之后窗口就會(huì)被銷毀,當(dāng)然也可以直接通過(guò)方法cv2.destroyAllWindows()來(lái)銷毀窗口,不用等到方法執(zhí)行完成如果你想刪特定的窗口可以使用 cv2.destroyWindow()在括號(hào)內(nèi)入你想刪的窗口名
我們顯示這個(gè)窗口的大小是沒(méi)有辦法來(lái)調(diào)整的,但是當(dāng)我們使用
cv2.namedWindow(窗口名,參數(shù))方法的時(shí)候,就可以調(diào)整顯示這個(gè)圖片大小
窗口名和上面的那個(gè)一致,參數(shù)有兩個(gè):
cv2.WINDOW_AUTOSIZE----默認(rèn)cv2.WINDOW_NORMAL---只有這個(gè)參數(shù)才可以調(diào)整窗口最終代碼為
保存圖像
cv2.imwrite(參數(shù)1,參數(shù)2)參數(shù)1為保存的名字,參數(shù)2為保存的圖片
代碼
保存圖像完成
下面完成一個(gè)demo
當(dāng)顯示圖像的時(shí)候,按下esc是退出不保存,按下s是退出保存
這個(gè)程序有以下幾點(diǎn)需要注意,第一點(diǎn)
cv2.waitkey(0)&0xFF,因?yàn)槲业挠?jì)算機(jī)是64進(jìn)制,32進(jìn)制的而不需要
key==27,其中27表示按鍵esc
ord('s')表示按鍵s
最終代碼
# -*- coding: utf-8 -*-import numpy as npimport cv2image=cv2.imread('o.jpg',0)cv2.namedWindow('first', cv2.WINDOW_NORMAL)cv2.imshow("first",image)key=cv2.waitKey(0)&0xFFif key==27:cv2.destroyAllWindows()elif key==ord('s'):cv2.destroyAllWindows()cv2.imwrite('q.jpg', image)
舉報(bào)/反饋
總結(jié)
以上是生活随笔為你收集整理的如何将图像保存至计算机G7X,opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: R语言获取GEO表达数据
- 下一篇: web编程(三)显示html网页