国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《數(shù)字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存

這篇具有很好參考價(jià)值的文章主要介紹了《數(shù)字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

《數(shù)字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存


本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html
本書CSDN獨(dú)家連載專欄:https://blog.csdn.net/youcans/category_12418787.html

《數(shù)字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存,《數(shù)字圖像處理-OpenCV》連載,opencv,python,計(jì)算機(jī)視覺,圖像處理,原力計(jì)劃


第1章 圖像的基本操作

為了方便初學(xué)者從零開始學(xué)習(xí)OpenCV-Python,本書從圖像的讀取、保存和顯示等基本操作開始介紹,使讀者可以循序漸進(jìn)地使用和理解本書的每一個(gè)例程。


本章內(nèi)容概要
◎ 圖像、視頻文件和多幀圖像(動(dòng)圖)的讀取與保存。
◎ 從網(wǎng)絡(luò)地址讀取圖像和含中文路徑圖像的讀取方法。
◎ 圖像的顯示方法,包括使用Matplotlib顯示圖像。
◎ 使用攝像頭拍攝視頻及圖像的方法。


1.1 圖像的讀取與保存

1.1.1 圖像的讀取

函數(shù)cv.imread用于從指定文件加載圖像并返回該圖像的矩陣。

函數(shù)原型
cv.imread(filename[, flags=IMREAD_COLOR]) → retval

參數(shù)說(shuō)明

  • filename:讀取圖像的文件路徑和文件名,包括文件擴(kuò)展名。
  • flags:讀取方式的參數(shù),可選項(xiàng)如下。
    • IMREAD_COLOR:始終將圖像轉(zhuǎn)換為三通道BGR格式的彩色圖像,是默認(rèn)方式。
    • IMREAD_GRAYSCALE:始終將圖像轉(zhuǎn)換為單通道灰度圖像。
    • IMREAD_UNCHANGED:按原樣返回加載的圖像(使用Alpha通道)。
    • IMREAD_ANYDEPTH:輸入具有相應(yīng)深度時(shí)會(huì)返回16位或32位圖像,否則會(huì)轉(zhuǎn)換為8位圖像。
    • IMREAD_ANYCOLOR:以任何可能的顏色格式讀取圖像。
  • retval:返回值,讀取的OpenCV圖像為多維Numpy數(shù)組。

注意問(wèn)題
(1) 在OpenCV中,最常用的圖像數(shù)據(jù)結(jié)構(gòu)是C++語(yǔ)言定義的Mat類。在Python語(yǔ)言中,Mat類的對(duì)象創(chuàng)建和操作是通過(guò)Numpy數(shù)組實(shí)現(xiàn)的。OpenCV對(duì)圖像的任何操作,本質(zhì)上都是對(duì) Numpy數(shù)組的運(yùn)算。
(2) OpenCV讀取圖像文件,返回值是二維或三維Numpy數(shù)組。當(dāng)讀取灰度圖像時(shí),返回值是形為(h,w)的二維數(shù)組;當(dāng)讀取彩色圖像時(shí),返回值是形為(h,w,ch)的三維數(shù)組。
(3) 如果無(wú)法讀取圖像(如文件不存在、權(quán)限不正確、格式不被支持或無(wú)效),并不會(huì)有報(bào)錯(cuò)提示,而會(huì)返回一個(gè)空矩陣。
(4) 該函數(shù)不支持帶有中文或空格的文件路徑和文件名,但也不會(huì)出現(xiàn)報(bào)錯(cuò)提示。當(dāng)必須使用中文路徑或文件名時(shí),可以使用函數(shù)cv.imdecode 處理,具體參見【例程0103】。
(5) 在OpenCV中,使用的彩色圖像為BGR格式的圖像,讀取圖像文件后,圖像文件可按B/G/R的順序存儲(chǔ)為多維數(shù)組。PIL、PyQt、Matplotlib 等庫(kù)使用的是RGB格式的圖像,圖像文件按R/G/B的順序存儲(chǔ)。
(6) 該函數(shù)默認(rèn)忽略圖像的透明通道(Alpha通道),通過(guò)設(shè)置參數(shù)flags=IMAGE_
UNCHANGED可以讀取透明通道。
(7) 對(duì)于彩色圖像文件,該函數(shù)默認(rèn)按彩色圖像格式讀取,也可以通過(guò)設(shè)置flags=0讀取為灰度圖像格式。將彩色圖像格式讀取為灰度圖像格式,本質(zhì)上是讀取的彩色圖像,并將彩色圖像轉(zhuǎn)換為灰度圖像。
(8) 目前支持的文件及擴(kuò)展名如下。
◎ Windows 位圖:.bmp、.dib。
◎ JPEG 文件:.jpeg、.jpg、.jpe。
◎ JPEG 2000文件:.jp2。
◎ 便攜式網(wǎng)絡(luò)圖形:.png。
◎ WebP:.webp。
◎ 便攜式圖像:.pbm、.pgm、.ppm、.pxm、.pnm。
◎ TIFF 文件:.tiff、.tif。


