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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
| #include "StdAfx.h"
| #include "AnaResultFile.h"
| #include "akCore/akFileDB.h"
| #include "akLoggerExt.h"
| #ifdef _DEBUG
| #undef THIS_FILE
| static char THIS_FILE[]=__FILE__;
| #define new DEBUG_NEW
| #endif
|
| CAnaResultFile::CAnaResultFile(void)
| {
| }
|
| CAnaResultFile::~CAnaResultFile(void)
| {
| }
|
| BOOL CAnaResultFile::MakeAnaFile(CgrmGlassRawData* pData)
| {
| //return TRUE;
|
| CString strFilePathName;
| strFilePathName.Format("%s\\%sana", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName);
|
| FILE* pf = fopen(strFilePathName.GetBuffer(0), "w");
| if (pf == NULL)
| {
| AKLOG("MakeAOIFile Fail : [%s]", strFilePathName.GetBuffer(0));
| return FALSE;
| }
|
| fprintf(pf, "%s\n", pData->GetGlassData()->m_strGlassID);
| fprintf(pf, "GlassID, m_strImageName, m_strDefectCode, UMCenterAlignX, UMCenterAlignY, m_nLevelSrcMin, m_nLevelSrcMax, m_nLevelSrcAvg, m_nLevelRefMin, m_nLevelRefMax, m_nLevelRefAvg, m_nLevelDiffMin, m_nLevelDiffMax, m_nLevelDiffAvg");
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",Zone%02d", i);
| //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffMin%02d", i);
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffMax%02d", i);
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffAvg%02d", i);
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcMin%02d", i);
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcMax%02d", i);
| for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcAvg%02d", i);
| fprintf(pf, ", m_sDefectPeak, m_nPixelSize, DefectType, UMSize, Density, ScrtRatio, MergeState, Angle, Major, Minor, Compact, Thickness");
| fprintf(pf, "\n");
|
| for (int iDefect = 0; iDefect < pData->GetGlassData()->m_nDefectNum; iDefect++)
| {
| _grmDefectData* pDefect = pData->GetDefectData(iDefect);
| if (pData->GetGlassData()->m_nScanCoordinateY == 1) //ºÐÆÇ¼³ºñÀÇ °æ¿ì XY¹ÝÀü
| {
| fprintf(pf, "%s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
| pData->GetGlassData()->m_strGlassID, pDefect->m_strAoiImageName, pDefect->m_strDefectCode, (double)pDefect->m_nUMCenterAlignY / 1000.0, (double)pDefect->m_nUMCenterAlignX / 1000.0,
| pDefect->m_nLevelSrcMin, pDefect->m_nLevelSrcMax, pDefect->m_nLevelSrcAvg,
| pDefect->m_nLevelRefMin, pDefect->m_nLevelRefMax, pDefect->m_nLevelRefAvg,
| pDefect->m_nLevelDiffMin, pDefect->m_nLevelDiffMax, pDefect->m_nLevelDiffAvg);
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]);
| }
| //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueMin[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueMax[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueAvg[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMin[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMax[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcAvg[iz]);
| }
| fprintf(pf, ",%d, %d, %d, %d, %d, %d, %d",
| pDefect->m_sDefectPeak, pDefect->m_nPixelSize, pDefect->m_DefectType, (int)pDefect->m_nUMSize, pDefect->m_nDensity, pDefect->m_nScratchRatio, pDefect->m_bMergeState);
|
| fprintf(pf, ", %d, %d, %d, %d, %d", pDefect->m_nAngle, pDefect->m_nMajor, pDefect->m_nMinor, pDefect->m_nCompact, pDefect->m_nThickness);
|
| fprintf(pf, "\n");
| }
| else
| {
| fprintf(pf, "%s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
| pData->GetGlassData()->m_strGlassID, pDefect->m_strAoiImageName, pDefect->m_strDefectCode, (double)pDefect->m_nUMCenterAlignX / 1000.0, (double)pDefect->m_nUMCenterAlignY / 1000.0,
| pDefect->m_nLevelSrcMin, pDefect->m_nLevelSrcMax, pDefect->m_nLevelSrcAvg,
| pDefect->m_nLevelRefMin, pDefect->m_nLevelRefMax, pDefect->m_nLevelRefAvg,
| pDefect->m_nLevelDiffMin, pDefect->m_nLevelDiffMax, pDefect->m_nLevelDiffAvg);
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]);
| }
| //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueMin[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueMax[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueAvg[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMin[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMax[iz]);
| }
| for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
| {
| fprintf(pf, ",%d", pDefect->m_sZoneValueSrcAvg[iz]);
| }
| fprintf(pf, ",%d, %d, %d, %d, %d, %d, %d",
| pDefect->m_sDefectPeak, pDefect->m_nPixelSize, pDefect->m_DefectType, (int)pDefect->m_nUMSize, pDefect->m_nDensity, pDefect->m_nScratchRatio, pDefect->m_bMergeState);
|
| fprintf(pf, ", %d, %d, %d, %d, %d", pDefect->m_nAngle, pDefect->m_nMajor, pDefect->m_nMinor, pDefect->m_nCompact, pDefect->m_nThickness);
|
| fprintf(pf, "\n");
| }
| }
| AKLOG("MakeAnaFile Complete %s", strFilePathName);
| fclose(pf);
|
| return TRUE;
| }
|
|