SDC C-Project CF Review 프로그램
LYW
2021-07-29 bd13fa3f9396f1f681759f4623c55d5f91d74a9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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);
 
};