csdn_black 2018-04-23 05:58 采纳率: 50%
浏览 12525
已采纳

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料