cv2.imread?和?cv2.imdecode?用法及區(qū)別
對于路徑中含有中文的圖像,直接用cv2.imread讀取會報錯,上次看到有大佬使用cv2.imdecode就可以正常讀取,有點好奇,所以今天來記錄下二者用法和區(qū)別。
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區(qū)別的地方。
函數(shù)說明:
np.decode 從內存的緩沖區(qū)讀取圖像
np.fromfile 將文本或二進制文件中數(shù)據(jù)構造成數(shù)組
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)
運行上述代碼,成功!
函數(shù)說明:
cv2.encode 將圖像編碼到內存緩沖區(qū)中
np.tofile 將數(shù)組中的數(shù)據(jù)以二進制格式寫進文件
到此這篇關于cv2.imread 和 cv2.imdecode 用法的文章就介紹到這了,更多相關cv2.imread 和 cv2.imdecode內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python的mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)操作示例
這篇文章主要介紹了python的mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)操作,結合實例形式分析了python操作mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)相關實現(xiàn)技巧,需要的朋友可以參考下2019-09-09TensorFlow卷積神經網絡之使用訓練好的模型識別貓狗圖片
今天小編就為大家分享一篇關于TensorFlow卷積神經網絡之使用訓練好的模型識別貓狗圖片,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03python實現(xiàn)模擬鍵盤鼠標重復性操作Pyautogui
這篇文章主要為大家詳細介紹了python如何利用Pyautogui模擬鍵盤鼠標重復性操作,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11Python實現(xiàn)讀取郵箱中的郵件功能示例【含文本及附件】
這篇文章主要介紹了Python實現(xiàn)讀取郵箱中的郵件功能,可讀取郵件文本及附件的功能,涉及Python針對郵件的獲取、分析、保存等相關操作技巧,需要的朋友可以參考下2017-08-08