96 lines
3.2 KiB
C++
96 lines
3.2 KiB
C++
#pragma once
|
|
|
|
#include "NodeData.hpp"
|
|
#include "FlowScene.hpp"
|
|
#include "FlowView.hpp"
|
|
#include <QString>
|
|
#include <QStringLiteral>
|
|
#include <QtWidgets/QApplication>
|
|
#include <QIcon>
|
|
#include <QImage>
|
|
|
|
#include "ImageShowModel.hpp"
|
|
#include "ImageLoaderModel.hpp"
|
|
#include "DrawShapeView.hpp"
|
|
#include "halcon/HalconNodes.hpp"
|
|
#include "calculator/MathNodes.hpp"
|
|
|
|
//#include "opcv/CvImageLoaderModel.h"
|
|
//#include "opcv/CvImageShowModel.h"
|
|
#include "opcv/MoudleOpencvNodes.h"
|
|
|
|
using QtNodes::DataModelRegistry;
|
|
using QtNodes::FlowScene;
|
|
using QtNodes::FlowView;
|
|
|
|
|
|
class VisionFlowWidget :public QWidget
|
|
{
|
|
public:
|
|
VisionFlowWidget(QWidget* parent = Q_NULLPTR);
|
|
virtual ~VisionFlowWidget();
|
|
private:
|
|
QVBoxLayout* main_layout;
|
|
QHBoxLayout* header_layout;
|
|
QPushButton* btn_load_scheme;
|
|
QPushButton* btn_save_scheme;
|
|
QPushButton* btn_clear_scene;
|
|
QPushButton* btn_test;
|
|
FlowScene* m_scene;
|
|
FlowView* m_view;
|
|
//DrawShapeView* m_draw_shape_view;
|
|
private:
|
|
void setConnection();
|
|
};
|
|
|
|
static std::shared_ptr<DataModelRegistry> registerDataModels()
|
|
{
|
|
QString numberNodeType = QStringLiteral("数学操作");
|
|
QString halconImageNodeType = QStringLiteral("Halcon图像操作");
|
|
QString getHalconImageNodeType = QStringLiteral("获取Halcon图像");
|
|
QString dlNodeType = QStringLiteral("深度学习");
|
|
QString matchNodeType = QStringLiteral("模板匹配");
|
|
|
|
QString getOpencvImageNodeType = QStringLiteral("00.获取OpenCV图像");
|
|
QString opencvImageNodeType = QStringLiteral("01.OpenCV图像操作");
|
|
|
|
auto ret = std::make_shared<DataModelRegistry>();
|
|
|
|
//opencv图像获取
|
|
ret->registerModel<CvImageLoaderModel>(getOpencvImageNodeType);
|
|
|
|
//opencv图像操作
|
|
ret->registerModel<CvImageShowModel>(opencvImageNodeType);
|
|
ret->registerModel<CvGraphicsShowModel>(opencvImageNodeType);
|
|
ret->registerModel<CvImageRGB2GrayModel>(opencvImageNodeType);
|
|
|
|
//数学节点
|
|
ret->registerModel<AdditionModel>(numberNodeType);
|
|
ret->registerModel<DivisionModel>(numberNodeType);
|
|
ret->registerModel<MultiplicationModel>(numberNodeType);
|
|
ret->registerModel<SubtractionModel>(numberNodeType);
|
|
ret->registerModel<NumberSourceDataModel>(numberNodeType);
|
|
ret->registerModel<NumberDisplayDataModel>(numberNodeType);
|
|
|
|
//图像获取
|
|
ret->registerModel<HImageLoaderModel>(getHalconImageNodeType);
|
|
//ret->registerModel<HImageFolderModel>(getHalconImageNodeType);
|
|
//图像操作
|
|
ret->registerModel<HImageShowModel>(halconImageNodeType);
|
|
ret->registerModel<HImageRGB2GrayModel>(halconImageNodeType);
|
|
ret->registerModel<HImageSplitChanelModel>(halconImageNodeType);
|
|
ret->registerModel<HImageThresholdModel>(halconImageNodeType);
|
|
//ret->registerModel<HRegionSelectModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionConnectModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionShapeTransModel>(halconImageNodeType);
|
|
ret->registerModel<HImageReduceDomainModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionFillUpShapeModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionOpenCircleModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionUnionModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionDifferenceModel>(halconImageNodeType);
|
|
ret->registerModel<HRegionSelectShapeStdModel>(halconImageNodeType);
|
|
ret->registerModel<HImageDLSegmentModel>(halconImageNodeType);
|
|
|
|
return ret;
|
|
}
|