通常需要进行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());
