53 lines
1.9 KiB
C++
53 lines
1.9 KiB
C++
#pragma once
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <memory>
|
|
#include <QString>
|
|
#include "hybridPosePositioning_Export.h"
|
|
#include "VZNL_Types.h"
|
|
#include "VrTimeUtils.h"
|
|
#include "VrError.h"
|
|
#include "VrLog.h"
|
|
#include "IVrConfig.h"
|
|
#include "LaserDataLoader.h"
|
|
#include "IYStatorWorkpiecePositionStatus.h"
|
|
#include "WorkpiecePositionModelAdapter.h"
|
|
|
|
class DetectPresenter
|
|
{
|
|
private:
|
|
WorkpiecePositionModelAdapter m_workpieceModel;
|
|
public:
|
|
DetectPresenter(/* args */);
|
|
~DetectPresenter();
|
|
|
|
static QString GetAlgoVersion();
|
|
|
|
/// 同步执行左目二维定位;返回后 detections 完全由应用持有。
|
|
int LocateWorkpiece2D(const SVzNLImageData& leftImage,
|
|
const VrWorkpieceModelParam& modelParam,
|
|
const VrDebugParam& debugParam,
|
|
std::vector<WorkpiecePositionModelAdapter::Detection>& detections);
|
|
|
|
/// 使用已经深拷贝的二维定位结果执行定子工件三维定位。
|
|
int DetectStatorWorkpiecePosition(int cameraIndex,
|
|
std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& laserLines,
|
|
const std::vector<WorkpiecePositionModelAdapter::Detection>& detections,
|
|
const VrAlgorithmParams& algorithmParams,
|
|
const VrDebugParam& debugParam,
|
|
LaserDataLoader& dataLoader,
|
|
const double clibMatrix[16],
|
|
int eulerOrder,
|
|
int dirVectorInvert,
|
|
const WD_HRM_BinInfo* binInfo,
|
|
StatorWorkpiecePositionDetectionResult& detectionResult);
|
|
|
|
int DetectBin(int cameraIndex,
|
|
std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& laserLines,
|
|
const VrAlgorithmParams& algorithmParams,
|
|
const VrDebugParam& debugParam,
|
|
LaserDataLoader& dataLoader,
|
|
WD_HRM_BinInfo& binInfo);
|
|
|
|
};
|