1

我有一系列大图像,我想加载到 matlab 中,然后也进行一些处理。由于图像大小,读取它们需要很长时间,并且会很快填满计算机内存。

但是,我只对图像的中间部分感兴趣,大约 100 x 100 像素左右的区域。

有没有办法只读取图像的那个部分,从而节省时间和内存?

目前我正在使用:

ROIx = 450:550;
ROIy = 650:750;
image = double( imread( filename ) );
image = image(ROIx, ROIy);

但是,imread() 会加载整个图像,这需要很长时间。有没有办法只阅读我感兴趣的部分?

(一个过程是将每个图像裁剪成一个较小的图像并重新保存。但我不想裁剪图像)。

谢谢,实验室迷

4

2 回答 2

2

Matlab 2012a 表明您可以从 JPEG2000 和 TIFF 图像中读取部分图像。查看 imread 的文档,检查选项 'PixelRegion' 以读取 TIFF。

于 2012-04-18T13:07:50.087 回答
0

您将需要使用fopen之类的工具来打开文件并手动读取部分内容。当然,您将需要处理大量的编码/解码。或者反过来一点,就是增加系统的交换空间。如果您遇到内存不足错误。

于 2012-04-18T13:21:09.773 回答