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

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

cv2.imread?和?cv2.imdecode?用法及區(qū)別_python

作者:zy_destiny ? 更新時(shí)間: 2023-07-02 編程語(yǔ)言

對(duì)于路徑中含有中文的圖像,直接用cv2.imread讀取會(huì)報(bào)錯(cuò),上次看到有大佬使用cv2.imdecode就可以正常讀取,有點(diǎn)好奇,所以今天來(lái)記錄下二者用法和區(qū)別。

?1.讀取圖像的兩種方式對(duì)比

cv2.imread正常讀取影像

import cv2
path = '/data/北京/beijing.png'
img = cv2.imread(path)

運(yùn)行上述代碼,會(huì)報(bào)錯(cuò)!

cv2.imdecode從內(nèi)存中讀取影像

import cv2
path = '/data/北京/beijing.png'
arr = np.fromfile(path, dtype=np.uint8)
img = cv2.imdecode(arr, flags=cv2.IMREAD_COLOR)

運(yùn)行上述代碼,成功!

并且imdecode得到的影像波段順序是RGB,不是BGR,這是與opencv區(qū)別的地方。

函數(shù)說(shuō)明:

np.decode? 從內(nèi)存的緩沖區(qū)讀取圖像

np.fromfile? 將文本或二進(jìn)制文件中數(shù)據(jù)構(gòu)造成數(shù)組

?2.保存圖像的兩種方式對(duì)比

cv2.imwrite 正常讀取影像

import cv2
out_path = '/data/北京/beijing.png'
cv2.imwrite(out_path,img)

運(yùn)行上述代碼,會(huì)報(bào)錯(cuò)!

cv2.imdecode從內(nèi)存中讀取影像

import cv2
out_path = '/data/北京/beijing.png'
arr = cv2.imencode('png',img)
out[1].tofile(out_path)

運(yùn)行上述代碼,成功!

?函數(shù)說(shuō)明:

cv2.encode? 將圖像編碼到內(nèi)存緩沖區(qū)中

np.tofile? 將數(shù)組中的數(shù)據(jù)以二進(jìn)制格式寫進(jìn)文件

原文鏈接:https://blog.csdn.net/qq_38308388/article/details/129199454

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新