我是用的python,cv2.imread()函数给它指定路径可以读取图片。
我现在想做的是:前端给我传一个post请求,此图片转化成base64的形式,我想通过cv2
打开,imread好像不行。求大神指教怎么办?
比如这样就会报错:
a=open('C:\\Users\\51530\\Desktop\\openFace\\137.png', 'rb')
base64_data = base64.b64encode(a.read())
im2=base64.b64decode(base64_data)
cv2img=cv2.imread(im2)
错误:TypeError: bad argument type for built-in operation
在就是python 的from PIL import Image 可以打开上面代码的a,但是读取格式和cv2不一样。
总之我是想拿到base64加密的图片,想转成RGB形式的ndarry图片,cv2直接传图片的base64解码不行,求指教啊,万分感谢
#python3下运行
import cv2
import base64
import numpy as np
img=open('F:\cat.jpg', 'rb')
img_b = base64.b64encode(img.read())
print(img_b)
imD=base64.b64decode(img_b)
nparr=np.fromstring(imD,np.uint8)
#cv2.IMREAD_COLOR 以彩色模式读入 1
#cv2.IMREAD_GRAYSCALE 以灰色模式读入 0
image=cv2.imdecode(nparr,cv2.IMREAD_COLOR)
cv2.imshow('Image',image)
cv2.waitKey()
stackoverflow 这里有你需要的答案: https://stackoverflow.com/questions/47990952/typeerror-bad-argument-type-for-built-in-operation?rq=1&utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa