From 6de68a8548db03c8abe1ea4fc4f416c01d2e8ad9 Mon Sep 17 00:00:00 2001 From: zara Date: Fri, 14 Jun 2024 17:48:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=A4=9A=E7=82=B9=E6=A0=A1?= =?UTF-8?q?=E6=AD=A3=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 5 +- CMakeLists.txt.user | 20 ++++++- install.nsi.in | 20 ++----- mainwindow.cpp | 79 ++++++++++++++++---------- mainwindow.h | 2 - mainwindow.ui | 64 +++++++++------------- menu1.cpp | 14 ++++- menu1.h | 4 ++ menu4.cpp | 16 +++--- menu4.h | 2 +- menu4.ui | 5 +- menu5.cpp | 78 +++++++++++++++++++++++++- menu5.h | 17 ++++-- menu5.ui | 53 ++++++++++++++++-- multipoint.cpp | 131 +++++++++++++++++++++++++++++++++----------- multipoint.h | 11 +++- twopoint.h | 1 + usbcontrol.cpp | 8 +-- 18 files changed, 379 insertions(+), 151 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a60f85..00dc6ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ 锘縞make_minimum_required(VERSION 3.5) -set(PROJECT_VERSION 1.4.2.0) +set(PROJECT_VERSION 1.4.2.1) add_definitions(-DProjectVersion=\"${PROJECT_VERSION}\") project(zxrcClient VERSION ${PROJECT_VERSION} LANGUAGES CXX) @@ -53,11 +53,12 @@ set(LIBS legacy_stdio_definitions ) -find_package(QFluentWidgets REQUIRED) + find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +find_package(QFluentWidgets REQUIRED) set(PROJECT_SOURCES main.cpp diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user index f20f2e2..bac5166 100644 --- a/CMakeLists.txt.user +++ b/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -400,6 +400,22 @@ 1 + true + true + true + + 2 + + false + zxrcClient + CMakeProjectManager.CMakeRunConfiguration.zxrcClient + zxrcClient + true + true + true + D:/WorkSpace/zxrcClientNew/build-zxrcClient-Desktop_Qt_5_15_2_MSVC2019_64bit-Release + + true true true @@ -415,7 +431,7 @@ true D:/WorkSpace/zxrcClientNew/build-zxrcClient-Desktop_Qt_5_15_2_MSVC2019_64bit-Release - 1 + 2 diff --git a/install.nsi.in b/install.nsi.in index a632cc5..d7b5112 100644 --- a/install.nsi.in +++ b/install.nsi.in @@ -46,7 +46,7 @@ SetCompressor lzma ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile "Setup.exe" +OutFile "${PRODUCT_NAME} ${PRODUCT_VERSION}Setup.exe" InstallDir "$PROGRAMFILES\中芯热成上位机" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show @@ -65,7 +65,7 @@ Section "MainSection" SEC01 CreateShortCut "$DESKTOP\中芯热成上位机.lnk" "$INSTDIR\zxrcClient.exe" SetOverwrite try File "D3Dcompiler_47.dll" - File "histviewer.exe" + SetOutPath "$INSTDIR\iconengines" File "iconengines\qsvgicon.dll" SetOutPath "$INSTDIR\imageformats" @@ -88,11 +88,10 @@ Section "MainSection" SEC01 SetOutPath "$INSTDIR\platforms" File "platforms\qwindows.dll" SetOutPath "$INSTDIR" - File "Qt5Charts.dll" File "Qt5Core.dll" File "Qt5Gui.dll" - File "Qt5SerialPort.dll" File "Qt5Svg.dll" + File "Qt5Xml.dll" File "Qt5Widgets.dll" File "qtcsettings.cmake" SetOutPath "$INSTDIR\styles" @@ -122,10 +121,7 @@ Section "MainSection" SEC01 File "translations\qt_uk.qm" File "translations\qt_zh_TW.qm" SetOutPath "$INSTDIR" - File "usbcam.lib" - File "zxrcClient.exp" - File "zxrcClient.lib" - File "更新记录.txt" + SectionEnd Section -AdditionalIcons @@ -156,9 +152,6 @@ FunctionEnd Section Uninstall Delete "$INSTDIR\uninst.exe" - Delete "$INSTDIR\更新记录.txt" - Delete "$INSTDIR\zxrcClient.lib" - Delete "$INSTDIR\zxrcClient.exp" Delete "$INSTDIR\usbcam.lib" Delete "$INSTDIR\translations\qt_zh_TW.qm" Delete "$INSTDIR\translations\qt_uk.qm" @@ -187,10 +180,10 @@ Section Uninstall Delete "$INSTDIR\qtcsettings.cmake" Delete "$INSTDIR\Qt5Widgets.dll" Delete "$INSTDIR\Qt5Svg.dll" - Delete "$INSTDIR\Qt5SerialPort.dll" Delete "$INSTDIR\Qt5Gui.dll" + Delete "$INSTDIR\Qt5Xml.dll" + Delete "$INSTDIR\Qt5Core.dll" - Delete "$INSTDIR\Qt5Charts.dll" Delete "$INSTDIR\platforms\qwindows.dll" Delete "$INSTDIR\opengl32sw.dll" Delete "$INSTDIR\opencv_world470.dll" @@ -208,7 +201,6 @@ Section Uninstall Delete "$INSTDIR\imageformats\qicns.dll" Delete "$INSTDIR\imageformats\qgif.dll" Delete "$INSTDIR\iconengines\qsvgicon.dll" - Delete "$INSTDIR\histviewer.exe" Delete "$INSTDIR\D3Dcompiler_47.dll" Delete "$INSTDIR\zxrcClient.exe" diff --git a/mainwindow.cpp b/mainwindow.cpp index e87c6f8..a043da2 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -3,18 +3,26 @@ #include #include +#include + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); + initIns(); + + initUI(); + initConnect(); -#if CLIENT==1 + + +//#if CLIENT==1 hideui(); -#endif +//#endif } MainWindow::~MainWindow() @@ -68,8 +76,10 @@ void MainWindow::initUI() ui->toolbox->addItem(m2,u8"绠楁硶璁剧疆"); ui->toolbox->addItem(m3,u8"鏄剧ず璁剧疆"); ui->toolbox->addItem(m4,u8"淇濆瓨璁剧疆"); - ui->toolbox->addItem(m5,u8"澶氱偣鏍℃"); +#if CLIENT==2 + ui->toolbox->addItem(m5,u8"澶氱偣鏍℃"); +#endif type = gray16; rows = ui->spinBox->value(); cols = ui->spinBox_2->value(); @@ -103,9 +113,12 @@ void MainWindow::initUI() void MainWindow::initConnect() { + + connect(ucontrol,SIGNAL(signalSendMessage(QString)),this,SLOT(slotlogtext(QString))); connect(usb,SIGNAL(signalMessage(QString)),this,SLOT(slotlogtext(QString))); + connect(m1,SIGNAL(signalsetGPOL(int)),ucontrol,SLOT(setGPOL(int))); connect(m1,SIGNAL(signalsetIT(double)),ucontrol,SLOT(setIT(double))); connect(m1,SIGNAL(signalopenTEC(bool)),ucontrol,SLOT(tec(bool))); @@ -122,6 +135,7 @@ void MainWindow::initConnect() }); + #if CLIENT == 0 || CLIENT==1 connect(usb,SIGNAL(signalGetImage(cv::Mat)),this,SLOT(slotShowImage(cv::Mat))); @@ -135,19 +149,17 @@ void MainWindow::initConnect() connect(m1,SIGNAL(signalsaveb()),ucontrol,SLOT(saveb())); connect(m1,SIGNAL(signalopenb(bool)),ucontrol,SLOT(openb(bool))); + connect(m2,SIGNAL(signalsag(bool)),ucontrol,SLOT(setsag(bool))); connect(m2,SIGNAL(signalsetDDE(int)),ucontrol,SLOT(setDDE(int))); connect(m2,SIGNAL(signalsetkf(int)),ucontrol,SLOT(setkf(int))); connect(m2,SIGNAL(signalsethist(int)),ucontrol,SLOT(sethist(int))); - // connect(m2,SIGNAL(signalsetDE(bool)),) - // connect(m2,SIGNAL(signalseterate(double)),) - // connect(m2,SIGNAL(signalsetbright(int)),) - ///绾挎ф媺浼歌缃 - /// - /// + + #elif CLIENT==2 // connect(usb,SIGNAL(signalGetImage(cv::Mat)),m_tp,SLOT(slotprocimg(cv::Mat))); // connect(m_tp,SIGNAL(signalsendimg(cv::Mat)),m_avg,SLOT(slotprocimg(cv::Mat))); + connect(usb,SIGNAL(signalGetImage(cv::Mat)),m_mp,SLOT(runData(cv::Mat))); connect(m_mp,SIGNAL(signalsendimg(cv::Mat)),m_avg,SLOT(slotprocimg(cv::Mat))); @@ -218,7 +230,13 @@ void MainWindow::initConnect() m_clhe->setthreshold(value); }); + connect(m5,SIGNAL(signalsave()),m_mp,SLOT(save())); + connect(m5,SIGNAL(signalcalc(QVector)),m_mp,SLOT(calcData(QVector))); + connect(m5,SIGNAL(signalsavedata(QString)),m_mp,SLOT(savedata(QString))); + connect(m_mp,SIGNAL(signalNewFrame(double)),m5,SLOT(slotRefresh(double))); + connect(m5,SIGNAL(signalloaddata(QString)),m_mp,SLOT(loaddata(QString))); + connect(m5,SIGNAL(signaloff()),m_mp,SLOT(off())); #endif connect(m2,&menu2::signalsetDE,[=](bool b){ @@ -263,6 +281,7 @@ void MainWindow::initConnect() connect(m3,&menu3::signalcolorrgb,[=](){ colortype = 2; }); + qDebug()<<__LINE__; connect(m4,&menu4::signalsetdir,[=](QString dir){ @@ -283,6 +302,8 @@ void MainWindow::initConnect() connect(m4,&menu4::signalshotbin,[=](){ shotbin = true; }); + + connect(m4,&menu4::signalsavevideo,[=](bool b){ if(b){ if(fps<10) @@ -327,6 +348,7 @@ void MainWindow::initConnect() } }); + connect(m4,&menu4::signalsavesbin,[=](int frames){ if(savesbin) return; @@ -344,12 +366,11 @@ void MainWindow::initConnect() - connect(m5,SIGNAL(signalsave()),m_mp,SLOT(save())); - connect(m5,SIGNAL(signalcalc()),m_mp,SLOT(calcData())); - connect(m5,SIGNAL(signalsavedata()),m_mp,SLOT(savedata())); + + connect(lpath,&QPushButton::clicked,[=](){ - QDesktopServices::openUrl(QUrl(path)); + QDesktopServices::openUrl(QUrl::fromLocalFile(path)); }); } @@ -392,6 +413,9 @@ void MainWindow::on_pushButton_2_clicked() usb->SetImageInfo(type,rows,cols); + m1->opentec(); + ucontrol->tec(true); + #if CLIENT == 0 || CLIENT == 1 ucontrol->setIT(5.0); @@ -428,8 +452,8 @@ void MainWindow::on_pushButton_3_clicked() void MainWindow::slotShowImage(cv::Mat img) { - cv::Mat o; - cv::mean(img,o); + + fpscount +=1; if(flip0){ @@ -452,7 +476,7 @@ void MainWindow::slotShowImage(cv::Mat img) spurefile->flush(); } sbinnum -=1; - // qDebug()<close(); @@ -619,7 +643,7 @@ void MainWindow::slotShowImage(cv::Mat img) QString imgfile = path+ now+".png"; cv::imwrite(imgfile.toLocal8Bit().toStdString(),img); QString t =path+now+".tiff"; - cv::imwrite(t.toStdString(),img); + cv::imwrite(t.toLocal8Bit().toStdString(),img); QString filename = path+now+".bin"; @@ -650,7 +674,7 @@ void MainWindow::slotShowImage(cv::Mat img) } - // QPixmap pix = QPixmap::fromImage(img); + if(b_stat &(!b_fullscreen)){ QPainter p(&pix); QPen pen = p.pen(); @@ -728,11 +752,18 @@ void MainWindow::keyPressEvent(QKeyEvent *ev) imageY+=1; } + if((ev->modifiers() == Qt::ControlModifier) && (ev->key()== Qt::Key_A)){ + m1->showui(); + } + if((ev->modifiers() == Qt::ControlModifier) && (ev->key()== Qt::Key_Q)){ + m1->hideui(); + } } void MainWindow::initIns() { qRegisterMetaType("cv::Mat"); + qRegisterMetaType>("QVector"); usb = new usbthread(); ucontrol = new usbcontrol(); @@ -775,15 +806,3 @@ void MainWindow::on_spinBox_2_valueChanged(int arg1) ui->label->resize(cols,rows); } - -void MainWindow::on_pushButton_4_clicked() -{ - saveeeee = true; -} - - -void MainWindow::on_pushButton_5_clicked() -{ - -} - diff --git a/mainwindow.h b/mainwindow.h index c9f9c60..afbcc4f 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -67,9 +67,7 @@ private slots: void on_spinBox_2_valueChanged(int arg1); - void on_pushButton_4_clicked(); - void on_pushButton_5_clicked(); private: void initIns(); diff --git a/mainwindow.ui b/mainwindow.ui index d77b77d..85d5e2f 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -7,7 +7,7 @@ 0 0 1386 - 619 + 648 @@ -15,7 +15,20 @@ - + + + + 1 + + + 10000 + + + 640 + + + + Qt::Horizontal @@ -50,7 +63,7 @@ 0 0 658 - 530 + 559 @@ -193,22 +206,8 @@ - - - - 鎭㈠榛樿 - - - - - - - 寮濮嬩紶杈 - - - - - + + 1 @@ -216,7 +215,7 @@ 10000 - 640 + 512 @@ -227,19 +226,6 @@ - - - - 1 - - - 10000 - - - 512 - - - @@ -247,17 +233,17 @@ - - + + - 瀛樹竴甯 + 寮濮嬩紶杈 - - + + - 璁$畻 + 鎭㈠榛樿 diff --git a/menu1.cpp b/menu1.cpp index 3a53469..718b091 100644 --- a/menu1.cpp +++ b/menu1.cpp @@ -19,7 +19,19 @@ void menu1::hideui() { ui->pushButton_4->hide(); ui->pushButton_7->hide(); - ui->pushButton_12->hide(); +// ui->pushButton_12->hide(); +} + +void menu1::showui() +{ + ui->pushButton_4->show(); + ui->pushButton_7->show(); +} + +void menu1::opentec() +{ + ui->pushButton_11->setChecked(true); + on_pushButton_11_clicked(); } void menu1::on_pushButton_clicked() diff --git a/menu1.h b/menu1.h index 39bbf81..c87b16c 100644 --- a/menu1.h +++ b/menu1.h @@ -15,6 +15,7 @@ public: explicit menu1(QWidget *parent = nullptr); ~menu1(); void hideui(); + void showui(); signals: void signalsavelow(); void signalsavehigh(); @@ -29,6 +30,9 @@ signals: void signalopenTEC(bool); void signalset14bit(bool); +public: + void opentec(); + private slots: void on_pushButton_clicked(); diff --git a/menu4.cpp b/menu4.cpp index 30636ec..7f84cfc 100644 --- a/menu4.cpp +++ b/menu4.cpp @@ -70,12 +70,12 @@ void menu4::on_pushButton_6_clicked() } #include -void menu4::on_pushButton_7_clicked() -{ -// QStringList arg; -// arg.append(dir); -// process.setArguments(arg); - process.start("explorer.exe",QStringList("D:/workspace")); -// process.start("notepad.exe",QStringList(dir)); -} +//void menu4::on_pushButton_7_clicked() +//{ +//// QStringList arg; +//// arg.append(dir); +//// process.setArguments(arg); +// process.start("explorer.exe",QStringList("D:/workspace")); +//// process.start("notepad.exe",QStringList(dir)); +//} diff --git a/menu4.h b/menu4.h index 648884d..452f8ed 100644 --- a/menu4.h +++ b/menu4.h @@ -39,7 +39,7 @@ private slots: void on_pushButton_6_clicked(); - void on_pushButton_7_clicked(); +// void on_pushButton_7_clicked(); private: Ui::menu4 *ui; diff --git a/menu4.ui b/menu4.ui index 0bf2f4a..b0a9e7f 100644 --- a/menu4.ui +++ b/menu4.ui @@ -17,11 +17,14 @@ - 2 + 1 1024 + + 1 + diff --git a/menu5.cpp b/menu5.cpp index d3b7e49..0e88e8f 100644 --- a/menu5.cpp +++ b/menu5.cpp @@ -1,18 +1,64 @@ 锘#include "menu5.h" #include "ui_menu5.h" +#include +#include + + menu5::menu5(QWidget *parent) : QWidget(parent), ui(new Ui::menu5) { ui->setupUi(this); -} + ui->tableWidget->setBorderVisible(true); + ui->tableWidget->setBorderRadius(8); + ui->tableWidget->verticalHeader()->hide(); + ui->tableWidget->resizeColumnsToContents(); + ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + + connect(ui->tableWidget->horizontalHeader(),&QHeaderView::sectionClicked,[=](int i){ + if(i == 1){ + + } + }); + +} menu5::~menu5() { delete ui; } +void menu5::slotRefresh(double gray) +{ + qDebug()<<__FILE__<<__LINE__; + + if(grays.length() == 0){ + grays.push_back(gray); + ui->tableWidget->insertRow(0); + + ui->tableWidget->setItem(0,0,new QTableWidgetItem(QString::number( gray))); + ui->tableWidget->setCellWidget(0,1,new QCheckBox()); + return; + } + for(int i = 0; i< grays.length();i++){ + if (graytableWidget->insertRow(i); + ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number( gray))); + ui->tableWidget->setCellWidget(i,1,new QCheckBox()); + return; + } + } + + grays.push_back(gray); + ui->tableWidget->insertRow(ui->tableWidget->rowCount()); + + ui->tableWidget->setItem(grays.length()-1,0,new QTableWidgetItem(QString::number( gray))); + ui->tableWidget->setCellWidget(grays.length() - 1,1,new QCheckBox()); + return; +} + void menu5::on_pushButton_clicked() { emit signalsave(); @@ -21,12 +67,38 @@ void menu5::on_pushButton_clicked() void menu5::on_pushButton_2_clicked() { - emit signalcalc(); + QVector vct; + + for(int i = 0;i< ui->tableWidget->rowCount();i++){ + if(qobject_cast(ui->tableWidget->cellWidget(i,1))->isChecked()){ + vct.append(grays.at(i)); + } + } + + emit signalcalc(vct); + + // emit signalcalc(); } void menu5::on_pushButton_3_clicked() { - emit signalsavedata(); + QString path = QFileDialog::getExistingDirectory(nullptr,QString::fromLocal8Bit("閫夋嫨鏁版嵁淇濆瓨璺緞"),QString("./")); + + emit signalsavedata(path); +} + + +void menu5::on_pushButton_4_clicked() +{ + // emit signalloaddata(); + QString path = QFileDialog::getExistingDirectory(nullptr,QString::fromLocal8Bit("閫夋嫨鏁版嵁淇濆瓨璺緞"),QString("./")); + emit signalloaddata(path); +} + + +void menu5::on_pushButton_5_clicked() +{ + emit signaloff(); } diff --git a/menu5.h b/menu5.h index 72e0880..715590b 100644 --- a/menu5.h +++ b/menu5.h @@ -2,7 +2,7 @@ #define MENU5_H #include - +#include namespace Ui { class menu5; } @@ -15,19 +15,28 @@ public: explicit menu5(QWidget *parent = nullptr); ~menu5(); + +public slots: + void slotRefresh(double); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_pushButton_3_clicked(); + void on_pushButton_4_clicked(); + + void on_pushButton_5_clicked(); + signals: void signalsave(); - void signalcalc(); - void signalsavedata(); - + void signalcalc(QVector ); + void signalsavedata(QString); + void signalloaddata(QString); + void signaloff(); private: Ui::menu5 *ui; + QVector grays; }; #endif // MENU5_H diff --git a/menu5.ui b/menu5.ui index 841fea6..b26f858 100644 --- a/menu5.ui +++ b/menu5.ui @@ -14,6 +14,20 @@ Form + + + + 寮濮嬭绠 + + + + + + + 鍔犺浇鏁版嵁 + + + @@ -21,22 +35,49 @@ - - + + - 寮濮嬭绠 + 淇濆瓨鏁版嵁 - - + + + + + 0 + 200 + + + + + 浜害 + + + + + 閫変腑 + + + + + + - 淇濆瓨鏁版嵁 + 鍏抽棴鏍℃ + + + TableWidget + QTableWidget +
qfluentwidgets
+
+
diff --git a/multipoint.cpp b/multipoint.cpp index e4c8120..ebb0897 100644 --- a/multipoint.cpp +++ b/multipoint.cpp @@ -1,6 +1,7 @@ 锘#include "multipoint.h" #include "QDebug" #include +#include MultiPoint::MultiPoint(QObject *parent) : QObject{parent} @@ -17,30 +18,40 @@ void MultiPoint::saveData(cv::Mat img) { cv::Mat temp; img.copyTo(temp); - datas[cv::mean(img)[0]] = temp; + datas[cv::mean(img)[0]/4] = temp; + + emit signalNewFrame(cv::mean(img)[0]/4); + } -void MultiPoint::calcData() +void MultiPoint::calcData(QVector vct) { + qDebug()<<__FILE__<<__LINE__; ready = false; + // stagecount = datas.size(); + stagecount = vct.length(); if(stagecount<2) return; + qDebug()<<"statge count = "<< stagecount; - double v0 = datas.begin().key(); + // double v0 = datas[vct.at(0)].key(); + double v0 = vct.first(); - stagecount = datas.size(); - double vn =( datas.begin()+stagecount-1).key(); + // double vn =( datas.begin()+stagecount-1).key(); + double vn = vct.last(); stages = (double*)malloc(sizeof(double)*512*640*(stagecount+1)); kstages = (double*)malloc(sizeof(double)*512*640*(stagecount+1)); bstages = (double*)malloc(sizeof(double)*512*640*(stagecount+1)); - QMap::Iterator start = datas.begin(); - QMap::Iterator end ; + // QMap::Iterator start = datas.begin(); + // QMap::Iterator end ; + + memset(kstages,0,sizeof(double)*512*640); memset(bstages,0,sizeof(double)*512*640); @@ -49,22 +60,29 @@ void MultiPoint::calcData() int k = 1; - for(;k(i,j); *(ks+i*ms.cols+j) = (ve-vs)/(me.at(i,j) - ms.at(i,j)); - *(bs+i*ms.cols+j) = vs - k*ms.at(i,j); + *(bs+i*ms.cols+j) = vs ; + //- k*ms.at(i,j); } } } + qDebug()<<__FILE__<<__LINE__; + double* ss = stages+(k-1)*512*640; double* ks = kstages+k*512*640; - double* bs = bstages+k*512*640; - cv::Mat ms = end.value(); + double* bs = bstages+k; + // *(bs) = 65535; + // cv::Mat ms = end.value(); + + + cv::Mat ms = datas[vct.last()]; for(int i = 0;i<512;i++){ for(int j = 0;j<640;j++){ @@ -94,9 +119,9 @@ void MultiPoint::calcData() *(ks+i*640+j) = 0; *(bs+i*640+j) = 65535; } + } - qDebug()<<__FILE__<<__LINE__; ready = true; @@ -118,7 +143,12 @@ void MultiPoint::runData(cv::Mat img) if( img.at(i,j) < stages[k*img.rows*img.cols+i*img.cols+j]) break; } - dst.at(i,j) = kstages[k*img.rows*img.cols+i*img.cols+j]*img.at(i,j)+ bstages[k*img.rows*img.cols+i*img.cols+j]; + if(k == 0) + dst.at(i,j) = 0; + else + // dst.at(i,j) = kstages[k*img.rows*img.cols+i*img.cols+j]*img.at(i,j)+ bstages[k]; + dst.at(i,j) = kstages[k*img.rows*img.cols+i*img.cols+j]*(img.at(i,j)-stages[(k-1)*img.rows*img.cols+i*img.cols+j])+ bstages[k]; + } } emit signalsendimg(dst); @@ -131,6 +161,8 @@ void MultiPoint::runData(cv::Mat img) void MultiPoint::meanmat(cv::Mat img) { + + if(n_save == 32){ img.convertTo(msave,CV_32FC1,1.0/32.0); } @@ -151,27 +183,64 @@ void MultiPoint::meanmat(cv::Mat img) void MultiPoint::save() { - qDebug()<<__FILE__<<__LINE__; n_save = 32; b_save = true; } -void MultiPoint::savedata() +void MultiPoint::savedata(QString path) { - int k =0; - for(QMap::Iterator iter = datas.begin();iter!= datas.end();iter++){ - cv::imwrite(QString::number(k).toStdString()+ ".tiff",iter.value()); - k+=1; - } - QFile fk("k.bin"); + // int k =0; + // for(QMap::Iterator iter = datas.begin();iter!= datas.end();iter++){ + // cv::imwrite(QString::number(k).toStdString()+ ".tiff",iter.value()); + // k+=1; + // } + + QFile fs(path+ "/s.bin"); + fs.open(QIODevice::ReadWrite); + fs.write((char*)stages,(stagecount+1)*640*512*8); + fs.close(); + + + QFile fk(path+ "/k.bin"); fk.open(QIODevice::ReadWrite); - fk.write((char*)kstages,(k+1)*640*512*4); + fk.write((char*)kstages,(stagecount+1)*640*512*8); fk.close(); - QFile fb("b.bin"); + QFile fb(path+"/b.bin"); fb.open(QIODevice::ReadWrite); - fb.write((char*)bstages,(k+1)*640*512*4); + fb.write((char*)bstages,(stagecount+1)*640*512*8); fb.close(); } + +void MultiPoint::loaddata(QString path ) +{ + QFile fk(path+"/k.bin"); + fk.open(QIODevice::ReadOnly); + QByteArray data = fk.readAll(); + kstages = (double*)malloc(data.length()); + memcpy(kstages,data.data(),data.size()); + + QFile fb(path+"/b.bin"); + fb.open(QIODevice::ReadOnly); + data = fb.readAll(); + bstages = (double*)malloc(data.length()); + memcpy(bstages,data.data(),data.length()); + + + QFile fs(path+"/s.bin"); + fs.open(QIODevice::ReadOnly); + data = fs.readAll(); + stages = (double*)malloc(data.length()); + memcpy(stages,data.data(),data.length()); + + stagecount = data.length()/8/512/640 - 1; + qDebug()<<"stagecount"< #include #include +#include #include @@ -18,7 +19,7 @@ public: public slots: void saveData(cv::Mat ); - void calcData(); + void calcData(QVector); void runData(cv::Mat ); void meanmat(cv::Mat); @@ -26,12 +27,16 @@ public slots: void save(); - void savedata(); + void savedata(QString); + + void loaddata(QString); + void off(); signals: void signalsendimg(cv::Mat); + void signalNewFrame(double); private: @@ -55,6 +60,8 @@ private: int n_save; + + }; #endif // MULTIPOINT_H diff --git a/twopoint.h b/twopoint.h index d4b927a..fbfff41 100644 --- a/twopoint.h +++ b/twopoint.h @@ -54,6 +54,7 @@ signals: void signalsendimg(cv::Mat); + private: cv::Mat lowtemp; cv::Mat hightemp; diff --git a/usbcontrol.cpp b/usbcontrol.cpp index 306a2f6..961a754 100644 --- a/usbcontrol.cpp +++ b/usbcontrol.cpp @@ -16,11 +16,9 @@ int usbcontrol::sendMessage(char *msg, int msglen) if(msglen!=8){ return -1; } -// else - for(int i = 0;i<4;i++){ - qDebug()<