成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决)
成功解決cv2.imwrite(filename, img)代碼輸出中文文件亂碼的問題(cv2.imencode方法解決)
?
?
?
目錄
解決問題
解決思路
1、從網(wǎng)絡(luò)讀取圖像數(shù)據(jù)并轉(zhuǎn)換成圖片格式
2、將圖片編碼到緩存,并保存到本地
解決方法
?
?
?
?
?
?
解決問題
cv2.imwrite(filename, img)代碼,輸出中文文件亂碼的問題
?
?
解決思路
中文亂碼,利用imencode方法,cv2.imencode('.jpg', img)[1].tofile(filename)?
cv2.imdecode()函數(shù):從指定的內(nèi)存緩存中讀取數(shù)據(jù),并把數(shù)據(jù)轉(zhuǎn)換(解碼)成圖像格式;主要用于從網(wǎng)絡(luò)傳輸數(shù)據(jù)中恢復(fù)出圖像。
cv2.imencode()函數(shù):是將圖片格式轉(zhuǎn)換(編碼)成流數(shù)據(jù),賦值到內(nèi)存緩存中;主要用于圖像數(shù)據(jù)格式的壓縮,方便網(wǎng)絡(luò)傳輸。
?
1、從網(wǎng)絡(luò)讀取圖像數(shù)據(jù)并轉(zhuǎn)換成圖片格式
# -*- coding: utf-8 -*- import numpy as np import urllib import cv2url = 'http://www.pyimagesearch.com/wp-content/uploads/2015/01/google_logo.png' resp = urllib.urlopen(url) image = np.asarray(bytearray(resp.read()), dtype="uint8") image = cv2.imdecode(image, cv2.IMREAD_COLOR) cv2.imshow('URL2Image',image) cv2.waitKey()
2、將圖片編碼到緩存,并保存到本地
# -*- coding: utf-8 -*-
import numpy as np
import urllib
import cv2img = cv2.imread('0122.jpg')
# '.jpg'表示把當(dāng)前圖片img按照jpg格式編碼,按照不同格式編碼的結(jié)果不一樣
img_encode = cv2.imencode('.jpg', img)[1]
# imgg = cv2.imencode('.png', img)data_encode = np.array(img_encode)
str_encode = data_encode.tostring()# 緩存數(shù)據(jù)保存到本地
with open('img_encode.txt', 'w') as f:f.write(str_encode)f.flush
?
參考文章
OpenCV-Python cv2.imdecode()和cv2.imencode() 圖片解碼和編碼
?
解決方法
將
cv2.imwrite(filename, img)
改為
cv2.imencode('.jpg', img)[1].tofile(filename)?
?
哈哈,大功告成!
?
?
總結(jié)
以上是生活随笔為你收集整理的成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DayDayUp:《复仇者联盟4:终局之
- 下一篇: 成功解决ImportError: can