Files
handleaiuinew/HanddleAI/HandleAiUi-new/FrontendBackendBridge.cpp
T
2024-05-22 16:47:14 +08:00

133 lines
4.2 KiB
C++

#include <FrontendBackendBridge.h>
fbBridge bridge;
//INIT
backEnd::backEnd(QObject* parent)
{
Init();
}
void backEnd::Init()
{
//
for (auto data : json.LightSources.LightSourceList)
{
//QSerialPort* serialPort = new QSerialPort;//光源串口
////serialPort->clear();
//serialPort->close();
//serialPort->setPortName(data.comPort);
//serialPort->open(QIODevice::ReadWrite);
//serialPort->setBaudRate(data.baudRate);
//serialPort->setDataBits(QSerialPort::Data8);
//serialPort->setParity(QSerialPort::NoParity);
//serialPort->setStopBits(QSerialPort::OneStop);
//serialPort->setFlowControl(QSerialPort::NoFlowControl);
//serialPort->write(data.initStr.toUtf8());
//serialPort->waitForBytesWritten();
//if (serialPort->isOpen() != true)
// qDebug() << data.comPort << "open failure!!";
//QSerialPorts.append(serialPort);
//QSerialPortsName.append(data.name);
}
}
//WIDGET
void frontEnd::showImg(QString name, cv::Mat mtx, int showindex)
{
try
{
if (!mtx.empty())
{
cv::Mat rgb;
QImage* itemImage = nullptr;
if (mtx.type() == CV_8UC1)
{
mtx.copyTo(rgb);
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) // 双通道转单通道显示
{
cv::normalize(mtx, mtx, 0, 255, cv::NORM_MINMAX);
cv::convertScaleAbs(mtx, rgb);
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_8UC3)
{
cv::cvtColor(mtx, rgb, cv::COLOR_BGR2RGB);
itemImage = new QImage(QSize(rgb.cols, rgb.rows), QImage::Format_RGB888);
QImage qim((const unsigned char*)rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_RGB888);
*itemImage = qim.copy();
}
else if (mtx.type() == CV_8UC4)
{
cv::cvtColor(mtx, rgb, cv::COLOR_BGRA2RGBA);
itemImage = new QImage(QSize(rgb.cols, rgb.rows), QImage::Format_ARGB32);
QImage qim((const unsigned char*)rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_ARGB32);
*itemImage = qim.copy();
}
emit showImgSingal(name, itemImage, showindex);
}
}
catch (QString ev)
{
qCritical() << "[Error] " << " ev:" << ev;
//return false;
}
//return true;
}
//FINS
//bool backEnd::sendFinsMsg(QString cmdx)
//{
// if (!finstcp_ptr->reciveData(vec_mat, cmdx.toUtf8()))
// {
// qCritical() << "[TCP Error] " << QString::fromUtf8("Fins数据发送失败!") << cmdx;
// return false;
// }
// return true;
//}
//bool backEnd::sendFinsMsg(const char* cmdx)
//{
// QString str = cmdx;
// if (!finstcp_ptr->reciveData(vec_mat, str.toUtf8()))
// {
// qCritical() << "[TCP Error] " << QString::fromUtf8("Fins数据发送失败!") << cmdx;
// return false;
// }
// return true;
//}
//bool backEnd::sendFinsMsg(QByteArray write_byte)
//{
// if (!finstcp_ptr->reciveData(vec_mat, write_byte))
// {
// qCritical() << "[TCP Error] " << QString::fromUtf8("Fins数据发送失败!") << write_byte;
// return false;
// }
// return true;
//}
//bool backEnd::reciveFinsMsg(QByteArray &readByte)
//{
// if (!finstcp_ptr->sendData(vec_mat, readByte))
// {
// qCritical() << "[TCP] " << " finstcp_ptr sendData error!";
// return false;
// }
// return true;
//}
////
//QSerialPort* backEnd::getSerialPort(QString Name)
//{
// for (int i = 0; i < QSerialPortsName.size();i++)
// {
// if (QSerialPortsName[i] == Name)
// {
// return QSerialPorts[i];
// }
//
// }
// return NULL;
//}