package org.neuroph.samples.adalineDigits;
import org.neuroph.core.data.DataSetRow;
public class Data {
public final static int CHAR_WIDTH = 5;
public final static int CHAR_HEIGHT = 7;
public static String[][] DIGITS = {
{" OOO ",
"O O",
"O O",
"O O",
"O O",
"O O",
" OOO "},
{" O ",
" OO ",
"O O ",
" O ",
" O ",
" O ",
" O "},
{" OOO ",
"O O",
" O",
" O ",
" O ",
" O ",
"OOOOO"},
{" OOO ",
"O O",
" O",
" OOO ",
" O",
"O O",
" OOO "},
{" O ",
" OO ",
" O O ",
"O O ",
"OOOOO",
" O ",
" O "},
{"OOOOO",
"O ",
"O ",
"OOOO ",
" O",
"O O",
" OOO "},
{" OOO ",
"O O",
"O ",
"OOOO ",
"O O",
"O O",
" OOO "},
{"OOOOO",
" O",
" O",
" O ",
" O ",
" O ",
"O "},
{" OOO ",
"O O",
"O O",
" OOO ",
"O O",
"O O",
" OOO "},
{" OOO ",
"O O",
"O O",
" OOOO",
" O",
"O O",
" OOO "}};
public static DataSetRow convertImageIntoData(String[] image) {
DataSetRow dataSetRow = new DataSetRow(Data.CHAR_HEIGHT * Data.CHAR_WIDTH);
double[] array = new double[Data.CHAR_WIDTH * Data.CHAR_HEIGHT];
for (int row = 0; row < Data.CHAR_HEIGHT; row++) {
for (int column = 0; column < Data.CHAR_WIDTH; column++) {
int index = (row * Data.CHAR_WIDTH) + column;
char ch = image[row].charAt(column);
array[index] = (ch == 'O' ? 1 : -1);
}
}
dataSetRow.setInput(array);
return dataSetRow;
}
public static String[] convertDataIntoImage(double[] data) {
String[] image = new String[data.length / Data.CHAR_WIDTH];
String row = "";
for (int i = 0; i < data.length; i++) {
if (data[i] == 1) {
row += "O";
} else {
row += " ";
}
if (row.length() % 5 == 0 && row.length() != 0) {
image[i / 5] = row;
row = "";
}
}
return image;
}
}
Ads help maintain this website.