为了账号安全,请及时绑定邮箱和手机立即绑定

cv2 如何从图片文件流获取image对象

cv2 如何从图片文件流获取image对象

C++
慕无忌1623718 2019-01-25 16:08:01
我最近需要对图像做一些处理,当我经过一系列协议解析和解码获取到图片流的时候,下一步需要用cv2对图片进行处理,首先就需要拿到cv2的图片对象。一般情况是import cv2img = cv2.imread("test.jpg")这样就能直接拿到img对象。可是我想在内存中直接转换,不想写入文件,再用cv2读入,这样就能少一个图片缓存的步骤。各位大神帮下忙,我鼓捣半天了,该怎么实现呢?比如fc= open("test.jpg","rb").read()这时候fc就是图片的文件流,这与我处理得到的文件流是一样的。那么现在我该如何用cv2读入呢?cv2.imread(fc)是肯定不对的。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

一楼讲的很认真,逻辑也没毛病,但是很遗憾答非所问。

fc= open("test.jpg","rb").read() 

#将fc文件字符流,转化为numpy数组#其实就是将fc中的字符流中的每个字符转换为对应的ascii码值#然后保存在np数组中,fc中字符的ascii码对应数组中的一个元素)#假如fc文件字符流由100个字符构成,那么fileNPArry数组的宽度就等于100)fileNPArray = np.fromstring(fc, np.uint8)#cv2.IMREAD_COLOR 以彩色模式读入#cv2.IMREAD_GRAYSCALE 以灰色模式读入img = cv2.imdecode(fileNPArray ,cv2.IMREAD_COLOR)#此时的img 就是你曾经通过cv2.imread()方法导入的图片对象了


查看完整回答
反对 回复 2019-01-25
  • 1 回答
  • 0 关注
  • 655 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信