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

學無先后,達者為師

網站首頁 編程語言 正文

cv2.imread?和?cv2.imdecode?用法及區別_python

作者:zy_destiny ? 更新時間: 2023-07-02 編程語言

對于路徑中含有中文的圖像,直接用cv2.imread讀取會報錯,上次看到有大佬使用cv2.imdecode就可以正常讀取,有點好奇,所以今天來記錄下二者用法和區別。

?1.讀取圖像的兩種方式對比

cv2.imread正常讀取影像

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

運行上述代碼,會報錯!

cv2.imdecode從內存中讀取影像

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

運行上述代碼,成功!

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

函數說明:

np.decode? 從內存的緩沖區讀取圖像

np.fromfile? 將文本或二進制文件中數據構造成數組

?2.保存圖像的兩種方式對比

cv2.imwrite 正常讀取影像

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

運行上述代碼,會報錯!

cv2.imdecode從內存中讀取影像

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

運行上述代碼,成功!

?函數說明:

cv2.encode? 將圖像編碼到內存緩沖區中

np.tofile? 將數組中的數據以二進制格式寫進文件

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

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