0

我们从一些压缩的 JPG 或 PNG 文件中将图像加载到打开的 CV 中。它真的很大。从 (2000:2000) 到 (2100:2100)(正方形 100x100),我们有一些投资回报率。我们关闭了一张图片。我们能否再次打开该 ROI 而不将完整的图像文件加载到内存中?如果是,我们该怎么做?任何要保存的元数据?

4

2 回答 2

1

我们遇到了同样的问题,最终使用 GDAL (http://www.gdal.org) 加载图像,然后将它们转换为 IplImage。

于 2012-02-08T12:34:46.370 回答
1

如果您正在使用以常规模式存储位的位图或其他格式,那么您可以通过自己解码文件并仅读取您需要的偏移量来做到这一点。

位图文件格式

提取PNG图像的一部分

我不确定,但我认为使用 jpeg 是不可能的,因为图像存储为频域信息,这意味着您需要所有数据才能以原始细节生成图像的任何一部分。

或者正如我在评论中所建议的那样,如果您的 ROI 数量有限并且您知道以后需要哪些 ROI(或者即使您不知道有哪些 ROI,那么您可以将其保存在内存中)没有那么多)。

哪一个听起来对你来说是个好方法?我很久以前读过 bmp,但手头没有代码。如果您需要它来节省投资回报率,我可以挖掘 opencv 代码。不过这很容易。

于 2012-02-05T16:25:19.607 回答