Qt5.9.9+Halcon19.5显示图片

在Qt新建Demo_HalconAshing_Qt  Mainwidow项目。

以下列出代码:

.pro文件:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Demo_HalconAshing_Qt
TEMPLATE = app

macx {
  QMAKE_CXXFLAGS += -F/Library/Frameworks
  QMAKE_LFLAGS   += -F/Library/Frameworks
  LIBS           += -framework HALCONCpp
}
else {
  #defines
  win32:DEFINES += WIN32

  #includes
  INCLUDEPATH   += "$$(HALCONROOT)/include"
  INCLUDEPATH   += "$$(HALCONROOT)/include/halconcpp"

  #libs
  QMAKE_LIBDIR  += "$$(HALCONROOT)/lib/$$(HALCONARCH)"
  unix:LIBS     += -lhalconcpp -lhalcon -lXext -lX11 -ldl -lpthread
  win32:LIBS    += "$$(HALCONROOT)/lib/$$(HALCONARCH)/halconcpp.lib" \
                   "$$(HALCONROOT)/lib/$$(HALCONARCH)/halcon.lib"
}

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

mainwindow.h文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

Mainwindow.cpp文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "Halcon/Include/halconcpp/HalconCpp.h"
#include <QDebug>
#include <QFileDialog>
#include <QMessageBox>

using namespace HalconCpp;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QString filename;
    filename=QFileDialog::getOpenFileName(this, tr("Choose image"), "", tr("Images (*.png *.bmp *.jpg *.tif *.GIF )"));
    if(filename.isEmpty()) {
        return;
    } else {
        QImage* img=new QImage;
        if(! ( img->load(filename) ) ) { //load image
            QMessageBox::information(this, tr("Open image fail"), tr("Open image fail!"));
            delete img;
            return;
        }
        ui->label->setPixmap(QPixmap::fromImage(*img));
    }
    ui->label->setScaledContents(true);

    HObject mainImage;
    HTuple m_hWindowID;
    ReadImage(&mainImage, filename.toStdString().c_str());
    HTuple mainWndID;
    mainWndID = (Hlong)ui->label_2->winId();
    QString s_hWindowID = QString::fromStdString(m_hWindowID.ToString().Text());
    if (s_hWindowID == "[]")
    {
        OpenWindow(0, 0, ui->label_2->width(), ui->label_2->height(), mainWndID, "visible", "", &m_hWindowID);
    }
    HDevWindowStack::Push(m_hWindowID);
    HTuple srcImageHeight, srcImageWidth;
    GetImageSize(mainImage, &srcImageWidth, &srcImageHeight);
    Rgb1ToGray(mainImage, &mainImage);
    SetPart(m_hWindowID, 0, 0, srcImageHeight.I(), srcImageWidth.I());
    DispObj(mainImage, m_hWindowID);
}

MainWindow::~MainWindow()
{
    delete ui;
}

窗口控件:

主要使用两个label,一个控件名称为label1,用于直接显示图片,另一个为Label2,用于使用halcon方法显示图片。

显示效果如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一款跨平台的应用程序开发框架,它提供了丰富的功能和工具,用于开发图形化用户界面和应用程序功能。Qt具有良好的可移植性,可以在多个操作系统上运行,并且具有完善的文档和社区支持。 海康SDK是指海康威视公司提供的软件开发工具包。海康SDK包含了海康威视公司的摄像头、监控设备等产品的相关API,可以帮助开发者快速集成和使用这些产品。海康SDK提供了丰富的功能和接口,包括视频流播放、图像处理、事件处理等,可以满足不同应用场景的需求。 Halcon是一款功能强大的机器视觉库,由德国MVTec公司开发。Halcon提供了丰富的图像处理和分析功能,包括图像采集、图像预处理、图像匹配等。Halcon支持多种编程语言和操作系统,并且具有优秀的性能和可靠性。Halcon在机器视觉领域被广泛应用于工业自动化、质量检测、医疗影像等领域。 Qt、海康SDK和Halcon可以结合起来使用,实现更加强大的功能和应用。Qt提供了友好的界面和交互方式,可以方便地集成和调用海康SDK和Halcon的功能。例如,可以使用Qt开发监控系统的图形界面,通过调用海康SDK获取监控视频流,并使用Halcon对图像进行处理和分析。这样的组合可以为用户提供更加灵活和便捷的使用体验,满足各种应用需求。 综上所述,Qt、海康SDK和Halcon是三个不同的软件开发工具,它们各自具有特定的功能和用途。通过结合使用,可以实现更加强大和丰富的应用程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值