更新了推出逻辑避免退出报错
This commit is contained in:
parent
1ba0432ad2
commit
709ea0f6fd
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
66
camera.cpp
66
camera.cpp
@ -1,6 +1,5 @@
|
||||
#include "camera.h"
|
||||
|
||||
#include <QTimer>
|
||||
|
||||
// Debug Options
|
||||
#define GlobalDebug 0 // 全局是否允许打印Debug信息(打印会拖慢处理时间)
|
||||
@ -79,7 +78,7 @@ extern int lowmac_td; //偏振红色通道差值
|
||||
Timer CallBackTimer0;
|
||||
Timer CallBackTimer1;
|
||||
|
||||
// ONNXRunner runner;
|
||||
|
||||
bool iniCamera()
|
||||
{
|
||||
//分配application
|
||||
@ -135,12 +134,6 @@ bool iniCamera()
|
||||
return 1;
|
||||
}
|
||||
|
||||
// #if(GlobalDebug && DebugDetection)
|
||||
// // #define SAVE_PATH_resize MIL_TEXT ("C:\\Users\\Pc\\Desktop\\cotton_double2//resize.png")
|
||||
// #define SAVE_PATH_flip MIL_TEXT ("C:\\Users\\Pc\\Desktop\\cotton_double2//flip.png")
|
||||
// #define SAVE_PATH_raw MIL_TEXT ("C:\\Users\\Pc\\Desktop\\cotton_double2//raw.png")
|
||||
// #define SAVE_PATH_result MIL_TEXT ("C:\\Users\\Pc\\Desktop\\cotton_double2//result.png")
|
||||
// #endif
|
||||
|
||||
MIL_INT ProcessingFunction0(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
|
||||
{
|
||||
@ -555,12 +548,7 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
|
||||
//将mask扩展到合适发送的大小
|
||||
std::vector<std::vector<uint8_t>> mask_Total = expandArray(mask_expaned,64);
|
||||
|
||||
// save masks
|
||||
// #if(GlobalDebug && DebugDetection)
|
||||
// VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask" + std::to_string(FuncCount1) + ".bmp");
|
||||
// VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask_ignored" + std::to_string(FuncCount1) + ".bmp");
|
||||
// VectorToImg(mask_Total,"C:/Users/Pc/Desktop/img/mask_expended" + std::to_string(FuncCount1) + ".bmp");
|
||||
// #endif
|
||||
|
||||
// 发送到下位机
|
||||
bool result_Low = get_valve_data(mask_Total);
|
||||
if(!result_Low)
|
||||
@ -590,10 +578,13 @@ bool DestoryCamera()
|
||||
|
||||
MbufFree(MilImage0);
|
||||
MbufFree(MilImage1);
|
||||
|
||||
MbufFree(MilImage_Color0);
|
||||
MbufFree(MilImage_Color1);
|
||||
|
||||
MdigFree(MilDigitizer0);
|
||||
MdigFree(MilDigitizer1);
|
||||
|
||||
MsysFree(MilSystem);
|
||||
MappFree(MilApplication);
|
||||
|
||||
@ -672,14 +663,6 @@ void read_color(const std::string& filename, std::vector<std::string>& colors) {
|
||||
|
||||
|
||||
std::vector<std::vector<uint8_t>> generateMaskFromImage(const MIL_ID& inputImage, int widthBlocks, int heightBlocks, int thresholds= 10) {
|
||||
// 读取图像
|
||||
// cv::Mat image = cv::imread(imagePath, cv::IMREAD_GRAYSCALE);
|
||||
|
||||
// // 检查图像是否成功读取
|
||||
// if (image.empty()) {
|
||||
// std::cerr << "无法加载图像,请检查路径是否正确: " << imagePath << std::endl;
|
||||
// exit(EXIT_FAILURE);
|
||||
// }
|
||||
cv::Mat image=ImageUtils::mil2Mat(inputImage);
|
||||
// 确保图像是二值化的
|
||||
cv::threshold(image, image, 128, 255, cv::THRESH_BINARY);
|
||||
@ -818,12 +801,6 @@ bool iniOnnx()
|
||||
std::string modelPath = (getConfigDirectory() + "/dimo_369_640.onnx").toStdString();
|
||||
|
||||
runner.load(modelPath);
|
||||
|
||||
// cv::Mat mask;
|
||||
// std::vector<Detection> result = runner.predict(image);
|
||||
// mask = runner.postProcess(result, image);
|
||||
// std::string savepath = "C:/Users/admin/Desktop/config/suspect_mask.png";
|
||||
// cv::imwrite(savepath, mask);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -1068,9 +1045,6 @@ bool setLowMacParam(){
|
||||
|
||||
bool DestoryLowMac()
|
||||
{
|
||||
MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_STOP, M_DEFAULT,ProcessingFunction0, M_NULL);
|
||||
MdigProcess(MilDigitizer1, MilGrabBufferList1, 20, M_STOP, M_DEFAULT,ProcessingFunction1, M_NULL);
|
||||
|
||||
// 构建停止命令
|
||||
uint8_t stop_command[9] = {0};
|
||||
stop_command[0] = 0xAA; // 起始标志
|
||||
@ -1161,12 +1135,33 @@ bool get_valve_data(std::vector<std::vector<uint8_t>> mask)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void Start_camera()
|
||||
bool start_grab()
|
||||
{
|
||||
MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_START, M_DEFAULT,ProcessingFunction0, M_NULL);
|
||||
MdigProcess(MilDigitizer1, MilGrabBufferList1, 20, M_START, M_DEFAULT,ProcessingFunction1, M_NULL);
|
||||
try
|
||||
{
|
||||
MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_START, M_DEFAULT,ProcessingFunction0, M_NULL);
|
||||
MdigProcess(MilDigitizer1, MilGrabBufferList1, 20, M_START, M_DEFAULT,ProcessingFunction1, M_NULL);
|
||||
} catch (...) {
|
||||
qWarning() << "Start Grabber Failed!!!";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool stop_grab()
|
||||
{ try {
|
||||
MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_STOP, M_DEFAULT,ProcessingFunction0, M_NULL);
|
||||
MdigProcess(MilDigitizer1, MilGrabBufferList1, 20, M_STOP, M_DEFAULT,ProcessingFunction1, M_NULL);
|
||||
} catch (...) {
|
||||
qWarning() << "Stop Grabber Failed!!!";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void start_camera()
|
||||
{
|
||||
start_grab();
|
||||
// 发送开始命令
|
||||
uint8_t start_command[9] = {0};
|
||||
start_command[0] = 0xAA;
|
||||
@ -1191,7 +1186,6 @@ void Start_camera()
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::vector<std::vector<uint8_t> > expandArray(const std::vector<std::vector<uint8_t> > &array, int newCols)
|
||||
{
|
||||
int rows = array.size();
|
||||
|
||||
9
camera.h
9
camera.h
@ -11,6 +11,7 @@
|
||||
#include <string>
|
||||
#include <future>
|
||||
|
||||
#include <QTimer>
|
||||
#include <chrono>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
@ -23,7 +24,7 @@
|
||||
#include <QTcpServer>
|
||||
#include "globals.h"
|
||||
#include "img_utils.h"
|
||||
#include "color_range.h"
|
||||
#include "color_algorithms.h"
|
||||
|
||||
extern MIL_ID MilApplication;
|
||||
extern MIL_ID MilSystem;
|
||||
@ -67,7 +68,7 @@ bool iniColor();
|
||||
|
||||
bool iniOnnx();
|
||||
|
||||
void Start_camera();
|
||||
void start_camera();
|
||||
|
||||
bool setLowMacParam();
|
||||
|
||||
@ -75,6 +76,10 @@ bool DestoryCamera();
|
||||
|
||||
bool DestoryLowMac();
|
||||
|
||||
bool start_grab();
|
||||
|
||||
bool stop_grab();
|
||||
|
||||
extern int SaveImg_Flag;
|
||||
|
||||
MIL_INT MFTYPE ProcessingFunction0(MIL_INT HookType, MIL_ID HookId, void* HookDataPtr);
|
||||
|
||||
@ -11,11 +11,12 @@ CONFIG += console
|
||||
|
||||
SOURCES += \
|
||||
camera.cpp \
|
||||
color_range.cpp \
|
||||
color_algorithms.cpp \
|
||||
countdowndialog.cpp \
|
||||
detectionworker.cpp \
|
||||
globals.cpp \
|
||||
img_utils.cpp \
|
||||
lower_machine.cpp \
|
||||
main.cpp \
|
||||
onnxrunner.cpp \
|
||||
storageworker.cpp \
|
||||
@ -23,11 +24,12 @@ SOURCES += \
|
||||
|
||||
HEADERS += \
|
||||
camera.h \
|
||||
color_range.h \
|
||||
color_algorithms.h \
|
||||
countdowndialog.h \
|
||||
detectionworker.h \
|
||||
globals.h \
|
||||
img_utils.h \
|
||||
lower_machine.h \
|
||||
onnxrunner.h \
|
||||
storageworker.h \
|
||||
widget.h
|
||||
|
||||
31
dist/config/color_range_config.txt
vendored
31
dist/config/color_range_config.txt
vendored
@ -12,17 +12,17 @@ blue_a_max = 22
|
||||
blue_b_min = -48
|
||||
blue_b_max = -8
|
||||
|
||||
orange_L_min = 63
|
||||
orange_L_max = 78
|
||||
orange_a_min = 7
|
||||
orange_a_max = 14
|
||||
orange_b_min = 23
|
||||
orange_b_max = 47
|
||||
orange_L_min = 67
|
||||
orange_L_max = 93
|
||||
orange_a_min = -8
|
||||
orange_a_max = 8
|
||||
orange_b_min = 36
|
||||
orange_b_max = 58
|
||||
|
||||
black_L_min = 0
|
||||
black_L_max = 8
|
||||
black_a_min = -4
|
||||
black_a_max = 2
|
||||
black_L_max = 30
|
||||
black_a_min = -5
|
||||
black_a_max = 3
|
||||
black_b_min = -3
|
||||
black_b_max = 4
|
||||
|
||||
@ -34,9 +34,9 @@ red_b_min = -80
|
||||
red_b_max = 37
|
||||
|
||||
purple_L_min = 38
|
||||
purple_L_max = 54
|
||||
purple_L_max = 60
|
||||
purple_a_min = 10
|
||||
purple_a_max = 20
|
||||
purple_a_max = 25
|
||||
purple_b_min = -45
|
||||
purple_b_max = 1
|
||||
|
||||
@ -51,9 +51,12 @@ expansionRaidus = 1
|
||||
file_delay = 1180
|
||||
lab_denoising = 1
|
||||
lowmac_dp = 350
|
||||
lowmac_sg = 70
|
||||
lowmac_td = 7
|
||||
lowmac_ts = 10
|
||||
lowmac_sg = 60
|
||||
lowmac_sm = 1800
|
||||
lowmac_td = 2
|
||||
lowmac_ts = 13
|
||||
machine_num = 0
|
||||
max_valves_together = 20
|
||||
saturation_denoising = 1
|
||||
saturation_threshold = 165
|
||||
sizeThreshold = 4
|
||||
|
||||
@ -56,7 +56,7 @@ lowmac_sm = 1200
|
||||
lowmac_td = 7
|
||||
lowmac_ts = 10
|
||||
machine_num = 0
|
||||
max_valves_together = 20
|
||||
max_valves_together = 18
|
||||
saturation_denoising = 1
|
||||
saturation_threshold = 165
|
||||
sizeThreshold = 4
|
||||
|
||||
@ -1988,7 +1988,7 @@ public:
|
||||
|
||||
retranslateUi(Widget);
|
||||
|
||||
tabWidget->setCurrentIndex(3);
|
||||
tabWidget->setCurrentIndex(1);
|
||||
|
||||
|
||||
QMetaObject::connectSlotsByName(Widget);
|
||||
@ -2007,14 +2007,14 @@ public:
|
||||
btn_take_photos->setText(QCoreApplication::translate("Widget", "\346\212\223\345\217\226\345\233\276\347\211\207", nullptr));
|
||||
btn_set_valve->setText(QCoreApplication::translate("Widget", "\350\256\276\347\275\256\345\217\202\346\225\260", nullptr));
|
||||
btn_quit->setText(QCoreApplication::translate("Widget", "\351\200\200\345\207\272\347\263\273\347\273\237", nullptr));
|
||||
label_2->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2721", nullptr));
|
||||
label_2->setText(QCoreApplication::translate("Widget", "\346\260\224\347\275\220\344\276\247-\347\233\270\346\234\2721", nullptr));
|
||||
dl_enable_1->setText(QCoreApplication::translate("Widget", "\345\261\217\350\224\275\346\267\261\345\272\246\345\255\246\344\271\240", nullptr));
|
||||
tra_enable_1->setText(QCoreApplication::translate("Widget", "\345\261\217\350\224\275\350\211\263\344\270\275\346\243\200\346\265\213", nullptr));
|
||||
mtx_1_overlay->setText(QCoreApplication::translate("Widget", "\350\211\262\346\243\200\347\273\223\346\236\234", nullptr));
|
||||
dl_1_overlay->setText(QCoreApplication::translate("Widget", "\346\231\272\346\243\200\347\273\223\346\236\234", nullptr));
|
||||
img_1_mirror->setText(QCoreApplication::translate("Widget", "\345\233\276\347\211\207\351\225\234\345\203\217", nullptr));
|
||||
camera_1_img->setText(QString());
|
||||
label_4->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2720", nullptr));
|
||||
label_4->setText(QCoreApplication::translate("Widget", "\345\207\272\351\243\216\345\217\243\344\276\247-\347\233\270\346\234\2720", nullptr));
|
||||
dl_enable_0->setText(QCoreApplication::translate("Widget", "\345\261\217\350\224\275\346\267\261\345\272\246\345\255\246\344\271\240", nullptr));
|
||||
tra_enable_0->setText(QCoreApplication::translate("Widget", "\345\261\217\350\224\275\350\211\263\344\270\275\346\243\200\346\265\213", nullptr));
|
||||
mtx_0_overlay->setText(QCoreApplication::translate("Widget", "\350\211\262\346\243\200\347\273\223\346\236\234", nullptr));
|
||||
|
||||
110
widget.cpp
110
widget.cpp
@ -28,13 +28,13 @@ using namespace std;
|
||||
|
||||
|
||||
// 硬编码参数值
|
||||
int file_delay = 1180; // 延迟时间(毫秒)
|
||||
int file_delay = 1100; // 延迟时间(毫秒)
|
||||
int file_encoder = 12000; // 行频
|
||||
int file_valve = 200; // 喷阀触发频率
|
||||
|
||||
//下位机参数
|
||||
int lowmac_dp = 350; //偏振延迟时间
|
||||
int lowmac_sm = 1200; //吹气量 valve/12 = 吹气时间ms
|
||||
int lowmac_sm = 1800; //吹气量 valve/12 = 吹气时间ms
|
||||
int lowmac_ts = 10; //模板匹配阈值
|
||||
int lowmac_sg = 65; //偏振绿色通道大小阈值
|
||||
int lowmac_td = 7; //偏振红色通道差值
|
||||
@ -46,7 +46,7 @@ Widget::Widget(QWidget *parent)
|
||||
this->isCamRunning = false;
|
||||
ui->setupUi(this);
|
||||
|
||||
// 确认 tabWidget 是 QTabWidget 类型
|
||||
// 确认 tabWidget 是 QTabWidget 类型并隐藏tab
|
||||
QTabWidget* tab = qobject_cast<QTabWidget*>(ui->tabWidget);
|
||||
if (tab) {
|
||||
QTabBar* tabBar = tab->tabBar();
|
||||
@ -58,7 +58,6 @@ Widget::Widget(QWidget *parent)
|
||||
} else {
|
||||
qWarning() << "ui->tabWidget 不是 QTabWidget 类型!";
|
||||
}
|
||||
|
||||
ui->camera_0_img->setScaledContents(false);
|
||||
ui->camera_1_img->setScaledContents(false);
|
||||
|
||||
@ -67,9 +66,14 @@ Widget::Widget(QWidget *parent)
|
||||
loadConfig(getConfigDirectory()+"/color_range_config.txt"); // 读取配置文件
|
||||
iniLowMac();
|
||||
iniCamera();
|
||||
update_machine_num();
|
||||
update_colorlist(); // 更新色彩列表
|
||||
update_polar(); // 更新偏振相机界面
|
||||
|
||||
|
||||
// 更新界面
|
||||
update_main_settings(); // 更新主要设定
|
||||
update_colorlist(); // 更新色彩列表
|
||||
update_polar(); // 更新偏振相机界面
|
||||
|
||||
|
||||
// 初始化存储工作者和线程
|
||||
storageWorker = new StorageWorker();
|
||||
storageWorker->moveToThread(&storageThread);
|
||||
@ -122,6 +126,30 @@ void Widget::onCountdownFinished()
|
||||
|
||||
Widget::~Widget()
|
||||
{
|
||||
// 停止检测工作者线程
|
||||
for(int i = 0; i < 2; ++i)
|
||||
{
|
||||
g_recognitionRunning[i]->store(false);
|
||||
g_img_Queue[i]->stop(); // 停止队列以唤醒线程
|
||||
}
|
||||
|
||||
// 等待检测工作者线程结束
|
||||
for(int i = 0; i < 2; ++i)
|
||||
{
|
||||
if(g_recognitionThread[i] && g_recognitionThread[i]->joinable())
|
||||
{
|
||||
g_recognitionThread[i]->join();
|
||||
delete g_recognitionThread[i];
|
||||
g_recognitionThread[i] = nullptr;
|
||||
}
|
||||
|
||||
if(g_recognitionRunning[i])
|
||||
{
|
||||
delete g_recognitionRunning[i];
|
||||
g_recognitionRunning[i] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// 停止存储线程
|
||||
g_storageQueue.stop();
|
||||
storageThread.quit();
|
||||
@ -352,7 +380,7 @@ void Widget::refreshSingleImage(int camera_id, bool overlay_traditional_result,
|
||||
return;
|
||||
}
|
||||
|
||||
// 高质量缩放图像
|
||||
// 缩放图像
|
||||
QSize labelSize = cameraLabels[camera_id]->size();
|
||||
QPixmap scaledPixmap = pixmap.scaled(labelSize);
|
||||
|
||||
@ -362,13 +390,9 @@ void Widget::refreshSingleImage(int camera_id, bool overlay_traditional_result,
|
||||
|
||||
|
||||
|
||||
void Widget::on_pushButton_2_clicked()
|
||||
{
|
||||
SaveImg_Flag = 1;
|
||||
}
|
||||
|
||||
void Widget::on_btn_stop_clicked()
|
||||
{
|
||||
stop_grab();
|
||||
DestoryLowMac();
|
||||
|
||||
this->isCamRunning = false;
|
||||
@ -416,7 +440,7 @@ void Widget::on_btn_start_clicked()
|
||||
std::cerr << "SET thread " << i << " failed, error code:" << GetLastError() << std::endl;
|
||||
}
|
||||
}
|
||||
Start_camera();
|
||||
start_camera();
|
||||
}
|
||||
|
||||
|
||||
@ -434,33 +458,6 @@ void Widget::on_btn_take_photos_released()
|
||||
|
||||
void Widget::on_btn_quit_clicked()
|
||||
{
|
||||
// // 停止检测工作者线程
|
||||
// for(int i = 0; i < 2; ++i)
|
||||
// {
|
||||
// g_recognitionRunning[i]->store(false);
|
||||
// g_img_Queue[i]->stop(); // 停止队列以唤醒线程
|
||||
// }
|
||||
|
||||
// // 等待检测工作者线程结束
|
||||
// for(int i = 0; i < 2; ++i)
|
||||
// {
|
||||
// if(g_recognitionThread[i] && g_recognitionThread[i]->joinable())
|
||||
// {
|
||||
// g_recognitionThread[i]->join();
|
||||
// delete g_recognitionThread[i];
|
||||
// g_recognitionThread[i] = nullptr;
|
||||
// }
|
||||
|
||||
// if(g_recognitionRunning[i])
|
||||
// {
|
||||
// delete g_recognitionRunning[i];
|
||||
// g_recognitionRunning[i] = nullptr;
|
||||
// }
|
||||
// }
|
||||
|
||||
DestoryCamera();
|
||||
DestoryLowMac();
|
||||
|
||||
qApp->quit();
|
||||
}
|
||||
|
||||
@ -480,11 +477,12 @@ void Widget::on_btn_set_lower_clicked()
|
||||
file_valve = ui->spinbox_valve->text().toInt(); // 阀门通道
|
||||
}
|
||||
|
||||
void Widget::update_machine_num()
|
||||
void Widget::update_main_settings()
|
||||
{
|
||||
ui->lab_machine_num->setText(QString("%1号机").arg(params["machine_num"]));
|
||||
ui->spinbox_machine_code->setValue(params["machine_num"]);
|
||||
ui->spinbox_maintime->setValue(params["lowmac_sm"]);
|
||||
ui->spinbox_max_valves_together->setValue(params["max_valves_together"]);
|
||||
}
|
||||
|
||||
void Widget::on_btn_set_valve_clicked()
|
||||
@ -675,13 +673,13 @@ void Widget::initDefaultConfig()
|
||||
{"blue_b_min", -48}, {"blue_b_max", -8},
|
||||
|
||||
// Orange
|
||||
{"orange_L_min", 63}, {"orange_L_max", 78},
|
||||
{"orange_a_min", 7}, {"orange_a_max", 14},
|
||||
{"orange_b_min", 23}, {"orange_b_max", 47},
|
||||
{"orange_L_min", 67}, {"orange_L_max", 93},
|
||||
{"orange_a_min", -8}, {"orange_a_max", 8},
|
||||
{"orange_b_min", 36}, {"orange_b_max", 58},
|
||||
|
||||
// Black
|
||||
{"black_L_min", 0}, {"black_L_max", 8},
|
||||
{"black_a_min", -4}, {"black_a_max", 2},
|
||||
{"black_L_min", 0}, {"black_L_max", 30},
|
||||
{"black_a_min", -5}, {"black_a_max", 3},
|
||||
{"black_b_min", -3}, {"black_b_max", 4},
|
||||
|
||||
// Red
|
||||
@ -690,8 +688,8 @@ void Widget::initDefaultConfig()
|
||||
{"red_b_min", -80}, {"red_b_max", 37},
|
||||
|
||||
// Purple
|
||||
{"purple_L_min", 38}, {"purple_L_max", 54},
|
||||
{"purple_a_min", 10}, {"purple_a_max", 20},
|
||||
{"purple_L_min", 38}, {"purple_L_max", 60},
|
||||
{"purple_a_min", 10}, {"purple_a_max", 25},
|
||||
{"purple_b_min", -45}, {"purple_b_max", 1},
|
||||
|
||||
// Yellow
|
||||
@ -888,8 +886,6 @@ void Widget::on_btn_del_color_clicked()
|
||||
|
||||
void Widget::on_btn_reset_color_clicked()
|
||||
{
|
||||
// 新增全部还原槽
|
||||
|
||||
// 确认重置
|
||||
QMessageBox::StandardButton reply;
|
||||
reply = QMessageBox::question(this, "全部还原", "确定要将配置还原为默认设置吗?",
|
||||
@ -1015,10 +1011,10 @@ void Widget::on_btn_reset_polar_clicked()
|
||||
if (reply != QMessageBox::Yes)
|
||||
return;
|
||||
|
||||
params["lowmac_td"]= 7;
|
||||
params["lowmac_sg"]= 65;
|
||||
params["lowmac_td"]= 2;
|
||||
params["lowmac_sg"]= 60;
|
||||
params["lowmac_dp"]= 350;
|
||||
params["lowmac_ts"]= 10;
|
||||
params["lowmac_ts"]= 13;
|
||||
lowmac_dp = params["lowmac_dp"]; //偏振延迟时间
|
||||
lowmac_ts = params["lowmac_ts"]; //模板匹配阈值
|
||||
lowmac_sg = params["lowmac_sg"]; //偏振绿色通道大小阈值
|
||||
@ -1038,8 +1034,8 @@ void Widget::update_polar()
|
||||
|
||||
void Widget::on_tabWidget_currentChanged(int index)
|
||||
{
|
||||
update_machine_num();
|
||||
update_colorlist(); // 更新色彩列表
|
||||
update_polar(); // 更新偏振相机界面
|
||||
update_main_settings();
|
||||
update_colorlist(); // 更新色彩列表
|
||||
update_polar(); // 更新偏振相机界面
|
||||
}
|
||||
|
||||
|
||||
11
widget.h
11
widget.h
@ -35,8 +35,6 @@ private slots:
|
||||
|
||||
void refreshSingleImage(int camera_id, bool overlay_traditional_result = false, bool overlay_dl_result = false, bool mirror = false);
|
||||
|
||||
void on_pushButton_2_clicked();
|
||||
|
||||
void on_btn_stop_clicked();
|
||||
|
||||
void on_btn_start_clicked();
|
||||
@ -102,8 +100,8 @@ private slots:
|
||||
void on_btn_reset_polar_clicked();
|
||||
|
||||
void update_polar();
|
||||
void update_machine_num();
|
||||
|
||||
void update_main_settings();
|
||||
|
||||
void on_tabWidget_currentChanged(int index);
|
||||
|
||||
@ -112,10 +110,11 @@ private:
|
||||
|
||||
bool isCamRunning;
|
||||
|
||||
QDateTime startTime; // 记录点“开始分选”的时间,用于计算总运行时长
|
||||
QDateTime startTime; // 记录点“开始分选”的时间,用于计算总运行时长
|
||||
|
||||
QThread storageThread; // 存储线程
|
||||
StorageWorker* storageWorker; // 存储工作者
|
||||
QThread storageThread; // 存储线程
|
||||
|
||||
StorageWorker* storageWorker; // 存储工作者
|
||||
|
||||
void showStartupCountdown();
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<string notr="true">background-color: rgb(228, 223, 186);</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="tabBarAutoHide">
|
||||
<bool>true</bool>
|
||||
@ -416,7 +416,7 @@ QPushButton#btn_quit:disabled {
|
||||
<string notr="true">font: 18pt "Microsoft YaHei UI";</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>相机1</string>
|
||||
<string>气罐侧-相机1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -535,7 +535,7 @@ border: 4px solid black;
|
||||
<string notr="true">font: 18pt "Microsoft YaHei UI";</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>相机0</string>
|
||||
<string>出风口侧-相机0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user