在Octave中只读取一种RGB颜色

时间:2013-03-23 12:58:06

标签: optimization image-processing octave

我必须使用PNG格式读取几百个RGB图像。我只需要其中一种颜色(红色,绿色或蓝色),现在我正在做这样的事情:

A = imread(file);
A = A(:, :, 1);

我想知道是否只能读取一种颜色的值,以便更快地读取。我需要这个操作尽可能快。

1 个答案:

答案 0 :(得分:0)

就像提到的@carandraug一样,octave没有提供这样的方法。您已经发布了最简单的选项。 Octave使用ImageMagick作为后端来读取图像文件。这里没有太多优化空间。

此外,如果你真的需要加快大量图像的阅读过程,你可能想要寻找其他阅读方法或实现自己的阅读方法。一个好的起点是libpng的源代码。另一个想法是首先将你的RGB png转换为未压缩的简单bmp。让转换图像的过程由您选择的另一个快速程序处理。创建bmp例如在ram驱动器内部并使用低级命令(fread)从八度音程中读取它们。这种策略可以在某种程度上进行优化。但如果我们谈论很多图像,他们只值得努力。