csdn_black
2018-04-23 05:58
采纳率: 37.5%
浏览 12.1k

opencv 怎么读取打开的图片

我是用的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解码不行,求指教啊,万分感谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • LongLongWei_CsDn 2018-04-23 08:04
    已采纳

    #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()

    点赞 打赏 评论
  • 阿vin 2018-04-23 06:01
    点赞 打赏 评论

相关推荐 更多相似问题