Mercurial > mercurial > hgweb_searcher03.cgi
comparison src/marksheet.cpp @ 4:fdba695b99f1
More fast ( read from DB ).
Improve the precision of marksheet judgement.
author | pyon@macmini |
---|---|
date | Wed, 11 Sep 2013 19:09:14 +0900 |
parents | c066fde99517 |
children | 52958cd4a073 |
comparison
equal
deleted
inserted
replaced
3:1a64119ab257 | 4:fdba695b99f1 |
---|---|
1 // Filename : marksheet.cpp | 1 // Filename : marksheet.cpp |
2 // Last Change: 23-Aug-2013. | 2 // Last Change: 11-Sep-2013. |
3 // | 3 // |
4 | 4 |
5 #include "common.h" | 5 #include "common.h" |
6 #include "marksheet.h" | 6 #include "marksheet.h" |
7 | 7 |
55 } | 55 } |
56 | 56 |
57 return hhs; | 57 return hhs; |
58 } | 58 } |
59 | 59 |
60 bool IsMarksheet( wxString& file, float* brate, long* len, double zmin, double zmax, long lmin, long lmax ) | 60 bool IsMarksheet( wxString& file, double zmin, double zmax, long lmin, long lmax ) |
61 { | 61 { |
62 wxImage img( file, wxBITMAP_TYPE_JPEG ); | 62 wxImage img( file, wxBITMAP_TYPE_JPEG ); |
63 int black = 0; | 63 int black = 0; |
64 int x = 2465; | 64 int x = 2465; |
65 int h = 3500; | 65 int h = 3500; |
74 float z = (float)black / h; | 74 float z = (float)black / h; |
75 | 75 |
76 wxFile f( file ); | 76 wxFile f( file ); |
77 long l = f.Length(); | 77 long l = f.Length(); |
78 | 78 |
79 *brate = z; | 79 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,l)); |
80 *len = l; | |
81 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len)); | |
82 if ( zmin < z && z < zmax | 80 if ( zmin < z && z < zmax |
83 && lmin < l && l < lmax ) { | 81 && lmin < l && l < lmax ) { |
84 return true; | 82 return true; |
85 } | 83 } |
86 return false; | 84 return false; |
87 } | 85 } |
88 | 86 |
89 bool _IsMarksheet( wxString& file, float* brate, long* len ) | |
90 { | |
91 wxImage img( file, wxBITMAP_TYPE_JPEG ); | |
92 int black = 0; | |
93 int x = 2465; | |
94 int h = 3500; | |
95 unsigned char r, g, b; | |
96 | |
97 for ( int y=0; y<h; y++ ) { | |
98 r = img.GetRed( x, y ); | |
99 g = img.GetGreen( x, y ); | |
100 b = img.GetBlue( x, y ); | |
101 if( IsBlack( (int)r, (int)g, (int)b ) ) black++; | |
102 } | |
103 float z = (float)black / h; | |
104 float zmin = 0.095713; float zmax = 0.108600; | |
105 | |
106 wxFile f( file ); | |
107 long l = f.Length(); | |
108 float lmin = 2072393; float lmax = 2346082; | |
109 | |
110 *brate = z; | |
111 *len = l; | |
112 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len)); | |
113 if ( zmin < z && z < zmax | |
114 && lmin < l && l < lmax ) { | |
115 return true; | |
116 } | |
117 return false; | |
118 } | |
119 | 87 |
120 wxString GetHhsName( wxString& hhsno ) | 88 wxString GetHhsName( wxString& hhsno ) |
121 { | 89 { |
122 wxString name; | 90 wxString name; |
123 | 91 |