mirror of
https://github.com/brmlab/medirap.git
synced 2025-08-02 11:03:37 +02:00
store images into structure
This commit is contained in:
parent
a0d3dba238
commit
8039ff529a
4 changed files with 29 additions and 7 deletions
|
@ -2,6 +2,7 @@
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <qdebug.h>
|
#include <qdebug.h>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
#define BLACK 0xFF000000
|
#define BLACK 0xFF000000
|
||||||
#define RED 0xFFFF0000
|
#define RED 0xFFFF0000
|
||||||
|
@ -13,7 +14,6 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
ui(new Ui::MainWindow)
|
ui(new Ui::MainWindow)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
@ -26,7 +26,13 @@ void MainWindow::on_pushLoad_clicked()
|
||||||
QString filename = QFileDialog::getOpenFileName(this, "Open Image", "", "Series of medical files (*.txt)");
|
QString filename = QFileDialog::getOpenFileName(this, "Open Image", "", "Series of medical files (*.txt)");
|
||||||
if (filename.isNull()) return;
|
if (filename.isNull()) return;
|
||||||
QFileInfo pathInfo(filename);
|
QFileInfo pathInfo(filename);
|
||||||
vdata.load(pathInfo.path(), pathInfo.fileName());
|
if (!vdata.load(pathInfo.path(), pathInfo.fileName())) {
|
||||||
|
QMessageBox("Error", "Error loading data");
|
||||||
|
} else {
|
||||||
|
ui->sliderPosition->setMaximum(vdata.getDimZ());
|
||||||
|
ui->sliderPosition->setValue(vdata.getDimZ()/2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -124,3 +130,11 @@ void MainWindow::floodfill(QImage &img)
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void MainWindow::on_sliderPosition_valueChanged(int value)
|
||||||
|
{
|
||||||
|
QPixmap pixmap;
|
||||||
|
scene.clear();
|
||||||
|
pixmap.convertFromImage(image);
|
||||||
|
scene.addPixmap(pixmap);
|
||||||
|
}
|
||||||
|
|
|
@ -20,9 +20,13 @@ public:
|
||||||
private slots:
|
private slots:
|
||||||
void on_pushLoad_clicked();
|
void on_pushLoad_clicked();
|
||||||
|
|
||||||
|
void on_sliderPosition_valueChanged(int value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
VoxelData vdata;
|
VoxelData vdata;
|
||||||
|
QImage img;
|
||||||
|
QGraphicsScene scene;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
|
|
@ -11,7 +11,7 @@ bool VoxelData::load(QString path, QString filename)
|
||||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||||
return false;
|
return false;
|
||||||
QTextStream in(&file);
|
QTextStream in(&file);
|
||||||
int i = 0;
|
int z = 0;
|
||||||
data = new VOXELDATA[512*512*512];
|
data = new VOXELDATA[512*512*512];
|
||||||
while (!in.atEnd()) {
|
while (!in.atEnd()) {
|
||||||
QString line = in.readLine();
|
QString line = in.readLine();
|
||||||
|
@ -20,10 +20,14 @@ bool VoxelData::load(QString path, QString filename)
|
||||||
img.load(path + "/" + line);
|
img.load(path + "/" + line);
|
||||||
dimx = img.width();
|
dimx = img.width();
|
||||||
dimy = img.height();
|
dimy = img.height();
|
||||||
qDebug() << img.format() ;
|
for (int x = 0; x < dimx; ++x) {
|
||||||
i++;
|
for (int y = 0; y < dimy; ++y) {
|
||||||
|
data[ x + y*512 + z*512*512] = img.pixel(x,y) & 0xFF;
|
||||||
}
|
}
|
||||||
dimz = i;
|
}
|
||||||
|
z++;
|
||||||
|
}
|
||||||
|
dimz = z;
|
||||||
file.close();
|
file.close();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#define VOXELDATA char
|
#define VOXELDATA unsigned char
|
||||||
|
|
||||||
class VoxelData
|
class VoxelData
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue