猿问

如何使用 OpenCV 直接读取 tarfile 对象

我有一个包含 tiff 文件的 tarball。我试图在不提取和保存它们的情况下阅读它们。这是我所拥有的:


tar = tarfile.open("filename.tar", 'r|')

for tiff in tar:

    if tiff.isfile():

        c = tar.extractfile(tiff)

typ(c) = tarfile.ExFileObject


我想直接用 OpenCV 读取它以获得Mat格式。我可以用 PIL 或 matplotlib 读取它以获得一个 numpy 数组,它们都像魅力一样工作,但我没有找到任何最近或方便的方法将 numpy 数组转换为 Mat 格式。再次,我想知道是否有一种方法可以直接阅读它而无需保存和阅读它。


如果无法直接读取它并且我必须将 numpy 数组转换为 Mat,我已经尝试了我能找到的所有解决方案,所有解决方案都适用于以前的版本,但没有一个对我有用。我发现了这些:


pyopencv:有这个:pyopencv.Mat.from_pil_image(image)


或ctypes-opencv


适用于 python 2 和旧版本的 opencv


我还发现:


pyboostcv转换器


NUMPY <=> OpenCV 的 cv::Mat 转换器


但他们都老了,没有一个为我工作。


如果有人可以提供帮助,我将不胜感激。


我正在使用 python 3.6 opencv 3.2.0


一只甜甜圈
浏览 219回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答