升级到c++11,在存图文件夹不存在时自动创建,修复大量以byte为变量名的问题
This commit is contained in:
+20
-20
@@ -164,8 +164,8 @@ Logic_transfer::Logic_transfer()
|
||||
{
|
||||
showMutex = new QMutex;
|
||||
ifRuntransfer = true;
|
||||
//通用逻辑接口
|
||||
//加载逻辑dll
|
||||
//ͨ�����ӿ�
|
||||
//������dll
|
||||
QLibrary* m_lib = new QLibrary("Hd_LogicDll_module.dll");
|
||||
bool flag = m_lib->load();
|
||||
if (!m_lib->isLoaded())
|
||||
@@ -185,20 +185,20 @@ Logic_transfer::Logic_transfer()
|
||||
Logic_ptr = createFun();
|
||||
destory_Logic = releaseFun;
|
||||
|
||||
//加载并检查配置文件:bin/camera_cfg.json
|
||||
//���ز���������ļ���bin/camera_cfg.json
|
||||
//m_jsonObj =load_camera_cfg();
|
||||
//check_cmeraCfg();
|
||||
//Logic_ptr->setJsonObject(m_jsonObj);
|
||||
//信号与槽
|
||||
//����
|
||||
if(Logic_ptr) {
|
||||
//connect(Logic_ptr, SIGNAL(Logic_sendImage(QString, cv::Mat)), this, SLOT(base_Logic_sendImage(QString, cv::Mat))); // 传递图片
|
||||
connect(Logic_ptr, SIGNAL(Logic_writeData(QString, QString, QString, QByteArray, QString)), this, SLOT(base_Logic_writeData(QString, QString, QString, QByteArray, QString)));// 传递数据
|
||||
//connect(Logic_ptr, SIGNAL(Logic_sendImage(QString, cv::Mat)), this, SLOT(base_Logic_sendImage(QString, cv::Mat))); // ����ͼƬ
|
||||
connect(Logic_ptr, SIGNAL(Logic_writeData(QString, QString, QString, QByteArray, QString)), this, SLOT(base_Logic_writeData(QString, QString, QString, QByteArray, QString)));// ��������
|
||||
QFuture<void>muf = QtConcurrent::run(this, &Logic_transfer::check_sendImgStruct);
|
||||
}
|
||||
}
|
||||
}
|
||||
Sleep(50);
|
||||
//自动写Log日志功能;bin/Log
|
||||
//�Զ�дLog��־���ܣ�bin/Log
|
||||
qInstallMessageHandler(LogMsgOutput);
|
||||
}
|
||||
|
||||
@@ -210,12 +210,12 @@ void Logic_transfer::check_sendImgStruct()
|
||||
//if (Logic_ptr->queue_sendImgStruct.size() > 0)
|
||||
if (Logic_ptr->get_sendImgStruct(myS))
|
||||
{
|
||||
//QMutexLocker locker(sendImgStructMutex); // 加锁
|
||||
//QMutexLocker locker(sendImgStructMutex); // ����
|
||||
//sendImgStruct mS;
|
||||
//mS.send_Mat = myL.send_Mat;
|
||||
//mS.cameraKey_index = myL.cameraKey_index;
|
||||
|
||||
////堆积了,只显示最新的
|
||||
////�ѻ��ˣ�ֻ��ʾ���µ�
|
||||
//for (int i = 0; i < queue_sendImgStruct.size(); i++)
|
||||
// if (myL.cameraKey_index == queue_sendImgStruct[i].cameraKey_index)
|
||||
// {
|
||||
@@ -235,7 +235,7 @@ void Logic_transfer::check_sendImgStruct()
|
||||
}
|
||||
bool Logic_transfer::getShowQImage(QQueue< showImgStruct>& my_showImgStruct)
|
||||
{
|
||||
QMutexLocker locker(showMutex); // 加锁
|
||||
QMutexLocker locker(showMutex); // ����
|
||||
//showImgStruct mS;
|
||||
if (queue_showImgStruct.size() > 0)
|
||||
{
|
||||
@@ -251,24 +251,24 @@ void Logic_transfer::base_Logic_sendImage(QString key, cv::Mat mtx)
|
||||
try
|
||||
{
|
||||
if (!mtx.empty()) {
|
||||
if ((mtx.dataend - mtx.datastart) != mtx.cols * mtx.rows * mtx.channels()) //尝试能否解决mtx内容异常问题
|
||||
if ((mtx.dataend - mtx.datastart) != mtx.cols * mtx.rows * mtx.channels()) //�����ܷ���mtx�����쳣����
|
||||
{
|
||||
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err!!:";
|
||||
qCritical() << __FUNCTION__ << " line:" << __LINE__ << " mtx.dataend - mtx.datastart err����:";
|
||||
return;// false;
|
||||
}
|
||||
|
||||
cv::Mat rgb;
|
||||
//while (mtx.cols > 2000 || mtx.rows > 2000)
|
||||
// cv::resize(mtx, mtx, cv::Size(), 0.1, 0.1); //吃cpu性能,i7 8700,4800*4800的resize耗时100ms;QImage*的scaled缩放,耗时200ms
|
||||
// cv::resize(mtx, mtx, cv::Size(), 0.1, 0.1); //��cpu���ܣ�i7 8700��4800*4800��resize��ʱ100ms��QImage*��scaled���ţ���ʱ200ms
|
||||
QImage* itemImage = nullptr;
|
||||
if (mtx.type() == CV_8UC1)
|
||||
{
|
||||
rgb = mtx.clone(); //mtx.data检查后,只有2个数据,clone崩溃
|
||||
rgb = mtx.clone(); //mtx.data����ֻ��2�����ݣ�clone����
|
||||
itemImage = new QImage(QSize(rgb.cols, rgb.rows), QImage::Format_Grayscale8);
|
||||
QImage qim((const unsigned char*)rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_Grayscale8);
|
||||
*itemImage = qim.copy();
|
||||
}
|
||||
else if (mtx.type() == CV_16U) // 双通道转单通道显示
|
||||
else if (mtx.type() == CV_16U) // ˫ͨ��ת��ͨ����ʾ
|
||||
{
|
||||
cv::normalize(mtx, mtx, 0, 255, cv::NORM_MINMAX);
|
||||
cv::convertScaleAbs(mtx, rgb);
|
||||
@@ -292,12 +292,12 @@ void Logic_transfer::base_Logic_sendImage(QString key, cv::Mat mtx)
|
||||
}
|
||||
//emit LogicTransfer_sendImage(key, itemImage);
|
||||
|
||||
QMutexLocker locker(showMutex); // 加锁
|
||||
QMutexLocker locker(showMutex); // ����
|
||||
showImgStruct mS;
|
||||
mS.show_QImage = itemImage;
|
||||
mS.cameraKey_index = key;
|
||||
|
||||
////堆积了,只显示最新的
|
||||
////�ѻ��ˣ�ֻ��ʾ���µ�
|
||||
//for (int i = 0; i < queue_showImgStruct.size(); i++)
|
||||
// if (key == queue_showImgStruct[i].cameraKey_index)
|
||||
// {
|
||||
@@ -321,7 +321,7 @@ Logic_transfer::~Logic_transfer()
|
||||
ifRuntransfer = false;
|
||||
Sleep(100);
|
||||
|
||||
//通用逻辑接口
|
||||
//ͨ�����ӿ�
|
||||
destory_Logic(Logic_ptr);
|
||||
}
|
||||
|
||||
@@ -330,9 +330,9 @@ void Logic_transfer::base_Logic_sendTcpStatus(bool flag)
|
||||
{
|
||||
emit LogicTransfer_sendTcpStatus(flag);
|
||||
}
|
||||
void Logic_transfer::base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byte, QString sendNgInfo)
|
||||
void Logic_transfer::base_Logic_writeData(QString key, QString cameraName, QString snInfo, QByteArray byteArray, QString sendNgInfo)
|
||||
{
|
||||
emit LogicTransfer_writeData(key, cameraName, snInfo, byte, sendNgInfo);
|
||||
emit LogicTransfer_writeData(key, cameraName, snInfo, byteArray, sendNgInfo);
|
||||
}
|
||||
void Logic_transfer::base_Logic_cameraDisconnect(QString msg, bool status)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user