發(fā)布時(shí)間:2024-08-18 15:51:17 瀏覽量:242次
大部分的cv應(yīng)用都需要處理圖像輸入和輸出。比如,一個(gè)互動(dòng)式cv應(yīng)用可能通過(guò)攝像頭作為輸入源,并在窗口中顯示輸出。除了攝像頭輸入外,還可能涉及到圖像文件、視頻文件和原始字節(jié)的讀取。舉例來(lái)說(shuō),網(wǎng)絡(luò)傳輸中的原始字節(jié)可能是應(yīng)用中圖形處理算法生成的。
不管是什么格式,每個(gè)像素都有一個(gè)值,但表示像素的方法各不相同。例如,可以通過(guò)使用二維NumPy數(shù)組簡(jiǎn)單地創(chuàng)建一個(gè)黑色的正方形圖像:
OpenCV的imread函數(shù)支持各種靜態(tài)圖像文件格式。
#### 顯示不同flags讀取結(jié)果def cv2flags(filename): flags = [0, 1, 2, 3, 4] for flag in flags: m = cv2.imread(filename, flags=flag) cv2.namedWindow(f"flags={flag}", 0) cv2.imshow(f"flags={flag}", m) cv2.waitKey(0)filename = "./src/imgs/1.jpg"cv2flags(filename)
flags:圖像的通道和色彩信息(默認(rèn)值為1),即彩色圖片。8位深度圖片存儲(chǔ)像素點(diǎn)的取值范圍為0~255,1通道為灰度圖,3通道為彩色圖。
基本上,一個(gè)字節(jié)可以表示0到255的整數(shù)。對(duì)于實(shí)時(shí)圖像應(yīng)用來(lái)說(shuō),一個(gè)像素通常由每個(gè)通道的一個(gè)字節(jié)表示。
一個(gè)OpenCV圖像是array類型的二維或三維數(shù)組。8位的灰度圖像是一個(gè)含有字節(jié)值的二維數(shù)組。因此,我們可以通過(guò)坐標(biāo)位置訪問(wèn)像素,比如修改橫向600-800、縱向100-200為藍(lán)色(BGR=(255,0,0)):
掌握了這些基礎(chǔ)知識(shí),我們就可以輕松讀取圖片或網(wǎng)絡(luò)圖片,方法十分簡(jiǎn)單:
### 核心點(diǎn):獲取圖像字節(jié)數(shù)據(jù)def show_url_image(url_path): resp = request.urlopen(url_path) image = np.asarray(bytearray(resp.read()), dtype="uint8") ### 字節(jié)流數(shù)組 img = cv2.imdecode(image, 1) cv2.namedWindow("show_url_image", 0) cv2.imshow("show_url_image", img) cv2.waitKey(0)
視頻讀取:
OpenCV提供了VideoCapture類和Video Writer類來(lái)支持各種視頻文件格式。在到達(dá)視頻文件末尾之前,VideoCapture類通過(guò)read()函數(shù)獲取新的幀,每幀是基于BGR格式的圖像。
#### 視頻讀取def show_video(video_path): cap = cv2.VideoCapture(video_path) while (cap.isOpened()): ret, frame = cap.read() if ret == True: frame1 = process(frame, opt=0) ###增加視頻處理功能 met = np.hstack((frame, frame1)) cv2.namedWindow("show_video", 0) cv2.imshow("show_video", met) if cv2.waitKey(1) & 0xFF == ord('q'): break else: break
waitKey()的參數(shù)為等待鍵盤(pán)觸發(fā)的時(shí)間,單位為毫秒,其返回值是1(表示沒(méi)有鍵被按下)或ASCII碼,如27表示按下Esc鍵。另外,Python提供了一個(gè)標(biāo)準(zhǔn)函數(shù)ord(),該函數(shù)可以將字符轉(zhuǎn)換為ASCII碼。例如,輸入ord('a)會(huì)返回97。
以上就是圖片、視頻讀寫(xiě)的基本方法,是不是非常簡(jiǎn)單呢?
備注:免費(fèi)獲取源碼,請(qǐng)?jiān)u論區(qū)回復(fù)源碼。
熱門(mén)資訊
1. 照片變漫畫(huà)效果,這4個(gè)方法操作簡(jiǎn)單有效,快來(lái)試試吧!
想將照片變成漫畫(huà)效果?這篇文章分享了4個(gè)方法,包括Photoshop、聰明靈犀、VanceAI Toongineer、醒圖,簡(jiǎn)單操作就能實(shí)現(xiàn),快來(lái)嘗試一下吧!
2. 華為手機(jī)神奇“AI修圖”功能,一鍵消除衣服!原圖變身大V領(lǐng)深V!
最近華為手機(jī)Pura70推出的“AI修圖”功能引發(fā)熱議,通過(guò)簡(jiǎn)單操作可以讓照片中的人物換裝。想了解更多這款神奇功能的使用方法嗎?點(diǎn)擊查看!
3. 四款值得推薦的AI以圖生圖軟件,有需要的趕緊來(lái)試試!
近年來(lái),人工智能逐漸走入公眾視野,其中的AI圖像生成技術(shù)尤為引人注目。只需在特定軟件中輸入關(guān)鍵詞描述語(yǔ)以及上傳參考圖就能智能高效生成符合要求的...
4. AI視頻制作神器Viggle:讓靜態(tài)人物動(dòng)起來(lái),創(chuàng)意無(wú)限!
Viggle AI是一款免費(fèi)制作視頻的AI工具,能讓靜態(tài)人物圖片動(dòng)起來(lái),快來(lái)了解Viggle AI的功能和優(yōu)勢(shì)吧!
5. Logo Diffusion——基于sd繪畫(huà)模型的AI LOGO 生成器
這下LOGO設(shè)計(jì)徹底不用求人了。接下來(lái)詳細(xì)演示一遍操作流程首先進(jìn)入Logo D... 想學(xué)習(xí)更多AI技能,比如說(shuō)關(guān)于怎么樣利用AI來(lái)提高生產(chǎn)效率、還能做什么AI...
6. 零基礎(chǔ)10分鐘生成漫畫(huà),教大家如何用AI生成自己的漫畫(huà)
接下來(lái),我將親自引導(dǎo)你,使用AI工具,創(chuàng)作一本既有趣又能帶來(lái)盈利的漫畫(huà)。我們將一起探索如何利用這個(gè)工具,發(fā)揮你的創(chuàng)意,制作出令人驚嘆的漫畫(huà)作品。讓...
7. 趕緊收藏好!這4個(gè)完全免費(fèi)的AI視頻制作網(wǎng)站和工具
以下是一些免費(fèi)的AI視頻制作網(wǎng)站或工具,幫助您制作各種類型的視頻。 1. Lumen5:Lumen5是一個(gè)基于AI的視頻制作工具,可將文本轉(zhuǎn)換為視頻。 用戶可以使...
8. 一款免費(fèi)無(wú)限制的AI視頻生成工具火了!國(guó)內(nèi)無(wú)障礙訪問(wèn)!附教程
人人都可以動(dòng)手制作AI視頻! 打開(kāi)網(wǎng)址https://pixverse.ai/,用郵箱注冊(cè)后,點(diǎn)擊右上角Create,就可以開(kāi)始創(chuàng)作了。 PixVerse目前有文案生成視頻,和圖片生...
9. AI顯卡繪畫(huà)排行榜:4090無(wú)懸念,最具性價(jià)比出人意料
在AI繪圖領(lǐng)域,Stable Diffusion的顯卡繪圖性能備受關(guān)注。本文整理了Stable Diffusion顯卡的硬件要求和性能表現(xiàn),以及2023年3月顯卡AI繪圖效率排行榜和性價(jià)比排行榜。歡迎查看最新的AI顯卡算力排行榜。
就能快速生成一幅極具藝術(shù)效果的作品,讓現(xiàn)實(shí)中不懂繪畫(huà)的人也能參與其中創(chuàng)作!真的超贊噠~趣趣分享幾款超厲害的AI繪畫(huà)軟件,提供詳細(xì)操作!有需要的快來(lái)...
最新文章
同學(xué)您好!