1.1.2 圖像的保存

函數(shù)cv.imwrite可以基于擴(kuò)展名的格式將圖像保存到指定文件。
函數(shù)原型
cv.imwrite(filename, img[,params]) → retval

參數(shù)說(shuō)明

  • filename:保存圖像的文件路徑和文件名,包括文件擴(kuò)展名。
  • img:要保存的 OpenCV 圖像,格式為多維Numpy數(shù)組。
  • params:編碼格式參數(shù),可選項(xiàng)如下。
    • IMWRITE_JPEG_QUALITY:設(shè)置JPEG/JPG格式圖片的質(zhì)量。數(shù)值越大,圖片質(zhì)量越高,取值范圍為0~100,默認(rèn)值為95。
    • IMWRITE_PNG_COMPRESSION:設(shè)置PNG 格式圖片的壓縮比。數(shù)值越大,壓縮比越大,取值范圍為0~9,默認(rèn)值為3。
    • IMWRITE_TIFF_RESUNIT:設(shè)置TIF 格式圖片的分辨率。
    • IMWRITE_WEBP_QUALITY:設(shè)置WEBP 格式圖片的質(zhì)量。數(shù)值越大,圖片質(zhì)量越高,取值范圍為1~100,默認(rèn)值為100。
    • IMWRITE_JPEG2000_COMPRESSION_X1000:設(shè)置JPEG2000格式圖片的質(zhì)量,默認(rèn)值為1000。
  • retval:返回值,是布爾值,保存成功標(biāo)志。
    ?
    注意問(wèn)題
    (1) 圖像通常保存為8位單通道圖像或BGR三通道彩色圖像,而BGRA四通道圖像可以使用Alpha通道保存為PNG圖像,更多設(shè)置詳見OpenCV說(shuō)明文檔(鏈接1-1)。
    (2) 函數(shù)cv.imwrite將OpenCV圖像(多維Numpy數(shù)組)保存為圖像文件,圖像的保存格式由filename的擴(kuò)展名決定,與讀取圖像文件時(shí)的圖像格式無(wú)關(guān)。
    (3) 函數(shù)cv.imwrite不支持帶有中文或空格的文件路徑和文件名,但也不會(huì)有報(bào)錯(cuò)提示。需要使用中文路徑或文件名時(shí),可以使用函數(shù)cv.imdecode 處理,參見【例程0103】。

【例程0101】用OpenCV讀取和保存圖像文件

本例程用OpenCV讀取和保存圖像文件,注意讀取圖像文件時(shí)的參數(shù)設(shè)置。

# 【0101】用OpenCV 讀取和保存圖像文件
import cv2 as cv

if __name__ == '__main__':
    # 讀取圖像文件,支持 BMP、JPG、PNG、TIFF 等常用格式
    filepath = "../images/Lena.tif"  # 讀取圖像文件的路徑
    img = cv.imread(filepath, flags=1)  # flags=1 讀取彩色圖像文件(BGR)
    gray = cv.imread(filepath, flags=0)  # flags=0 讀取為灰度圖像

    saveFile = "../images/imgSave1.png"  # 保存圖像文件的路徑
    cv.imwrite(saveFile, img, [int(cv.IMWRITE_PNG_COMPRESSION), 8])
    cv.imwrite("../images/imgSave2.png", gray)

程序說(shuō)明
(1) 本例程讀取的圖像文件是彩色圖像文件。讀取為彩色圖像時(shí)可以設(shè)置flags=1,也可以省略;讀取為灰度圖像時(shí)必須設(shè)置flags=0。
(2) 讀取和保存圖像文件可以使用相對(duì)路徑或絕對(duì)路徑。
(3) 讀取文件時(shí)要注意檢查指定路徑的圖像文件是否存在。


【例程0102】從網(wǎng)絡(luò)地址讀取圖像文件

本例程使用函數(shù)cv.imdecode從指定的內(nèi)存緩存中讀取數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換為圖像格式,用于從網(wǎng)絡(luò)傳輸數(shù)據(jù)中恢復(fù)圖像。

# 【0102】從網(wǎng)絡(luò)地址讀取圖像文件
import cv2 as cv
import numpy as np

if __name__ == '__main__':
    import urllib.request as request
    response = request.urlopen\
        ("https://profile.yssmx.com/8/E/F/0_youcans")  # 指定的 url 地址
    imgUrl = cv.imdecode(np.array(bytearray(response.read()), dtype=np.uint8), -1)

    cv.imshow("imgUrl", imgUrl)  # 在窗口顯示圖像
    key = cv.waitKey(5000)  # 5000 毫秒后自動(dòng)關(guān)閉
    cv.destroyAllWindows()

