#pragma once
|
|
#include "AlignFinder.h"
|
|
#include <vector>
|
typedef std::vector<double> VectorDouble;
|
typedef std::vector<double>::iterator VectorDoubleIt;
|
typedef std::vector<double>::const_iterator constVectorDoubleIt;
|
|
class AFX_EXT_CLASS CAlignFinder_Corner : public CAlignFinder
|
{
|
public:
|
CAlignFinder_Corner(int nIndex=0);
|
virtual ~CAlignFinder_Corner(void);
|
|
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);
|
|
protected:
|
virtual SAlignFindResult FindAlign(BYTE* pImage, int nWidth, int nHeight);
|
|
int FindAlignCorner(SAlignFindResult& findResult);
|
int ProjectionXDirection(CCHImageData *pImageData, VectorDouble& vecArray, VectorDouble& vecResult, int nKernelSize);
|
int ProjectionYDirection(CCHImageData *pImageData, VectorDouble& vecArray, VectorDouble& vecResult, int nKernelSize);
|
int CalculateCrossPoint(int nDirType, const VectorDouble& vecX, const VectorDouble& vecY, int nThreshold, int nIgnore, SAlignFindResult& sFindResult);
|
|
void PrintArrayValue(const CString& strFilename, const VectorDouble& vecArray);
|
|
};
|