我必须使用PNG格式读取几百个RGB图像。我只需要其中一种颜色(红色,绿色或蓝色),现在我正在做这样的事情:
A = imread(file);
A = A(:, :, 1);
我想知道是否只能读取一种颜色的值,以便更快地读取。我需要这个操作尽可能快。
答案 0 :(得分:0)
就像提到的@carandraug一样,octave没有提供这样的方法。您已经发布了最简单的选项。 Octave使用ImageMagick作为后端来读取图像文件。这里没有太多优化空间。
此外,如果你真的需要加快大量图像的阅读过程,你可能想要寻找其他阅读方法或实现自己的阅读方法。一个好的起点是libpng的源代码。另一个想法是首先将你的RGB png转换为未压缩的简单bmp。让转换图像的过程由您选择的另一个快速程序处理。创建bmp例如在ram驱动器内部并使用低级命令(fread)从八度音程中读取它们。这种策略可以在某种程度上进行优化。但如果我们谈论很多图像,他们只值得努力。