程序說(shuō)明
(1) 從網(wǎng)絡(luò)地址讀取圖像文件不能使用函數(shù)cv.imread,而要使用函數(shù)cv.imdecode。
(2) 函數(shù)cv.imdecode能將圖像編碼為流數(shù)據(jù),賦值到內(nèi)存緩存中,以方便網(wǎng)絡(luò)傳輸。


【例程0103】讀取和保存文件路徑中帶有中文字符的圖像

本例程用于讀取/保存文件路徑中帶有中文字符的圖像。

# 【0103】讀取和保存文件路徑中帶有中文字符的圖像
import cv2 as cv
import numpy as np

if __name__ == '__main__':
    filepath = "../images/測(cè)試圖01.tif"  # 帶有中文的文件路徑和文件名
    # img1 = cv.imread(filepath, flags=1)  # 中文路徑讀取失敗,但不會(huì)報(bào)錯(cuò)
    img2 = cv.imdecode(np.fromfile(filepath, dtype=np.uint8), flags=-1)

    saveFile = "../images/測(cè)試圖02.tif"  # 帶有中文的保存文件路徑
    # cv.imwrite(saveFile, img2)  # 中文路徑保存失敗,但不會(huì)報(bào)錯(cuò)
    cv.imencode(".jpg", img2)[1].tofile(saveFile)

程序說(shuō)明
如果讀取/保存圖像的路徑和文件名中含有中文字符,則不能用函數(shù)cv.imread/cv.imwrite操作,可以使用函數(shù)cv.imdecode/cv.imencode處理。


本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html


