#include "IrisCameraCapEventHandler.h" #include <QDebug> IrisCameraCapEventHandler::IrisCameraCapEventHandler(QObject *parent) : QObject(parent) { } void IrisCameraCapEventHandler::DoOnImageCaptured(CImageDataPointer &objImageDataPointer, void *pUserParam) { if (objImageDataPointer.IsNull() == false) { CGXDevicePointer* cam = (CGXDevicePointer *) pUserParam; auto camName = cam->getPtr()->GetDeviceInfo().GetUserID(); int width = objImageDataPointer->GetWidth(); int height = objImageDataPointer->GetHeight(); uchar * pBuffer = (BYTE*)objImageDataPointer->GetBuffer(); if (pBuffer != NULL) { // 相机拍摄下的图像1440*1080, 直接用于算法判断 QImage img = QImage(pBuffer, width, height, QImage::Format_Grayscale8); // 用于展示 QImage imgDisp; // 图像逆时针旋转90度 img = img.transformed(QTransform().rotate(90)); // 用于显示的图像需要缩小到480 * 640的尺寸 imgDisp = img.scaled(SettingConfig::getInstance().IRIS_DISPLAY_WIDTH, SettingConfig::getInstance().IRIS_DISPLAY_HEIGHT); // 发送到界面进行显示 emit sendIrisFrameToDraw(imgDisp); // 创建虹膜信息对象 CasicIrisInfo irisInfo; irisInfo.hasEye = false; // 存入图像栈 cv::Mat irisMat = ImageUtil::QImageToMat(img); irisInfo.matData = irisMat; ProMemory::getInstance().pushCasicIris(irisInfo); /* 相机控制只拍图 不找眼 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); irisInfo = casic::iris::CasicIrisInterface::getInstance().findEye(irisInfo); */ } } }