#pragma once
|
|
#include "AlignFinderParam.h"
|
#include "CHImageControls/CHImageData.h"
|
|
class AFX_EXT_CLASS CAlignFinder
|
{
|
public:
|
CAlignFinder(int nIndex=0);
|
virtual ~CAlignFinder(void);
|
void Reset();
|
void ResetImages();
|
|
virtual SAlignFindResult FindAlign(CCHImageData *pImageData, const SAlignFindParam& findParam, CCHImageData *pTempImage=NULL);
|
virtual SAlignFindResult FindAlign(CCHImageData *pImageData, CCHImageData *pTempImage=NULL);
|
virtual SAlignFindResult FindAlign(BYTE* pImage, int nWidth, int nHeight, const SAlignFindParam& findParam);
|
|
|
BOOL SaveSourceImage(const CString& strFilename);
|
BOOL SaveEdgeImage(const CString& strFilename);
|
BOOL SaveThresholdImage(const CString& strFilename);
|
BOOL SaveBlobImage(const CString& strFilename);
|
BOOL SaveResultImage(const CString& strFilename);
|
|
BOOL GetSourceImage(CCHImageData *pImageData);
|
BOOL GetEdgeImage(CCHImageData *pImageData);
|
BOOL GetThresholdImage(CCHImageData *pImageData);
|
BOOL GetBlobImage(CCHImageData *pImageData);
|
BOOL GetResultImage(CCHImageData *pImageData);
|
|
static int ImageSobelEdge(BYTE* pSrcImage, BYTE *pDstImage, int nWidth, int nHeight);
|
static int ImageThresholding(BYTE* pImage, int nWidth, int nHeight, int nThresValue);
|
static int ImageBlobAnalysis(BYTE *pImage, int nWidth, int nHeight, VectorPixelBlob& vectorBlob, int nBlobMargin, int nAlignWidth, int nAlignHeight);
|
static SThicknessResult FindAlignMarkThickness(BYTE *pProcImg, int nWidth, int nHeight, CPoint ptResult, int nRefWidth, int nRefHeight);
|
static int AlignMeasureThickness(BYTE *pImage, int nWidth, int nHeight, VectorPixelBlob& vectorBlob, const SAlignFindParam& sAlignFindParam);
|
|
protected:
|
virtual SAlignFindResult FindAlign(BYTE* pImage, int nWidth, int nHeight);
|
virtual int FindAlignEdge(SAlignFindResult& findResult);
|
virtual int FindAlignMatching(SAlignFindResult& findResult);
|
|
int m_nIndex;
|
CCHImageData m_SourceImage;
|
CCHImageData m_EdgeImage;
|
CCHImageData m_ThresImage;
|
CCHImageData m_BlobImage;
|
CCHImageData m_ResultImage;
|
|
CCHImageData* m_pTempImage;
|
SAlignFindParam m_findParam;
|
};
|
|
typedef std::vector<CAlignFinder*> VectorAlignFinder;
|
typedef std::vector<CAlignFinder*>::iterator VectorAlignFinderIt;
|