comparison include/marksheet.h @ 24:5c99c6fa50df v2.2dev v2.2

fix changing selected image color
author pyon@macmini
date Wed, 02 Nov 2011 20:47:18 +0900
parents 1fda3a06c39b
children d21de4693652
comparison
equal deleted inserted replaced
23:a2dd16b70c08 24:5c99c6fa50df
1 // Filename : marksheet.h 1 // Filename : marksheet.h
2 // Last Change: 21-Oct-2011. 2 // Last Change: 02-Nov-2011.
3 // 3 //
4 #ifndef __marksheet__ 4 #ifndef __marksheet__
5 #define __marksheet__ 5 #define __marksheet__
6 6
7 bool IsBlack( int r, int g, int b ) 7 bool IsBlack( int r, int g, int b )
54 } 54 }
55 55
56 return hhs; 56 return hhs;
57 }; 57 };
58 58
59 bool IsMarksheet( wxString& file, float* brate, long* len ) 59 bool IsMarksheet( wxString& file, float* brate, long* len, double zmin, double zmax, long lmin, long lmax )
60 { 60 {
61 wxImage img( file, wxBITMAP_TYPE_JPEG ); 61 wxImage img( file, wxBITMAP_TYPE_JPEG );
62 int black = 0; 62 int black = 0;
63 int x = 2465; 63 int x = 2465;
64 int h = 3500; 64 int h = 3500;
69 g = img.GetGreen( x, y ); 69 g = img.GetGreen( x, y );
70 b = img.GetBlue( x, y ); 70 b = img.GetBlue( x, y );
71 if( IsBlack( (int)r, (int)g, (int)b ) ) black++; 71 if( IsBlack( (int)r, (int)g, (int)b ) ) black++;
72 } 72 }
73 float z = (float)black / h; 73 float z = (float)black / h;
74 float zmin = 0.095713;
75 float zmax = 0.108600;
76 74
77 wxFile f( file ); 75 wxFile f( file );
78 long l = f.Length(); 76 long l = f.Length();
79 float lmin = 2072393;
80 float lmax = 2346082;
81 77
82 *brate = z; 78 *brate = z;
83 *len = l; 79 *len = l;
84 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len)); 80 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len));
85 if ( zmin < z && z < zmax 81 if ( zmin < z && z < zmax
87 return true; 83 return true;
88 } 84 }
89 return false; 85 return false;
90 }; 86 };
91 87
88 bool _IsMarksheet( wxString& file, float* brate, long* len )
89 {
90 wxImage img( file, wxBITMAP_TYPE_JPEG );
91 int black = 0;
92 int x = 2465;
93 int h = 3500;
94 unsigned char r, g, b;
95
96 for ( int y=0; y<h; y++ ) {
97 r = img.GetRed( x, y );
98 g = img.GetGreen( x, y );
99 b = img.GetBlue( x, y );
100 if( IsBlack( (int)r, (int)g, (int)b ) ) black++;
101 }
102 float z = (float)black / h;
103 float zmin = 0.095713; float zmax = 0.108600;
104
105 wxFile f( file );
106 long l = f.Length();
107 float lmin = 2072393; float lmax = 2346082;
108
109 *brate = z;
110 *len = l;
111 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len));
112 if ( zmin < z && z < zmax
113 && lmin < l && l < lmax ) {
114 return true;
115 }
116 return false;
117 };
118
119 int IsHhsno( wxString& hhsno, wxString& name )
120 {
121 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // $BHoJ]HV%A%'%C%/(B
122
123 if ( reHhs.Matches( hhsno) ) {
124 if ( 0 ) { // DB$B$K$"$k(B
125 return 2;
126 }
127 return 1;
128 }
129 else {
130 return 0;
131 }
132 };
133
92 #endif // __marksheet__ 134 #endif // __marksheet__
93 135