diff --git a/HPPA/HPPA.cpp b/HPPA/HPPA.cpp index 92b62ca..f3b5000 100644 --- a/HPPA/HPPA.cpp +++ b/HPPA/HPPA.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx.h" //#include #include @@ -17,7 +17,7 @@ HPPA::HPPA(QWidget* parent) QCoreApplication::setOrganizationDomain("iris.com"); QCoreApplication::setApplicationName("HPPA"); - //ÅäÖÃÎļþ£ºÈç¹ûûÓУ¬¾Í´´½¨ÅäÖÃÎļþ + //é…�置文件:如果没有,就创建é…�置文件 string HPPACfgFile = getPathofEXE() + "\\HPPA.cfg"; mConfigfile.setConfigfilePath(HPPACfgFile); if (!mConfigfile.isConfigfileExist()) @@ -48,7 +48,7 @@ HPPA::HPPA(QWidget* parent) int SubdivisionMultiples_y; mConfigfile.getYMotorParm(StepAnglemar_y, Lead_y, SubdivisionMultiples_y, ScaleFactor_y);*/ - //״̬À¸ + //状æ€�æ � //xmotor_state_label1 = new QLabel(); //ymotor_state_label1 = new QLabel(); //xmotor_state_label1->setText("xMotor"); @@ -72,17 +72,17 @@ HPPA::HPPA(QWidget* parent) - //¹âÆ×ÒDzÙ×÷ + //光谱仪æ“�作 m_Imager = nullptr; m_RecordState = 0; - connect(this->ui.action_connect_imager, SIGNAL(triggered()), this, SLOT(onconnect()));//ÐźÅÓë²Û£ºÁ¬½ÓÏà»ú£¬Ïà»ú²Ù×÷Ïà¹ØÐźÅÓë²Û°ó¶¨·ÅÔÚº¯ÊýonconnectÖÐ + connect(this->ui.action_connect_imager, SIGNAL(triggered()), this, SLOT(onconnect()));//ä¿¡å�·ä¸Žæ§½ï¼šè¿žæŽ¥ç›¸æœºï¼Œç›¸æœºæ“�作相关信å�·ä¸Žæ§½ç»‘定放在函数onconnect中 - //ÉèÖÃÏà»ú¿ÉÓÃÖ¡ÂÊ·¶Î§£ºÕâЩÉèÖñØÐëÔÚsliderµÄÐźźͲÛÁ¬½Óconnectǰ£¬·ñÔòsetMinimum»á¸Ä±äsliderµÄÖµ + //设置相机å�¯ç”¨å¸§çŽ‡èŒƒå›´ï¼šè¿™äº›è®¾ç½®å¿…é¡»åœ¨slider的信å�·å’Œæ§½è¿žæŽ¥connectå‰�,å�¦åˆ™setMinimum会改å�˜slider的值 ui.FramerateSlider->setMinimum(1); ui.FramerateSlider->setMaximum(250); ui.GainSlider->setMinimum(0); ui.GainSlider->setMaximum(24); - //Ïà»ú²ÎÊý¿Ø¼þÉèÖÃΪ²»¿ÉÓà + //相机å�‚数控件设置为ä¸�å�¯ç”¨ frame_number->setEnabled(false); ui.framerate_lineEdit->setEnabled(false); @@ -98,7 +98,7 @@ HPPA::HPPA(QWidget* parent) widthScale = 1; heightScale = 1; - //Âí´ïλÖÃÄ£Äâ + //马达ä½�置模拟 //connect(ui.graphicsView->imager, SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onimagerSimulatorMove(int, int))); initPanelToolbar(); @@ -160,7 +160,7 @@ HPPA::HPPA(QWidget* parent) //dock_layers->setMaximumHeight(498); - //¸ß¹âÆ×²é¿´ + //高光谱查看 QDockWidget* dock_hyperimgViewer = new CustomDockWidgetBase(QString::fromLocal8Bit("hyimgViewer"), this); dock_hyperimgViewer->setObjectName("hyimgViewer"); @@ -173,14 +173,14 @@ HPPA::HPPA(QWidget* parent) gridLayout_hyperimgViewer->setContentsMargins(1, 2, 1, 2); m_imageViewerTabWidget = new QTabWidget(); - //m_imageViewerTabWidget->tabBar()->setFixedHeight(40);//ûÓÐЧ¹û£¬ÔÚqssÖÐÉèÖø߶ȲÅÓÐЧ¹û£¬ÎªÉ¶£¿£¿£¿£¿ - m_imageViewerTabWidget->clear();//±ØÐë·ÅÔÚ×îÇ°Ãæ£¬Ê×ÏÈɾ³ýËùÓеÄtab + //m_imageViewerTabWidget->tabBar()->setFixedHeight(40);//没有效果,在qss中设置高度æ‰�有效果,为啥???? + m_imageViewerTabWidget->clear();//必须放在最å‰�é�¢ï¼Œé¦–先删除所有的tab QToolButton* maxButton = new QToolButton(); maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton)); connect(maxButton, SIGNAL(clicked()), dock_hyperimgViewer, SLOT(toggleMaximize())); m_imageViewerTabWidget->setCornerWidget(maxButton, Qt::TopRightCorner); //onCreateTab(0); - //m_imageViewerTabWidget->setTabsClosable(true);//ÕâÑùÿҳ¶¼»áÓйرհ´Å¥ + //m_imageViewerTabWidget->setTabsClosable(true);//这样æ¯�页都会有关闭按钮 connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int))); m_imageViewerTabWidget->setStyleSheet(R"( QTabBar::tab { @@ -283,8 +283,8 @@ HPPA::HPPA(QWidget* parent) QWidget* tmp6 = new QWidget(); dock_hyperimgViewer->setTitleBarWidget(tmp6); - //ÂÖ²¥¿´°å - m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("ÂÖ²¥"), this); + //轮播看æ�¿ + m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("轮播"), this); m_dock_carousel->setObjectName("mDockCarousel"); m_dock_carousel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); mPanelMenu->addAction(m_dock_carousel->toggleViewAction()); @@ -353,14 +353,14 @@ HPPA::HPPA(QWidget* parent) m_dock_carousel->setWidget(carouselContainer); - //¿ØÖÆ¿´°å - ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("¿ØÖÆ")); + //控制看æ�¿ + ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("控制")); //ui.mDockWidgetSpectrometer->show(); initControlTabwidget(); m_tabManager = new TabManager(ui.controlTabWidget, this); - //3DÄ£ÐÍ¿´°å - ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3DÄ£ÐÍ")); + //3D模型看æ�¿ + ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3D模型")); //ui.mDockWidgetSimulator->show(); m_view3DModelManager = new View3DModelManager(this); @@ -396,7 +396,7 @@ HPPA::HPPA(QWidget* parent) ui.mDockWidgetSimulator->setWidget(modelWidgetContainer); - //¿´°åÅŰæ + //看æ�¿æŽ’版 splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal); splitDockWidget(dock_hyperimgViewer, m_dock_carousel, Qt::Horizontal); @@ -413,26 +413,26 @@ HPPA::HPPA(QWidget* parent) QMainWindow::separator{ width: 16px; height: 16px; - background: #040125; /* ¿ÉÒÔÌí¼Ó±³¾°É« */ - /*border: 1px solid #808080;*/ /* ¿ÉÒÔÌí¼Ó±ß¿ò */ + background: #040125; /* å�¯ä»¥æ·»åŠ èƒŒæ™¯è‰² */ + /*border: 1px solid #808080;*/ /* å�¯ä»¥æ·»åŠ è¾¹æ¡† */ } QDockWidget { - border: 2px solid #2a347a; /* ÉîÀ¶É«±ß¿ò */ - background-color: red; /* Ö÷Ìå±³¾°É« */ - color: white; /* ±êÌâÎÄ×ÖÑÕÉ« */ + border: 2px solid #2a347a; /* æ·±è“�色边框 */ + background-color: red; /* 主体背景色 */ + color: white; /* 标题文字颜色 */ border-radius: 4px; } - /* ±êÌâÀ¸ */ + /* 标题æ � */ QDockWidget::title { - background-color: #0E1C4C; /* ±êÌâÀ¸±³¾°É« */ - text-align: left; /* ±êÌâÎÄ×Ö¾ÓÖÐ */ + background-color: #0E1C4C; /* 标题æ �背景色 */ + text-align: left; /* 标题文字居中 */ /*padding: 4px;*/ } - /* ¿ÉÑ¡£º¿ØÖÆ DockWidget µÄ¹Ø±Õ°´Å¥Ñùʽ */ + /* å�¯é€‰ï¼šæŽ§åˆ¶ DockWidget 的关闭按钮样å¼� */ QDockWidget::close-button, QDockWidget::float-button { background: transparent; border: none; @@ -471,7 +471,7 @@ HPPA::HPPA(QWidget* parent) void HPPA::initMenubarToolbar() { - //×Ô¶¨Òå²Ëµ¥À¸ºÍ¹¤¾ßÀ¸ + //自定义è�œå�•æ �和工具æ � QWidget* menuWidget = new WidgetWithBackgroundPicture(); //menuWidget->setFixedWidth(200); menuWidget->setFixedHeight(66); @@ -488,28 +488,28 @@ void HPPA::initMenubarToolbar() } QMenuBar::item { background: transparent; - color: white; /* ¸ù¾ÝÄãµÄ±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + color: white; /* æ ¹æ�®ä½ çš„背景调整文字颜色 */ padding: 4px 8px; padding-top: 8px; padding-bottom: 8px; } QMenuBar::item:selected { - background: rgba(255, 255, 255, 50); /* Çá΢¸ßÁÁ */ + background: rgba(255, 255, 255, 50); /* 轻微高亮 */ } QMenu { - background-color: #0A1245; /* ²Ëµ¥±³¾°É« */ - border: 1px solid gray; /* ¿ÉÑ¡£¬±ß¿òÑùʽ */ - color: white; /* ¸ù¾ÝÄãµÄ±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + background-color: #0A1245; /* è�œå�•背景色 */ + border: 1px solid gray; /* å�¯é€‰ï¼Œè¾¹æ¡†æ ·å¼� */ + color: white; /* æ ¹æ�®ä½ çš„背景调整文字颜色 */ } QMenu::item:selected { - background-color: rgba(255, 255, 255, 50); /* Ñ¡ÖÐʱµÄ±³¾°É« */ - color: white; /* Ñ¡ÖÐÏî×ÖÌåÑÕÉ«£¬¿ÉÑ¡ */ + background-color: rgba(255, 255, 255, 50); /* 选中时的背景色 */ + color: white; /* 选中项字体颜色,å�¯é€‰ */ } )"); hLayout_menuWidget->addStretch(); - QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("Í˳öƽ̨")); + QPushButton* closeBtn = new QPushButton(QString::fromLocal8Bit("退出平å�°")); closeBtn->setStyleSheet(R"( QPushButton { background: #002CE0; @@ -535,7 +535,7 @@ void HPPA::initMenubarToolbar() toolBar->setAutoFillBackground(false); toolBar->setIconSize(QSize(56, 56)); toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - //ÔÚ¹¤¾ßÀ¸ÉÏÌí¼ÓÊäÈë¿òQLineEdit + //在工具æ �上添加输入框QLineEdit frame_number = new QLineEdit(ui.mainToolBar); frame_number->setStyleSheet("QLineEdit{background-color:rgb(255,255,255);}"); frame_number->setMaximumWidth(100); @@ -553,7 +553,7 @@ void HPPA::initMenubarToolbar() ui.action_focus->setIcon(QIcon(".//icon//all//focus.png")); ui.action_dark->setIcon(QIcon(".//icon//all//dark.png")); ui.action_reference->setIcon(QIcon(".//icon//all//reference.png")); - // ʹÓÃÑùʽ±íÉèÖÃ͸Ã÷±³¾° + // 使用样å¼�表设置é€�明背景 toolBar->setStyleSheet(R"( QToolBar { background: #0D1233;/*transparent*/ @@ -562,12 +562,12 @@ void HPPA::initMenubarToolbar() } QToolButton { background: transparent; - color: white; /* ¿É¸ù¾Ý±³¾°µ÷ÕûÎÄ×ÖÑÕÉ« */ + color: white; /* å�¯æ ¹æ�®èƒŒæ™¯è°ƒæ•´æ–‡å­—颜色 */ padding: 4px; margin: 0 0 0 6px; } QToolButton:hover { - background: rgba(255,255,255,50); /* ÐüͣʱÇá΢¸ßÁÁ */ + background: rgba(255,255,255,50); /* 悬å�œæ—¶è½»å¾®é«˜äº® */ } )"); @@ -582,48 +582,48 @@ void HPPA::initMenubarToolbar() void HPPA::initControlTabwidget() { - //rgbÏà»ú + //rgb相机 m_RgbCameraThread = new QThread(); m_RgbCamera = new RgbCameraOperation(); m_RgbCamera->moveToThread(m_RgbCameraThread); m_RgbCameraThread->start(); - connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//ʹÓÃÐźÅ֪ͨÖ÷Ị̈߳¨uiỊ̈߳©Ë¢ÐÂÊÓÆµ ¡ú ³É¹¦£¬µ«ÊǽçÃæ¿¨¶Ù + connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//使用信å�·é€šçŸ¥ä¸»çº¿ç¨‹ï¼ˆui线程)刷新视频 → æˆ�功,但是界é�¢å�¡é¡¿ connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage())); //m_RgbCamera->setCallback(onPlotRgbImage); - //connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//ʹÓûص÷º¯ÊýÀ´Ë¢ÐÂÖ÷Ị̈߳¨uiỊ̈߳©ÉϵÄÊÓÆµ ¡ú ʧ°Ü + //connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//使用回调函数æ�¥åˆ·æ–°ä¸»çº¿ç¨‹ï¼ˆui线程)上的视频 → 失败 - connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//¹Ø±ÕÏà»ú + connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//关闭相机 connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel())); - //Éý½µ×Àdock + //å�‡é™�桌dock m_adt = new adjustTable(); m_adt->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_adt, QString::fromLocal8Bit("Éý½µ×À")); + ui.controlTabWidget->addTab(m_adt, QString::fromLocal8Bit("å�‡é™�桌")); - //µçÔ´¿ØÖÆ + //电æº�控制 m_pc = new PowerControl(); m_pc->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("µçÔ´¿ØÖÆ")); + ui.controlTabWidget->addTab(m_pc, QString::fromLocal8Bit("电æº�控制")); - //»úе±Û¿ØÖÆ + //机械臂控制 m_rac = new RobotArmControl(); connect(m_rac->robotController, SIGNAL(hsiRecordSignal(int)), this, SLOT(recordFromRobotArm(int))); m_rac->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_rac, QString::fromLocal8Bit("»úе±Û¿ØÖÆ")); + ui.controlTabWidget->addTab(m_rac, QString::fromLocal8Bit("机械臂控制")); - //1ÖáÂí´ï¿ØÖÆ + //1轴马达控制 m_omc = new OneMotorControl(); m_omc->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_omc, QString::fromLocal8Bit("1ÖáÂí´ï¿ØÖÆ")); + ui.controlTabWidget->addTab(m_omc, QString::fromLocal8Bit("1轴马达控制")); - //2ÖáÂí´ï¿ØÖÆ + //2轴马达控制 m_tmc = new TwoMotorControl(this); connect(m_tmc, SIGNAL(startLineNumSignal(int)), this, SLOT(onCreateTab(int))); connect(m_tmc, SIGNAL(sequenceComplete()), this, SLOT(onsequenceComplete())); m_tmc->setWindowFlags(Qt::Widget); - ui.controlTabWidget->addTab(m_tmc, QString::fromLocal8Bit("2Öá¿ØÖÆ")); + ui.controlTabWidget->addTab(m_tmc, QString::fromLocal8Bit("2轴控制")); } void HPPA::recordFromRobotArm(int fileCounter) @@ -634,7 +634,7 @@ void HPPA::recordFromRobotArm(int fileCounter) { m_Imager->setRecordControlState(false); - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); //qDebug() << "recordFromRobotArm: 1111111111111111111111"; @@ -649,7 +649,7 @@ void HPPA::recordFromRobotArm(int fileCounter) onCreateTab(fileCounter - 1); emit StartRecordSignal(); - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯ÖÐ")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集中")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}"); //qDebug() << "recordFromRobotArm: 2222222222222222222222"; } @@ -664,11 +664,11 @@ void HPPA::createActionGroups() mImagerGroup->addAction(ui.mActionPica_NIR); - // ¶ÁÈ¡ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // 读å�–上次选择的结果 QSettings settings; QString lastSelectedAction = settings.value("LastSelectedImagerAction").toString(); - // »Ö¸´ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // æ�¢å¤�上次选择的结果 if (lastSelectedAction == "mActionPica_L") { ui.mActionPica_L->setChecked(true); @@ -703,11 +703,11 @@ void HPPA::createMoveplatformActionGroup() moveplatformActionGroup->addAction(ui.mAction_1AxisMotor); moveplatformActionGroup->addAction(ui.mAction_2AxisMotor_new); - // ¶ÁÈ¡ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // 读å�–上次选择的结果 QSettings settings; QString lastSelectedAction = settings.value("LastSelectedMoveplatform").toString(); - // »Ö¸´ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // æ�¢å¤�上次选择的结果 if (lastSelectedAction == "mAction_is_no_motor") { ui.mAction_is_no_motor->setChecked(true); @@ -746,16 +746,16 @@ HPPA::~HPPA() if (m_Imager != nullptr) { - //m_Imager->~ResononNirImager();//ÊÍ·Å×ÊÔ´ + //m_Imager->~ResononNirImager();//释放资æº� delete m_Imager; } } void HPPA::initPanelToolbar() { - mPanelMenu = new QMenu(QString::fromLocal8Bit("Ãæ°å"), this);//create panel menu + mPanelMenu = new QMenu(QString::fromLocal8Bit("é�¢æ�¿"), this);//create panel menu mPanelMenu->setObjectName(QStringLiteral("mPanelMenu")); - mToolbarMenu = new QMenu(QString::fromLocal8Bit("¹¤¾ßÀ¸"), this);//create toolbar menu + mToolbarMenu = new QMenu(QString::fromLocal8Bit("工具æ �"), this);//create toolbar menu mToolbarMenu->setObjectName(QStringLiteral("mToolbarMenu")); ui.mWindowsMenu->addSeparator(); @@ -775,11 +775,11 @@ void HPPA::createScenarioActionGroup() m_ScenarioActionGroup->addAction(ui.mActionOneMotorScenario); m_ScenarioActionGroup->addAction(ui.mActionPlantPhenotypeScenario); - // ¶ÁÈ¡ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // 读å�–上次选择的结果 QSettings settings; QString lastSelectedAction = settings.value("LastSelectedScenario").toString(); - // »Ö¸´ÉÏ´ÎÑ¡ÔñµÄ½á¹û + // æ�¢å¤�上次选择的结果 if (lastSelectedAction == "mActionOneMotorScenario") { ui.mActionOneMotorScenario->setChecked(true); @@ -809,17 +809,17 @@ void HPPA::createOneMotorScenario() //if (ui.mActionOneMotorScenario->isChecked()) // return; - //Çå³ýËùÓÐDockWidget + //清除所有DockWidget //QList dockWidgets = this->findChildren(); //for (QDockWidget* dock : dockWidgets) //{ // dock->hide(); //} - //Ôڲ˵¥ÖÐÑ¡ÔñÒÆ¶¯Æ½Ì¨ + //在è�œå�•中选择移动平å�° ui.mAction_1AxisMotor->setChecked(true); - //ÓÒϽǿØÖÆtab + //å�³ä¸‹è§’控制tab m_tabManager->hideTab(ui.rgbCameraWidget); m_tabManager->hideTab(m_adt); m_tabManager->hideTab(m_pc); @@ -832,7 +832,7 @@ void HPPA::createOneMotorScenario() m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::OneMotor); - //ÓÒÉϽÇÂÖ²¥ + //å�³ä¸Šè§’轮播 } @@ -846,10 +846,10 @@ void HPPA::createPlantPhenotypeScenario() //if (ui.mActionPlantPhenotypeScenario->isChecked()) // return; - //Ôڲ˵¥ÖÐÑ¡ÔñÒÆ¶¯Æ½Ì¨ + //在è�œå�•中选择移动平å�° ui.mAction_2AxisMotor_new->setChecked(true); - //ÓÒϽǿØÖÆtab + //å�³ä¸‹è§’控制tab m_tabManager->hideTab(m_rac); m_tabManager->hideTab(m_omc); @@ -862,15 +862,15 @@ void HPPA::createPlantPhenotypeScenario() m_view3DModelManager->switchScenario(View3DModelManager::ScenarioType::PlantPhenotype); - //ÓÒÉϽÇÂÖ²¥ + //å�³ä¸Šè§’轮播 } void HPPA::CalculateIntegratioinTimeRange() { - double range = 1 / m_Imager->getFramerate() * 1000;//ºÁÃë + double range = 1 / m_Imager->getFramerate() * 1000;//毫秒 - ui.IntegratioinTimeSlider->blockSignals(true);//ÒòΪsetMaximum»á´¥·¢valueChangedÐźţ¬ËùÒÔµ÷ÓÃsetMaximumǰÐèÒª×è¶ÏÐźŠ+ ui.IntegratioinTimeSlider->blockSignals(true);//因为setMaximum会触å�‘valueChangedä¿¡å�·ï¼Œæ‰€ä»¥è°ƒç”¨setMaximumå‰�需è¦�阻断信å�· ui.IntegratioinTimeSlider->setMaximum(range); ui.IntegratioinTimeSlider->blockSignals(false); } @@ -881,12 +881,12 @@ void HPPA::onStartRecordStep1() if (!checked) { QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("ÇëÑ¡ÔñɨÃèÆ½Ì¨£¡")); + msgBox.setText(QString::fromLocal8Bit("请选择扫æ��å¹³å�°ï¼�")); msgBox.exec(); return; } - //ÅжÏÊÇ·ñ¸²¸Ç´æÔÚµÄÎļþ + //判断是å�¦è¦†ç›–存在的文件 FileOperation* fileOperation = new FileOperation(); string directory = fileOperation->getDirectoryFromString(); //string imgPath = directory + "\\tmp_image"; @@ -900,16 +900,16 @@ void HPPA::onStartRecordStep1() string tmp = imgPath + "_" + std::to_string(0) + ".bil"; int x = _access(tmp.c_str(), 0); - if (!x)//Èç¹ûÎļþ´æÔÚ¾ÍÖ´ÐдËifµÄ´úÂë + if (!x)//如果文件存在就执行此if的代ç � { - enum QMessageBox::StandardButton response = QMessageBox::question(this, QString::fromLocal8Bit("Ìáʾ"), QString::fromLocal8Bit("Îļþ´æÔÚ£¡ÊÇ·ñ¸²¸Ç£¿"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);; + enum QMessageBox::StandardButton response = QMessageBox::question(this, QString::fromLocal8Bit("æ��示"), QString::fromLocal8Bit("文件存在ï¼�是å�¦è¦†ç›–?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);; if (response == QMessageBox::Yes)// { - //std::cout << "¸²¸Ç" << std::endl; + //std::cout << "覆盖" << std::endl; } else { - //std::cout << "²»¸²¸Ç" << std::endl; + //std::cout << "ä¸�覆盖" << std::endl; return; } } @@ -932,17 +932,17 @@ void HPPA::onStartRecordStep1() m_Imager->setFileName2Save(imgPath); m_Imager->setFrameNumber(this->frame_number->text().toInt()); - emit StartRecordSignal();//·¢É俪ʼ²É¼¯ÐźŠ+ emit StartRecordSignal();//å�‘射开始采集信å�· - ui.action_start_recording->setText(QString::fromLocal8Bit("Í£Ö¹²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("å�œæ­¢é‡‡é›†")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}"); } else { - m_Imager->setRecordControlState(false);//¹âÆ×ÒÇÍ£Ö¹²É¼¯ + m_Imager->setRecordControlState(false);//光谱仪å�œæ­¢é‡‡é›† m_RecordState -= 1; - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); } return; @@ -957,10 +957,10 @@ void HPPA::onStartRecordStep1() onCreateTab(0); - ui.action_start_recording->setText(QString::fromLocal8Bit("Í£Ö¹²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("å�œæ­¢é‡‡é›†")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}"); - //Ó¦¸ÃÏÈ¿ØÖÆÂí´ïÔ˶¯£¬µ±Âí´ïÔ˶¯ºó£¬ÔÙ¿ªÊ¼¹âÆ×ÒDzɼ¯£¨·¢É俪ʼ²É¼¯Ðźţ© + //应该先控制马达è¿�动,当马达è¿�动å�Žï¼Œå†�开始光谱仪采集(å�‘射开始采集信å�·ï¼‰ m_Imager->setFileName2Save(imgPath); m_Imager->setFrameNumber(this->frame_number->text().toInt()); m_omc->setImager(m_Imager); @@ -971,7 +971,7 @@ void HPPA::onStartRecordStep1() m_omc->stop(); m_RecordState -= 1; - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); } return; @@ -990,7 +990,7 @@ void HPPA::onStartRecordStep1() m_tmc->setPosFileName(QString::fromStdString(x_location)); m_tmc->run(); - ui.action_start_recording->setText(QString::fromLocal8Bit("Í£Ö¹²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("å�œæ­¢é‡‡é›†")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(255,0,0);}"); } else @@ -999,7 +999,7 @@ void HPPA::onStartRecordStep1() m_RecordState--; - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); } @@ -1007,7 +1007,7 @@ void HPPA::onStartRecordStep1() } else if (checkedName == "mAction_RobotArm") { - //ÏÈÅжÏÊÇ·ñÑ¡ÔñÁËÈÎÎñ£¬Ö´Ðк¯ÊýRobotArmControl::executeTask£¬ÐÞ¸´½çÃæÏÔʾbug + //先判断是å�¦é€‰æ‹©äº†ä»»åŠ¡ï¼Œæ‰§è¡Œå‡½æ•°RobotArmControl::executeTask,修å¤�界é�¢æ˜¾ç¤ºbug m_Imager->setFileName2Save(imgPath); m_Imager->setFrameNumber(this->frame_number->text().toInt()); m_rac->executeTaskWithHyperImager(); @@ -1036,22 +1036,22 @@ void HPPA::onCreateTab(int trackNumber) } -void HPPA::onTabWidgetCurrentChanged(int index)//´úÂëн¨Ò»¸ötab£¬»áµ÷ÓÃonTabWidgetCurrentChangedº¯Êý£¡ +void HPPA::onTabWidgetCurrentChanged(int index)//代ç �新建一个tab,会调用onTabWidgetCurrentChanged函数ï¼� { - if (index < 0)//µ±É¾³ýËùÓÐtabʱ£¬index=-1 + if (index < 0)//当删除所有tab时,index=-1 { return; } - //¼Ç¼µ±Ç° + //记录当å‰� m_TabWidgetCurrentIndex = index; - //»ñÈ¡»æÍ¼¿Ø¼þ + //获å�–绘图控件 QWidget* currentWidget = m_imageViewerTabWidget->widget(index); QList currentImageViewer = currentWidget->findChildren(); - //ÏÈdisconnectÈ»ºóÔÙconnect£¬·ñÔòÿ´ÎÇл»Ò»´Î¶¼»áconnectÒ»´Î£¬»áÀÛ»ýconnectºÜ¶à´Î£¡ + //å…ˆdisconnectç„¶å�Žå†�connect,å�¦åˆ™æ¯�次切æ�¢ä¸€æ¬¡éƒ½ä¼šconnect一次,会累积connect很多次ï¼� disconnect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int))); connect(currentImageViewer[0], SIGNAL(leftMouseButtonPressed(int, int)), this, SLOT(onLeftMouseButtonPressed(int, int))); } @@ -1066,7 +1066,7 @@ void HPPA::onActionOpenDirectory() //QDesktopServices::openUrl(QUrl("file:C:\ASD", QUrl::TolerantMode)); - ////std::cout << "±£´æÓ°ÏñÎļþ£¡" << std::endl; + ////std::cout << "ä¿�存影åƒ�文件ï¼�" << std::endl; // //FileOperation * fileOperation = new FileOperation(); //string directory = fileOperation->getDirectoryFromString(); @@ -1089,14 +1089,14 @@ void HPPA::onActionOpenDirectory() //} //else //{ - // std::cout << "ÎļþÃû³¤¶È£º" << FileName2Save.length() << std::endl; + // std::cout << "文件å��长度:" << FileName2Save.length() << std::endl; //} } void HPPA::OnFramerateLineeditEditingFinished() { - std::cout << "LineeditÉèÖÃÖ¡ÂÊ------------------------------------------" << std::endl; + std::cout << "Lineedit设置帧率------------------------------------------" << std::endl; m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble()); ui.FramerateSlider->setValue(ui.framerate_lineEdit->text().toDouble()); @@ -1105,7 +1105,7 @@ void HPPA::OnFramerateLineeditEditingFinished() void HPPA::OnFramerateSliderChanged(double framerate) { - std::cout << "SliderÉèÖÃÖ¡ÂÊ------------------------------------------" << std::endl; + std::cout << "Slider设置帧率------------------------------------------" << std::endl; m_Imager->setFramerate(this->ui.framerate_lineEdit->text().toDouble()); ui.framerate_lineEdit->setText(QString::number(framerate)); @@ -1114,14 +1114,14 @@ void HPPA::OnFramerateSliderChanged(double framerate) void HPPA::OnIntegratioinTimeEditingFinished() { - std::cout << "LineeditÉèÖûý·Öʱ¼ä------------------------------------------" << std::endl; + std::cout << "Lineedit设置积分时间------------------------------------------" << std::endl; m_Imager->setIntegrationTime(this->ui.integratioin_time_lineEdit->text().toDouble()); ui.IntegratioinTimeSlider->setValue(ui.integratioin_time_lineEdit->text().toDouble()); } void HPPA::OnIntegratioinTimeSliderChanged(double IntegratioinTime) { - std::cout << "SliderÉèÖûý·Öʱ¼ä------------------------------------------" << std::endl; + std::cout << "Slider设置积分时间------------------------------------------" << std::endl; m_Imager->setIntegrationTime(IntegratioinTime); ui.integratioin_time_lineEdit->setText(QString::number(IntegratioinTime)); } @@ -1142,7 +1142,7 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) { try { - //ÕýÔڲɼ¯Ê±£¬²»ÄÜÏÔʾ¹âÆ×ÇúÏß + //正在采集时,ä¸�能显示光谱曲线 if (m_RecordState % 2 == 1) { return; @@ -1174,10 +1174,10 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) int start = m_Imager->getStartBand(); for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++) { - //mallocÉêÇëµÄÄÚ´æÓ÷¨1£º¿ÉÒÔµ±×öÊý×éÓà + //malloc申请的内存用法1:å�¯ä»¥å½“å�šæ•°ç»„ç”¨ series->append(m_Imager->getWavelengthAtBand(i + start), data[i]); - ////mallocÉêÇëµÄÄÚ´æÓ÷¨2£ºÖ¸Õë´æÈ¡ + ////malloc申请的内存用法2:指针存å�– //series->append(m_Imager->getWavelengthAtBand(i), *data); //data++; } @@ -1187,10 +1187,10 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) int start = 0; for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++) { - //mallocÉêÇëµÄÄÚ´æÓ÷¨1£º¿ÉÒÔµ±×öÊý×éÓà + //malloc申请的内存用法1:å�¯ä»¥å½“å�šæ•°ç»„ç”¨ series->append(m_Imager->getWavelengthAtBand(i + start), data[i]); - ////mallocÉêÇëµÄÄÚ´æÓ÷¨2£ºÖ¸Õë´æÈ¡ + ////malloc申请的内存用法2:指针存å�– //series->append(m_Imager->getWavelengthAtBand(i), *data); //data++; } @@ -1198,7 +1198,7 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) else { QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("ÇëÑ¡ÔñÏà»ú£¡")); + msgBox.setText(QString::fromLocal8Bit("请选择相机ï¼�")); msgBox.exec(); return; @@ -1214,14 +1214,14 @@ void HPPA::onLeftMouseButtonPressed(int x, int y) setAxis(axisX, axisY); - /*std::cout << "x×ø±ê:" << x << std::endl; - std::cout << "y×ø±ê:" << y << std::endl; - std::cout << "ÎļþÃû:" << imgPath << std::endl;*/ + /*std::cout << "xå��æ ‡:" << x << std::endl; + std::cout << "yå��æ ‡:" << y << std::endl; + std::cout << "文件å��:" << imgPath << std::endl;*/ } catch (const std::exception&) { - std::cout << "ÏÔʾ¹âÆ×ÓдíÎó£¡" << std::endl; + std::cout << "显示光谱有错误ï¼�" << std::endl; } } @@ -1233,15 +1233,15 @@ void HPPA::setAxis(QValueAxis* axisX, QValueAxis* axisY) QPen axisPen(QColor("#ACCDFF")); axisPen.setWidth(1); - // ×ø±êÖáÏßÑÕÉ« + // å��标轴线颜色 axisX->setLinePen(axisPen); axisY->setLinePen(axisPen); - // ×ø±ê±êÇ©ÑÕÉ« + // å��标标签颜色 axisX->setLabelsColor(QColor("#ACCDFF")); axisY->setLabelsColor(QColor("#ACCDFF")); - // Íø¸ñÏßÑÕÉ« + // 网格线颜色 QPen gridPen(QColor("#262A4C")); gridPen.setStyle(Qt::DashLine); gridPen.setWidth(2); @@ -1272,12 +1272,12 @@ void HPPA::OnSendLogToCallClass(QString str) void HPPA::onPlotRgbImage() { - //std::cout << "ÏÔʾÊÓÆµ+++++++++++++++++++++++++++++++++++++++++++" << std::endl; + //std::cout << "显示视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl; QPixmap pixmap = QPixmap::fromImage(m_RgbCamera->m_qImage); int width = m_cam_label->width(); int height = m_cam_label->height(); - QPixmap fitpixmap = pixmap.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); //°´±ÈÀýËõ·Å + QPixmap fitpixmap = pixmap.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); //按比例缩放 m_cam_label->setPixmap(fitpixmap); @@ -1285,7 +1285,7 @@ void HPPA::onPlotRgbImage() void HPPA::onCloseRgbCamera() { - //std::cout << "¹Ø±ÕÊÓÆµ+++++++++++++++++++++++++++++++++++++++++++" << std::endl; + //std::cout << "关闭视频+++++++++++++++++++++++++++++++++++++++++++" << std::endl; m_RgbCamera->CloseCamera(); } @@ -1312,7 +1312,7 @@ void HPPA::getRequest(QString str) } void HPPA::requestFinished(QNetworkReply* reply) { - // »ñÈ¡http״̬Âë + // 获å�–http状æ€�ç � QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); if (statusCode.isValid()) qDebug() << "status code=" << statusCode.toInt(); @@ -1326,7 +1326,7 @@ void HPPA::requestFinished(QNetworkReply* reply) { qDebug() << "Failed: " << reply->errorString(); } else { - // »ñÈ¡·µ»ØÄÚÈÝ + // 获å�–返回内容 qDebug() << reply->readAll(); } } @@ -1340,16 +1340,16 @@ void HPPA::onconnect() { if (m_Imager != nullptr) { - //std::cout << "Ïà»úÒѾ­Á¬½Ó£¡" << std::endl; + //std::cout << "相机已ç»�连接ï¼�" << std::endl; return; } try { - //²É¼¯Ó°ÏñỊ̈߳º·ÅÈëÐÂÏß³ÌÖвɼ¯ÒÔÃâÔڲɼ¯¹ý³ÌÖнçÃæ¿¨ËÀ£ºhttps://www.cnblogs.com/xia-weiwen/p/10306089.html + //采集影åƒ�线程:放入新线程中采集以å…�在采集过程中界é�¢å�¡æ­»ï¼šhttps://www.cnblogs.com/xia-weiwen/p/10306089.html m_RecordThread = new QThread(); - //¸ù¾ÝÑ¡ÔñµÄÏà»úÀàÐÍ´´½¨¶ÔÏómImagerGroup + //æ ¹æ�®é€‰æ‹©çš„相机类型创建对象mImagerGroup QString imagerSelected = mImagerGroup->checkedAction()->objectName(); if (imagerSelected == "mActionPica_L") { @@ -1370,7 +1370,7 @@ void HPPA::onconnect() else { QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("ÇëÑ¡ÔñÏà»ú£¡")); + msgBox.setText(QString::fromLocal8Bit("请选择相机ï¼�")); msgBox.exec(); return; @@ -1387,7 +1387,7 @@ void HPPA::onconnect() connect(m_Imager, SIGNAL(SpectralSignal(int)), this, SLOT(PlotSpectral(int))); //connect(m_Imager, SIGNAL(testImagerStatus()), this, SLOT(testImagerStatus())); - //Îļþ¿½±´ + //文件拷è´� m_CopyFileThread = new QThread(); m_FileOperation = new FileOperation(); m_FileOperation->moveToThread(m_CopyFileThread); @@ -1395,7 +1395,7 @@ void HPPA::onconnect() connect(this, SIGNAL(CopyFileThreadSignal(QString, QString)), m_FileOperation, SLOT(copyFile(QString, QString))); connect(m_FileOperation, SIGNAL(CopyFinishedSignal()), this, SLOT(onCopyFinished())); - //¼ì²â¹âÆ×ÒÇÁ¬½Ó״̬ + //检测光谱仪连接状æ€� m_TestImagerStausThread = new WorkerThread(m_Imager); @@ -1426,7 +1426,7 @@ void HPPA::onconnect() connect(this->ui.GainSlider, SIGNAL(valueChanged(double)), this, SLOT(OnGainSliderChanged(double))); - //Ïà»ú²ÎÊý¿Ø¼þÉèÖÃΪ¿ÉÓà + ÊäÈë¿ØÖÆ + //相机å�‚数控件设置为å�¯ç”¨ + 输入控制 frame_number->setEnabled(true); ui.framerate_lineEdit->setEnabled(true); @@ -1444,7 +1444,7 @@ void HPPA::onconnect() ui.integratioin_time_lineEdit->setValidator(new QRegExpValidator(rx)); ui.gain_lineEdit->setValidator(new QRegExpValidator(rx));*/ - //»ñÈ¡Ïà»ú²ÎÊý²¢ÏÔʾµ½½çÃæÖÐ + //获å�–相机å�‚数并显示到界é�¢ä¸­ ui.framerate_lineEdit->setText(QString::number(m_Imager->getFramerate(), 10, 2)); ui.FramerateSlider->setValue(m_Imager->getFramerate(), true); CalculateIntegratioinTimeRange(); @@ -1463,7 +1463,7 @@ void HPPA::onconnect() m_Imager = nullptr; QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("ÇëÁ¬½ÓÏà»ú£¡")); + msgBox.setText(QString::fromLocal8Bit("请连接相机ï¼�")); msgBox.exec(); } @@ -1480,7 +1480,7 @@ void HPPA::onAutoExposure() { double ReturnedExposureTime = m_Imager->auto_exposure(); - //½«×Ô¶¯ÆØ¹âËùµÃµÄÖµÏÔʾµ½½çÃæ + //将自动æ›�光所得的值显示到界é�¢ ui.IntegratioinTimeSlider->setValue(ReturnedExposureTime, false); @@ -1493,7 +1493,7 @@ void HPPA::onFocus1() focusWindow* w = new focusWindow(this, m_Imager); connect(w, SIGNAL(StartManualFocusSignal(int)), this, SLOT(onFocus2(int))); - //w->setModal(true);//ÉèÖô°¿ÚΪģ̬£ºÖ»ÄܲÙ×÷µ±Ç°´°¿Ú + //w->setModal(true);//设置窗å�£ä¸ºæ¨¡æ€�:å�ªèƒ½æ“�作当å‰�窗å�£ w->show(); w->exec(); @@ -1504,7 +1504,7 @@ void HPPA::onFocus2(int command) { if (command == 1) { - //´´½¨Ó°ÏñÏÔʾ´°¿Ú + //创建影åƒ�显示窗å�£ QWidget* tabTmp = new QWidget(); QGridLayout* GridLayout = new QGridLayout(); @@ -1512,13 +1512,13 @@ void HPPA::onFocus2(int command) tabTmp->setLayout(GridLayout); - m_imageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("µ÷½¹")); + m_imageViewerTabWidget->addTab(tabTmp, QString::fromLocal8Bit("调焦")); //m_imageViewerTabWidget->setCurrentIndex(trackNumber); m_imageViewerTabWidget->setCurrentWidget(tabTmp); - //¿ªÊ¼µ÷½¹ + //开始调焦 emit StartFocusSignal(); } else if (command == 0) @@ -1537,7 +1537,7 @@ void HPPA::onAbout() void HPPA::onDark() { QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("²É¼¯°µµçÁ÷£¬ÇëÈ·±£¾µÍ·¸Ç¸ÇÉÏ£¡")); + msgBox.setText(QString::fromLocal8Bit("采集暗电æµ�,请确ä¿�镜头盖盖上ï¼�")); msgBox.exec(); QAction* checked = moveplatformActionGroup->checkedAction(); @@ -1567,7 +1567,7 @@ void HPPA::recordDarkFinish() void HPPA::onReference() { QMessageBox msgBox; - msgBox.setText(QString::fromLocal8Bit("ÇëÈ·±£°×°å·ÅÖÃÕýÈ·£¡")); + msgBox.setText(QString::fromLocal8Bit("请确ä¿�白æ�¿æ”¾ç½®æ­£ç¡®ï¼�")); msgBox.exec(); QAction* checked = moveplatformActionGroup->checkedAction(); @@ -1596,7 +1596,7 @@ void HPPA::recordWhiteFinish() void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber) { - //ʹÓûúе±Û²É¼¯Ê±£¬»áÔÚÍ£Ö¹²É¼¯ºóµÄ˲¼äÓÖ¿ªÊ¼²É¼¯£¬»áµ¼ÖÂÉϴβɼ¯×îºó·¢ÉäµÄÐźŵ÷Óô˲ۺ¯Êý±¨´í + //使用机械臂采集时,会在å�œæ­¢é‡‡é›†å�Žçš„瞬间å�ˆå¼€å§‹é‡‡é›†ï¼Œä¼šå¯¼è‡´ä¸Šæ¬¡é‡‡é›†æœ€å�Žå�‘射的信å�·è°ƒç”¨æ­¤æ§½å‡½æ•°æŠ¥é”™ QAction* checked = moveplatformActionGroup->checkedAction(); QString checkedName = checked->objectName(); if (frameNumber == -1 && checkedName == "mAction_RobotArm") @@ -1605,60 +1605,60 @@ void HPPA::onPlotHyperspectralImageRgbImage(int fileNumber, int frameNumber) } //return; - //»ñÈ¡»æÍ¼¿Ø¼þ + //获å�–绘图控件 QWidget* currentWidget = m_imageViewerTabWidget->widget(fileNumber); QList currentImageViewer = currentWidget->findChildren(); - currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//½çÃæÖÐÏÔʾÒѾ­²É¼¯µÄÖ¡Êý + currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFrameCounter());//界é�¢ä¸­æ˜¾ç¤ºå·²ç»�采集的帧数 - //´´½¨ÐèÒªÏÔʾµÄͼÏñ--opencv°æ±¾ + //创建需è¦�显示的图åƒ�--opencv版本 ImageProcessor imageProcessor; - //cv::Mat rgbImage(*m_Imager->getRgbImage()->m_matRgbImage, cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());//2022.3.18ÖØ¹¹µÄ + //cv::Mat rgbImage(*m_Imager->getRgbImage()->m_matRgbImage, cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all());//2022.3.18é‡�构的 cv::Mat rgbImage(*m_Imager->getMatRgbImage(), cv::Range(0, m_Imager->getFrameCounter()), cv::Range::all()); cv::Mat rgbImageStretched = imageProcessor.CStretch(rgbImage, 0.02); - //ÔÚ½çÃæÖÐÏÔʾͼÏñ - currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(rgbImageStretched)));//»æÖÆÍ¼Ïñ + //在界é�¢ä¸­æ˜¾ç¤ºå›¾åƒ� + currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(rgbImageStretched)));//绘制图åƒ� //20241225 - //±£´æÀ­ÉìºóµÄrgb + //ä¿�存拉伸å�Žçš„rgb //FileOperation* fileOperation = new FileOperation(); //string directory = fileOperation->getDirectoryOfExe(); - //string rgbFilePathNoStrech = directory + "\\tmp_image_no_strech.png";//δÀ­ÉìͼƬ - //string rgbFilePathStrech = directory + "\\tmp_image_strech.png";//À­ÉìͼƬ + //string rgbFilePathNoStrech = directory + "\\tmp_image_no_strech.png";//未拉伸图片 + //string rgbFilePathStrech = directory + "\\tmp_image_strech.png";//拉伸图片 //cv::imwrite(rgbFilePathNoStrech, rgbImage); //cv::imwrite(rgbFilePathStrech, rgbImageStretched); - //´´½¨ÐèÒªÏÔʾµÄͼÏñ--qt°æ±¾ - //QRect CuttedRect = m_Imager->getRgbImage()->m_QRgbImage->rect();//ÏÈ»ñÈ¡imageÕû¸örect - //CuttedRect.setHeight(m_Imager->getFrameCounter() - 1);//²Ã¼ôrect + //创建需è¦�显示的图åƒ�--qt版本 + //QRect CuttedRect = m_Imager->getRgbImage()->m_QRgbImage->rect();//先获å�–image整个rect + //CuttedRect.setHeight(m_Imager->getFrameCounter() - 1);//è£�剪rect //QImage CuttedImage = m_Imager->getRgbImage()->m_QRgbImage->copy(CuttedRect); - //currentImageViewer[0]->SetImage(&QPixmap::fromImage(CuttedImage));//»æÖÆÍ¼Ïñ + //currentImageViewer[0]->SetImage(&QPixmap::fromImage(CuttedImage));//绘制图åƒ� } void HPPA::PlotSpectral(int state) { if (state == 1) { - //ÏÔʾӰÏñ + //显示影åƒ� QWidget* currentWidget = m_imageViewerTabWidget->currentWidget(); QList currentImageViewer = currentWidget->findChildren(); - currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//½çÃæÖÐÏÔʾÒѾ­²É¼¯µÄÖ¡Êý + currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//界é�¢ä¸­æ˜¾ç¤ºå·²ç»�采集的帧数 ImageProcessor imageProcessor; - //cv::Mat grayImage(*m_Imager->getRgbImage()->m_matFocusGrayImage, cv::Range::all(), cv::Range::all());//2022.3.18ÖØ¹¹µÄ + //cv::Mat grayImage(*m_Imager->getRgbImage()->m_matFocusGrayImage, cv::Range::all(), cv::Range::all());//2022.3.18é‡�构的 //cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all()); - //currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//»æÖÆÍ¼Ïñ + //currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//绘制图åƒ� - currentImageViewer[0]->SetImage(&QPixmap::fromImage(m_Imager->getQImageFocusGrayImage()));//»æÖÆÍ¼Ïñ + currentImageViewer[0]->SetImage(&QPixmap::fromImage(m_Imager->getQImageFocusGrayImage()));//绘制图åƒ� - //»æÖƹâÆ× + //绘制光谱 QLineSeries* series = new QLineSeries(); //series->clear();////////////////////////////// int sampleCount = m_Imager->getSampleCount(); for (size_t i = 0; i < sampleCount; i++) { - //mallocÉêÇëµÄÄÚ´æÓ÷¨1£º¿ÉÒÔµ±×öÊý×éÓà + //malloc申请的内存用法1:å�¯ä»¥å½“å�šæ•°ç»„ç”¨ //series->append(i, m_Imager->buffer[i + 5 * 900]); //series->append(i, m_Imager->buffer[900 * 150 + i]); series->append(i, m_Imager->buffer[1368 * 150 + i]); @@ -1674,12 +1674,12 @@ void HPPA::PlotSpectral(int state) } else { - //¸Ä±ä½çÃæÉϵİ´Å¥ÎÄ×Ö + //改å�˜ç•Œé�¢ä¸Šçš„æŒ‰é’®æ–‡å­— } - ////ÏÔʾӰÏñ + ////显示影åƒ� //QWidget* currentWidget = m_imageViewerTabWidget->currentWidget(); //QList currentImageViewer = currentWidget->findChildren(); // @@ -1687,7 +1687,7 @@ void HPPA::PlotSpectral(int state) //ImageProcessor imageProcessor; // - ////»æÖƹâÆ× + ////绘制光谱 //QLineSeries *series = new QLineSeries(); ////series->clear();////////////////////////////// //int sampleCount = m_Imager->getSampleCount(); @@ -1703,13 +1703,13 @@ void HPPA::PlotSpectral(int state) //while (state) //{ - // currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//½çÃæÖÐÏÔʾÒѾ­²É¼¯µÄÖ¡Êý + // currentImageViewer[0]->DisplayFrameNumber(m_Imager->getFocusFrameCounter());//界é�¢ä¸­æ˜¾ç¤ºå·²ç»�采集的帧数 // cv::Mat grayImage(*m_Imager->getMatFocusGrayImage(), cv::Range::all(), cv::Range::all()); - // currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//»æÖÆÍ¼Ïñ + // currentImageViewer[0]->SetImage(&QPixmap::fromImage(imageProcessor.Mat2QImage(grayImage)));//绘制图åƒ� // for (size_t i = 0; i < sampleCount; i++) // { - // //mallocÉêÇëµÄÄÚ´æÓ÷¨1£º¿ÉÒÔµ±×öÊý×éÓà + // //malloc申请的内存用法1:å�¯ä»¥å½“å�šæ•°ç»„ç”¨ // //series->append(i, m_Imager->buffer[i + 5 * 900]); // series->append(i, m_Imager->buffer[900 * 150 + i]); // } @@ -1723,12 +1723,12 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberMeet() QAction* checked = moveplatformActionGroup->checkedAction(); QString checkedName = checked->objectName(); - std::cout << "Í£Ö¹²É¼¯Ô­Òò£ºÖ¡Êý²É¼¯ÍêÁË¡£" << std::endl; + std::cout << "å�œæ­¢é‡‡é›†åŽŸå› ï¼šå¸§æ•°é‡‡é›†å®Œäº†ã€‚" << std::endl; - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); - m_RecordState++;//µ±×Ô¶¯Í£Ö¹²É¼¯ + m_RecordState++;//当自动å�œæ­¢é‡‡é›† } void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet() @@ -1736,19 +1736,19 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet() QAction* checked = moveplatformActionGroup->checkedAction(); QString checkedName = checked->objectName(); - if (checkedName == "mAction_RobotArm")//»úе±Û»áÔÚÍ£Ö¹²É¼¯ºóµÄ˲¼äÓÖ¿ªÊ¼²É¼¯£¬µ¼ÖÂui.action_start_recordingÏÔʾÒì³£ + if (checkedName == "mAction_RobotArm")//机械臂会在å�œæ­¢é‡‡é›†å�Žçš„瞬间å�ˆå¼€å§‹é‡‡é›†ï¼Œå¯¼è‡´ui.action_start_recording显示异常 { return; } - if (checkedName == "mAction_2AxisMotor_new")//»áÓжàÌõ²É¼¯Ïߣ¬ÖмäµÄijÌõ²É¼¯ÏßÍê³Éºó²»´ú±íÕû¸ö²É¼¯¹ý³ÌÍê³É + if (checkedName == "mAction_2AxisMotor_new")//会有多æ�¡é‡‡é›†çº¿ï¼Œä¸­é—´çš„æŸ�æ�¡é‡‡é›†çº¿å®Œæˆ�å�Žä¸�代表整个采集过程完æˆ� { return; } - std::cout << "Í£Ö¹²É¼¯Ô­Òò£º£¨1£©Ö¡ÊýûÓвɼ¯¹»Ê±£¬Âí´ïµ½´ï×î´óλÖ㻣¨2£©ÊÖ¶¯Í£Ö¹²É¼¯¡£" << std::endl; + std::cout << "å�œæ­¢é‡‡é›†åŽŸå› ï¼šï¼ˆ1)帧数没有采集够时,马达到达最大ä½�置;(2)手动å�œæ­¢é‡‡é›†ã€‚" << std::endl; - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); m_RecordState++; @@ -1756,7 +1756,7 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet() void HPPA::onsequenceComplete() { - ui.action_start_recording->setText(QString::fromLocal8Bit("²É¼¯")); + ui.action_start_recording->setText(QString::fromLocal8Bit("采集")); ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}"); m_RecordState++;