版權(quán)聲明:
youcans@xupt 原創(chuàng)作品,轉(zhuǎn)載必須標(biāo)注原文鏈接:(https://blog.csdn.net/youcans/article/details/132635637)
Copyright 2023 youcans, XUPT
Crated:2023-09-01

歡迎關(guān)注本書CSDN獨(dú)家連載專欄
《數(shù)字圖像處理-OpenCV/Python》連載: https://blog.csdn.net/youcans/category_12418787.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-705231.html

到了這里,關(guān)于《數(shù)字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《數(shù)字圖像處理-OpenCV/Python》連載(44)圖像的投影變換

    《數(shù)字圖像處理-OpenCV/Python》連載(44)圖像的投影變換

    本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html 本書CSDN獨(dú)家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 幾何變換分為等距變換、相似變換、仿射變換和投影變換,是指對(duì)圖像的位置、大小、形狀和投影進(jìn)行變換,將圖像從原始平面投影到新的視平面。OpenCV圖像的幾

    2024年02月04日
    瀏覽(125)
  • 《數(shù)字圖像處理-OpenCV/Python》連載(10)圖像屬性與數(shù)據(jù)類型

    《數(shù)字圖像處理-OpenCV/Python》連載(10)圖像屬性與數(shù)據(jù)類型

    本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html 本書CSDN獨(dú)家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 在Python語(yǔ)言中,OpenCV以Numpy數(shù)組存儲(chǔ)圖像,對(duì)圖像的訪問(wèn)和處理都是通過(guò)Numpy數(shù)組的操作來(lái)實(shí)現(xiàn)的。 本章內(nèi)容概要 介紹Python語(yǔ)言中OpenCV的數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)獲取圖像

    2024年02月07日
    瀏覽(222)
  • 《數(shù)字圖像處理-OpenCV/Python》連載(22)繪制直線與線段

    《數(shù)字圖像處理-OpenCV/Python》連載(22)繪制直線與線段

    本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html 本書CSDN獨(dú)家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 本章介紹OpenCV的繪圖功能和簡(jiǎn)單的鼠標(biāo)交互處理方法。與Excel或Matplotlib中的可視化數(shù)據(jù)圖不同,OpenCV中的繪圖功能主要用于在圖像的指定位置繪制幾何圖形。 本

    2024年02月02日
    瀏覽(121)
  • 《數(shù)字圖像處理-OpenCV/Python》連載(26)繪制橢圓和橢圓弧

    《數(shù)字圖像處理-OpenCV/Python》連載(26)繪制橢圓和橢圓弧

    本書京東優(yōu)惠購(gòu)書鏈接:https://item.jd.com/14098452.html 本書CSDN獨(dú)家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 本章介紹OpenCV的繪圖功能和簡(jiǎn)單的鼠標(biāo)交互處理方法。與Excel或Matplotlib中的可視化數(shù)據(jù)圖不同,OpenCV中的繪圖功能主要用于在圖像的指定位置繪制幾何圖形。 本

    2024年02月06日
    瀏覽(122)
  • 《數(shù)字圖像處理-OpenCV/Python》連載:空間濾波之高斯濾波器

    《數(shù)字圖像處理-OpenCV/Python》連載:空間濾波之高斯濾波器

    本書京東 優(yōu)惠購(gòu)書鏈接 https://item.jd.com/14098452.html 本書CSDN 獨(dú)家連載專欄 https://blog.csdn.net/youcans/category_12418787.html 圖像濾波是指在盡可能保留圖像細(xì)節(jié)特征的條件下對(duì)目標(biāo)圖像的噪聲進(jìn)行抑制,是常用的圖像處理方法。 空間濾波也稱空間域?yàn)V波,濾波器規(guī)定了鄰域形狀與鄰域

    2024年02月02日
    瀏覽(99)
  • 【Python_Opencv圖像處理框架】信用卡數(shù)字識(shí)別項(xiàng)目

    【Python_Opencv圖像處理框架】信用卡數(shù)字識(shí)別項(xiàng)目

    本篇文章是opencv學(xué)習(xí)的第六篇文章,前面主要講解了對(duì)圖像的一些基本操作,這篇文章我們就開始大展身手,將前面所學(xué)的基礎(chǔ)操作活學(xué)活用。既能復(fù)習(xí)基礎(chǔ)操作,又能學(xué)到一些新的知識(shí)。作為初學(xué)者,我盡己所能,但仍會(huì)存在疏漏的地方,希望各位看官不吝指正?? 我們通

    2024年02月03日
    瀏覽(90)
  • 數(shù)字圖像處理二維碼識(shí)別python+opencv實(shí)現(xiàn)二維碼實(shí)時(shí)識(shí)別

    數(shù)字圖像處理二維碼識(shí)別python+opencv實(shí)現(xiàn)二維碼實(shí)時(shí)識(shí)別

    數(shù)字圖像處理二維碼識(shí)別 python+opencv實(shí)現(xiàn)二維碼實(shí)時(shí)識(shí)別 特點(diǎn): (1)可以實(shí)現(xiàn)普通二維碼,條形碼; (2)解決了opencv輸出中文亂碼的問(wèn)題 (3)增加網(wǎng)頁(yè)自動(dòng)跳轉(zhuǎn)功能 (4)實(shí)現(xiàn)二維碼實(shí)時(shí)檢測(cè)和識(shí)別 代碼保證原創(chuàng)、無(wú)錯(cuò)誤、能正常運(yùn)行(如果電腦環(huán)境配置沒(méi)問(wèn)題) 送二維

    2024年01月16日
    瀏覽(102)
  • 數(shù)字圖像處理(實(shí)踐篇)二十七 Python-OpenCV 滑動(dòng)條的使用

    數(shù)字圖像處理(實(shí)踐篇)二十七 Python-OpenCV 滑動(dòng)條的使用

    目錄 1 涉及的函數(shù) 2 實(shí)踐 1 涉及的函數(shù) ⒈?setWindowProperty()用于設(shè)置GUI應(yīng)用程序的屬性 參數(shù) : ①?

    2024年01月25日
    瀏覽(97)
  • 數(shù)字圖像處理(實(shí)踐篇)二十九 OpenCV-Python在圖像中檢測(cè)矩形、正方形和三角形的實(shí)踐

    數(shù)字圖像處理(實(shí)踐篇)二十九 OpenCV-Python在圖像中檢測(cè)矩形、正方形和三角形的實(shí)踐

    目錄 1 方案 2 實(shí)踐 1 方案 ①檢測(cè)矩形和正方形 ⒈檢測(cè)圖像中的所有輪廓。 ⒉循環(huán)檢查所有檢測(cè)到的輪廓。 ⒊為每個(gè)輪廓找到近似的輪廓。如果近似輪廓中的頂點(diǎn)數(shù)為4,則計(jì)算 寬高比 用來(lái)區(qū)分 矩形 和 正方形 。如果寬高比在0.9到1.1之間,則認(rèn)為為正方形,否則的話,則為

    2024年01月25日
    瀏覽(99)
  • OpenCV數(shù)字圖像處理基于C++:圖像分割

    OpenCV數(shù)字圖像處理基于C++:圖像分割

    圖像閾值化分割是一種常用的、傳統(tǒng)的圖像分割技術(shù),因其 實(shí)現(xiàn)簡(jiǎn)單、計(jì)算量小、性能比較穩(wěn)定 而成為圖像分割中基本和應(yīng)用廣泛的分割技術(shù)。特別 適合于目標(biāo)和背景占據(jù)不同灰度級(jí)范圍的圖像 。不僅 可以極大地壓縮數(shù)據(jù)量 ,而且大大 簡(jiǎn)化了分析和處理的步驟 ,是進(jìn)行

    2024年02月11日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包