diff --git a/gui/NeuroUI/netlearner.cpp b/gui/NeuroUI/netlearner.cpp index 8baffa5..7e15e6a 100644 --- a/gui/NeuroUI/netlearner.cpp +++ b/gui/NeuroUI/netlearner.cpp @@ -3,6 +3,7 @@ #include "trainingdataloader.h" #include +#include void NetLearner::run() { @@ -47,6 +48,17 @@ void NetLearner::run() { const TrainingDataLoader::Sample &trainingSample = dataLoader.getRandomSample(); + QImage sampleImage(32, 32, QImage::Format_ARGB32); + for (unsigned int y = 0; y < 32; ++y) + { + for (unsigned int x = 0; x < 32; ++x) + { + uchar grayValue = trainingSample.second[x + y * 32] * 255; + sampleImage.setPixel(x, y, qRgb(grayValue, grayValue, grayValue)); + } + } + emit sampleImageLoaded(sampleImage); + std::vector targetValues = { trainingSample.first / 10.0 diff --git a/gui/NeuroUI/netlearner.h b/gui/NeuroUI/netlearner.h index 2c2b6fa..70378a4 100644 --- a/gui/NeuroUI/netlearner.h +++ b/gui/NeuroUI/netlearner.h @@ -14,6 +14,7 @@ signals: void logMessage(const QString &logMessage); void progress(double progress); void currentNetError(double error); + void sampleImageLoaded(const QImage &image); }; #endif // NETLEARNER_H diff --git a/gui/NeuroUI/neuroui.cpp b/gui/NeuroUI/neuroui.cpp index bd63ecd..c057984 100644 --- a/gui/NeuroUI/neuroui.cpp +++ b/gui/NeuroUI/neuroui.cpp @@ -31,6 +31,8 @@ void NeuroUI::on_runButton_clicked() connect(m_netLearner.get(), &NetLearner::finished, this, &NeuroUI::netLearnerFinished); connect(m_netLearner.get(), &NetLearner::currentNetError, ui->errorPlotter, &ErrorPlotter::addErrorValue); + + connect(m_netLearner.get(), &NetLearner::sampleImageLoaded, this, &NeuroUI::setImage); } m_netLearner->start(); @@ -61,3 +63,10 @@ void NeuroUI::progress(double progress) ui->progressBar->setValue(value); } + +void NeuroUI::setImage(const QImage &image) +{ + QPixmap pixmap; + pixmap.convertFromImage(image); + ui->label->setPixmap(pixmap); +} diff --git a/gui/NeuroUI/neuroui.h b/gui/NeuroUI/neuroui.h index f988686..0799c53 100644 --- a/gui/NeuroUI/neuroui.h +++ b/gui/NeuroUI/neuroui.h @@ -28,6 +28,7 @@ private slots: void netLearnerStarted(); void netLearnerFinished(); void progress(double progress); + void setImage(const QImage &image); private: Ui::NeuroUI *ui; diff --git a/gui/NeuroUI/neuroui.ui b/gui/NeuroUI/neuroui.ui index 5f135c9..c10c51f 100644 --- a/gui/NeuroUI/neuroui.ui +++ b/gui/NeuroUI/neuroui.ui @@ -20,11 +20,37 @@ - - - true - - + + + + + true + + + + + + + + 0 + 0 + + + + + 128 + 0 + + + + + + + Qt::AlignCenter + + + + diff --git a/gui/NeuroUI/trainingdataloader.cpp b/gui/NeuroUI/trainingdataloader.cpp index cfde6d3..d40bd62 100644 --- a/gui/NeuroUI/trainingdataloader.cpp +++ b/gui/NeuroUI/trainingdataloader.cpp @@ -37,8 +37,9 @@ void TrainingDataLoader::addSamples(const QString &sourceFile, TrainingDataLoade { for (int x = 0; x < scanWindow.width(); ++x) { - QRgb color = sourceImage.pixel(scanPosition.x() + x, scanPosition.y() + y); - sample.second[x + y * scanWindow.height()] = qGray(color) / 255.0; + QRgb pixelColor = sourceImage.pixel(scanPosition.x() + x, scanPosition.y() + y); + uint grayValue = qGray(pixelColor); + sample.second[x + y * scanWindow.height()] = grayValue / 255.0; } }