我有一个关于Neuroph 2.6的Neuroph图像识别的FractionRgbData
类的疑问。我不太理解静态方法FractionRgbData.convertRgbInputToBinaryBlackAndWhite(double[] inputRGB)
的实现(请见下方方法的副本)。更具体地说,我不明白为什么在for循环条件中输入数组的长度要除以3,并且for循环变量i
每次迭代也增加3?我认为将输入数组除以3就足够了。
请注意,这个方法在ImageRecognitionHelper
类中使用,该类显示inputRGB
双精度数来自FractionRgbData.getFlattenedRgbValues()
,可以在这里查看。据我所知,inputRGB
双精度数组包含图像的红色、绿色和蓝色通道,一个接一个地排列。
希望有人能对这个实现提供一些见解!
提前感谢,
@Barry NL
/** * 将图像的RGB数据转换为二进制黑白数据 * @param inputRGB 平展的RGB数据 * @return 图像的二进制黑白表示 */public static double[] convertRgbInputToBinaryBlackAndWhite(double[] inputRGB) { double inputBinary[]= new double[inputRGB.length/3]; for(int i=0; i<inputRGB.length/3; i+=3) { if (inputRGB>0) inputBinary = 0; else inputBinary = 1; } return inputBinary;}
回答:
Neuroph的一位开发者已经在Neuroph的支持论坛上回答了上述问题。可以在这里找到。
简而言之,开发者表示该实现是不正确的,不能正确转换为黑白图像。