问题相关代码,请勿粘贴截图
.h
#ifndef REG_H
#define REG_H
# include "HalconCpp.h"
# include "HDevThread.h"
#include <qgridlayout.h>
#include <QHBoxLayout>
#include <qpushbutton.h>
#include <QtWidgets/QWidget>
#include <qlabel.h>
using namespace HalconCpp;
class reg : public QWidget
{
Q_OBJECT
public:
reg(QWidget *parent = Q_NULLPTR);
~reg();
HObject ho_Image, ho_GrayImage, ho_ImageChannel2;
HObject ho_Regions, ho_RegionOpening, ho_ConnectedRegions;
HTuple hv_Number, hv_WindowHandle;
private slots:
/*void start();
void sum();*/
private:
QLabel *label;
};
#endif // REG_H
main.cpp
#include "reg.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
reg w;
w.setWindowTitle(QString::fromLocal8Bit("测试程序"));
w.show();
return a.exec();
}
.cpp
#include "reg.h"
reg::reg(QWidget *parent)
: QWidget(parent)
{
/*QGridLayout *gridLayout = new QGridLayout(this);
gridLayout->setSpacing(100);
gridLayout->setSpacing(150);*/
QHBoxLayout *vLayout_1 = new QHBoxLayout;
QPushButton *btn_1 = new QPushButton(QStringLiteral("读图"));
QPushButton *btn_2 = new QPushButton(QStringLiteral("计数"));
label = new QLabel(QStringLiteral("计数"));
vLayout_1->addWidget(label);
vLayout_1->addWidget(btn_1);
vLayout_1->addWidget(btn_2);
connect(btn_1, &QPushButton::clicked, this, [=]()
{
if (HDevWindowStack::IsOpen())
CloseWindow(HDevWindowStack::Pop());
SetWindowAttr("background_color", "black");
OpenWindow(0, 0, 512, 512, 0, "visible", "", &hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
ReadImage(&ho_Image, "D:/shijue/2gepinggai.png");
Rgb1ToGray(ho_Image, &ho_GrayImage);
if (HDevWindowStack::IsOpen())
DispObj(ho_GrayImage, HDevWindowStack::GetActive());
AccessChannel(ho_Image, &ho_ImageChannel2, 2);
Threshold(ho_ImageChannel2, &ho_Regions, 154, 255);
if (HDevWindowStack::IsOpen())
DispObj(ho_Regions, HDevWindowStack::GetActive());
OpeningCircle(ho_Regions, &ho_RegionOpening, 9);
if (HDevWindowStack::IsOpen())
DispObj(ho_RegionOpening, HDevWindowStack::GetActive());
Connection(ho_RegionOpening, &ho_ConnectedRegions);
CountObj(ho_ConnectedRegions, &hv_Number);
if (HDevWindowStack::IsOpen())
DispObj(ho_ConnectedRegions, HDevWindowStack::GetActive());
});
connect(btn_2, &QPushButton::clicked, this, [=]()
{
Connection(ho_RegionOpening, &ho_ConnectedRegions);
CountObj(ho_ConnectedRegions, &hv_Number);
if (HDevWindowStack::IsOpen())
DispObj(ho_ConnectedRegions, HDevWindowStack::GetActive());
});
this->setLayout(vLayout_1);
}
reg::~reg()
{
}
运行结果及报错内容
vs的配置
我想要达到的结果
为什么我运行就会中断错误