的阅读款我有大的图片我想加载到MATLAB,然后应用一些处理过的序列。由于图像的大小,读取它们需要很长时间,并且非常快速地填充计算机内存。MATLAB:图像
不过,我只在图像的中间部分,由100个像素左右,约100的区域感兴趣。
有没有办法只能在图像,从而节省时间和记忆的那部分读出?
目前我使用:
ROIx = 450:550;
ROIy = 650:750;
image = double(imread(filename));
image = image(ROIx, ROIy);
然而,imread()加载的整体形象,而这需要很长的时间。有没有办法只阅读我感兴趣的部分?
(一个过程是要经过每个图像裁剪成较小的一个,并重新保存它。但我宁愿不要裁剪图像)。
感谢, labjunky
没有指定既不是文件格式,位深度也不色彩模式(灰度,RGB,其它的呢?)。这些数据对寻找替代解决方案会很有帮助。 – nrz 2012-04-18 09:03:02
它们是灰度,1024×1392像素,16位tiff图像。 – labjunky 2012-04-18 09:31:08
我不认为Matlab有这样做的任何简单的方法。根据格式的不同,您可以使用[内存映射](http://www.mathworks.co.uk/help/techdoc/ref/memmapfile.html)编写自己的图像加载器,以随机访问文件。尽管你需要对格式有非常深入的理解。 – Richante 2012-04-18 09:40:26