通常需要进行halcon联合QT进行编程,将相机采集到的图片和处理完之后的图片进行显示,那么怎样正确显示呢
1、使用QT中的进行显示
优点,显示的速度比较快,可以更新的很快;缺点:和halcon进行联合时,没法进行halcon的画图显示,不能将halcon处理的结果
QImage imageScale = img.scaled(QSize(ui->label_Pix2->width(), ui->label_Pix1->height()));
QPixmap pixmap = QPixmap::fromImage(imageScale);
ui->label_Pix2->setPixmap(pixmap);
2、将halcon中显示句柄拿出来,然后绑定控件,使用HObject进行显示图片
优点:可以进行显示halcon处理界面上的文字和区域显示,比较方便
缺点:速度优点慢,我不知道是不是偶然情况
bool isOK = img.isNull();
HTuple hv_WindowHandle;
//转换格式
Mat mImage = QImage2cvMat(img);
ho_ObjImg = Mat2HObject(mImage);
//开始处理图片
// Local iconic variables
if (HDevWindowStack::IsOpen())
CloseWindow(HDevWindowStack::Pop());
OpenWindow(0, 0, 1920 / 3, 1200 / 3, winID, "visible", "", &hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
HDevWindowStack::SetActive(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_ObjImg, HDevWindowStack::GetActive());