#ifndef RCUT_DOT_PROCESS_H
|
#define RCUT_DOT_PROCESS_H
|
|
class CRcutDotProcess
|
{
|
public:
|
CRcutDotProcess();
|
CRcutDotProcess(DimensionDir eDir, int id);
|
~CRcutDotProcess();
|
|
public:
|
//1. »ñÈ¡ÇøÓò
|
void getRegion(int &xPos, int &yPos, int &width, int &height);
|
void setRegion(int xPos, int yPos, int width, int height);
|
|
//2. »ñÈ¡ID
|
int getID(void);
|
void setID(int id);
|
|
//3. »ñÈ¡ÇøÓò
|
HalconCpp::HObject& getImage(void);
|
HalconCpp::HObject& getChipRegion(void);
|
HalconCpp::HObject& getRoiRegion(void);
|
|
//4. Ö´Ðмì²â
|
int Execute(DimensionDir eDir, Point2I offset);
|
|
//5. ÇøÓòʾ½Ì
|
void TechImage(void);
|
|
//6. ±£´æÊý¾Ý
|
Json::Value WriteToJson(void);
|
void DecodeJson(Json::Value &jsValue);
|
|
|
public:
|
int m_nUse;
|
CString m_strName;
|
|
int m_nChamferSize; //ÑÐÄ¥Á¿
|
int m_nChipRange; //Chip Range
|
int m_nChipThres; //ChipãÐÖµ
|
|
int m_nStartAngle; //¿ªÊ¼½Ç¶È
|
int m_nEndAngle; //½áÊø½Ç¶È
|
|
int m_nBinThres; //±ß½çãÐÖµ
|
int m_nEdgeSmooth; //±ß½çãÐÖµ
|
|
//Judge XY
|
int m_nDx;
|
int m_nDy;
|
|
|
std::vector<NgDotInfo> m_nNgInfo;
|
double m_fMaxChamber;
|
double m_fMinChamber;
|
|
private:
|
int m_id;
|
int m_nPoseX;
|
int m_nPoseY;
|
int m_width;
|
int m_height;
|
|
HalconCpp::HObject m_hImage;
|
HalconCpp::HObject m_hRoiRegion;
|
HalconCpp::HObject m_hChipRegion;
|
|
DimensionDir m_eDir;
|
int m_x1;
|
int m_y1;
|
|
double m_xMmvsp;
|
double m_yMmvsp;
|
HalconCpp::HObject m_hResultRegion;
|
|
private:
|
//1. »ñȡͼÏñ
|
bool getProcImage(DimensionDir eDir, Point2I offset, HalconCpp::HObject &hImage);
|
|
//2. »ñÈ¡·Ö±æÂÊ
|
void getMmvsp(DimensionDir eDir);
|
|
//3. »ñÈ¡½á¹û
|
void getResult(void);
|
|
//4. »ñÈ¡ÀªÐÎ
|
void InspectChip(HalconCpp::HObject &hImage);
|
|
//5. Top¼ì²â
|
void InspectTopChip(HalconCpp::HObject &hImage);
|
|
//6. Bot¼ì²â
|
void InspectBotChip(HalconCpp::HObject &hImage);
|
|
//7. »ñÈ¡R½Ç¶ÈµÄ³ß´çÂÖÀª
|
bool getRCutRegion(std::vector<Point2D> vStartPoints, std::vector<Point2D> vEndPoints, HalconCpp::HObject &hTargetRegion, HalconCpp::HObject &hRoiRegion);
|
|
//8. Éú²úÇøÓò
|
void genRectangeRegion(HalconCpp::HObject &hRectRegion);
|
|
//9. ͼÏñ·Ö¸î
|
void ImageBinThreshold(HalconCpp::HObject &hImage, HalconCpp::HObject &hRectRegion, HalconCpp::HObject &hRcutRegion, HalconCpp::HObject &hTarget);
|
|
//10. »ñÈ¡ÕæÊµµÄRCUT¿ò
|
bool getRCutRealRegion(HalconCpp::HObject &hSelectRegion, std::vector<Point2D> vPoints, HalconCpp::HObject &hTarget);
|
|
//11. »ñÈ¡µãÕóÐòÁÐ
|
bool getRcutEdgePoints(HalconCpp::HObject &hImage, std::vector<Point2D> &vStartPoints, std::vector<Point2D> &vEndPoints, std::vector<Point2D> &vResPoints, double &maxDist, double &minDist);
|
|
//12. Ö´ÐÐÇøÓò
|
void InpsectChipRegion(HalconCpp::HObject &hChipRegion, HalconCpp::HObject &hRoiRegion);
|
};
|
|
#endif
|