更新赢合部分逻辑以及展图逻辑
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
#include "Hd_VirtualCamera.h"
|
||||
#include <QDebug>
|
||||
QQueue<vector<cv::Mat>> queuePic;
|
||||
QMutex* n_mutex = new QMutex();
|
||||
|
||||
|
||||
|
||||
Hd_VirtualCamera::Hd_VirtualCamera()
|
||||
{
|
||||
//m_thread = new MyThread;
|
||||
//m_mutex = new QMutex();
|
||||
}
|
||||
|
||||
Hd_VirtualCamera::~Hd_VirtualCamera()
|
||||
{
|
||||
|
||||
|
||||
if (n_mutex)
|
||||
{
|
||||
delete n_mutex;
|
||||
n_mutex = nullptr;
|
||||
}
|
||||
|
||||
qDebug() << "[info]" << __FUNCTION__ << "line:" << __LINE__ << " delete success!";
|
||||
}
|
||||
|
||||
bool Hd_VirtualCamera::readData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
|
||||
|
||||
int cnt = 0;
|
||||
while (queuePic.empty())
|
||||
{
|
||||
cnt++;
|
||||
QThread::msleep(10);
|
||||
if (cnt > 3000)
|
||||
{
|
||||
qCritical() << " [ error] " << __FUNCTION__ << " line:" << __LINE__ << " srcImage is null";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
n_mutex->lock();
|
||||
vector<cv::Mat> dstMat = queuePic.dequeue();
|
||||
n_mutex->unlock();
|
||||
//for (int i=0;i<dstMat.size();i++)
|
||||
// imwrite("D://CCD//2.5//2.5D_" + to_string(clock()) + "_"+ sImageType [i] + ".bmp", dstMat[i]);
|
||||
mat.assign(dstMat.begin(), dstMat.end());
|
||||
qCritical() << " [ error] " << __FUNCTION__ << " line:" << __LINE__ << "get image";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Hd_VirtualCamera::writeData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
{
|
||||
Q_UNUSED(mat)
|
||||
|
||||
cameraName = data.toStdString();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Hd_VirtualCamera::initParas(QByteArray&n)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Hd_VirtualCamera::run()//�����
|
||||
{
|
||||
QThread::msleep(1000);
|
||||
n_mutex->lock();
|
||||
if (cameraName == "25D-1" || cameraName == "25D-2") {
|
||||
vector<cv::Mat> mats;
|
||||
mats.push_back(cv::imread("I:\\952Code\\CODES\\16H\\A2250709-162941554918413\\A2250709-1629415549184132.5D-H-2_16-31-32-65_Count0.bmp", -1));
|
||||
mats.push_back(cv::imread("I:\\952Code\\CODES\\16H\\A2250709-162941554918413\\A2250709-1629415549184132.5D-H-2_16-31-32-65_Count1.bmp", -1));
|
||||
mats.push_back(cv::imread("I:\\952Code\\CODES\\16H\\A2250709-162941554918413\\A2250709-1629415549184132.5D-H-2_16-31-32-65_Count2.bmp", -1));
|
||||
queuePic.enqueue(mats);
|
||||
}
|
||||
else {
|
||||
vector<cv::Mat> mats;
|
||||
mats.push_back(cv::Mat(15000,15000,CV_8UC3,cv::Scalar(0,0,255)));
|
||||
queuePic.enqueue(mats);
|
||||
}
|
||||
n_mutex->unlock();
|
||||
return true;
|
||||
}
|
||||
|
||||
Hd_VirtualCamera* create(){
|
||||
qDebug() << "[info]" << __FUNCTION__ << "line:" << __LINE__ << "Hd_VirtualCamera create success!";
|
||||
return new Hd_VirtualCamera;
|
||||
}
|
||||
void destory(Hd_VirtualCamera* ptr){
|
||||
if (ptr)
|
||||
{
|
||||
delete ptr;
|
||||
ptr = nullptr;
|
||||
}
|
||||
qDebug() << "[info] " << __FUNCTION__ << " line:" << __LINE__ << "Hd_MvCamera_module destory success!";
|
||||
}
|
||||
Reference in New Issue
Block a user