0
使用Java图像的我通过HTTP获取一些图片:在Python的OpenCV的
val ostream = new ByteArrayOutputStream()
ImageIO.write(imageurl, imageType, ostream)
val istream = new ByteArrayInputStream(ostream.toByteArray)
(它实际上是斯卡拉,但使用此代码本身的Java库,所以没有具体的阶魔法)。
然后我推动istream
到数据库(在我的情况下它是GridFS,它是MongoDB的一部分)。 现在我需要使用它的图像(字节阵列)在OpenCV中(W/Python绑定):
db = Connection(myserver,myport).DB
fs = GridFS(db)
bytearray = fs.get(id).read()
鉴于这种情况,我怎么能在OpenCV函数使用创建Mat
?
它确实存在于本机C++ OpenCV中,但我无法在代码中找到'imdecode' in python binding [reference](http://opencv.willowgarage.com/documentation/python/highgui_reading_and_writing_images_and_video.html)。 –
@ om-nom-nom你使用的是什么版本的OpenCV?自OpenCV 2.2以来,此功能可用。如果没有此功能,您只能将图像保存到临时文件,并使用LoadImage读取它或使用其他库解码图像。 –
2.1.0-2(python-opencv)来自gijzelaar回购。我已经看到了更新的opencv软件包,但是没有新的python绑定(我知道我可以使用willowgarage或其他站点的代码自己创建opencv,但是如果有另一个站点,我宁愿不这样做办法)。将图像写入磁盘然后将其交换回来将会起作用,但这会显着降低性能。 –