Mercurial > mercurial > hgweb_mover.cgi
comparison src/testtune.cpp @ 2:1ea4f7981ff5
create window.
| author | pyon@macmini |
|---|---|
| date | Sun, 02 Oct 2011 18:44:03 +0900 |
| parents | 214f2908b8e4 |
| children | 3b734fd6ee2b |
comparison
equal
deleted
inserted
replaced
| 1:214f2908b8e4 | 2:1ea4f7981ff5 |
|---|---|
| 1 // Filename : testtune.cpp | |
| 2 // Last Change: 29-Sep-2011. | |
| 3 // | |
| 4 | |
| 1 #include "wx/utils.h" | 5 #include "wx/utils.h" |
| 6 #include "wx/file.h" | |
| 2 #include "wx/string.h" | 7 #include "wx/string.h" |
| 3 #include "wx/image.h" | 8 #include "wx/image.h" |
| 4 | 9 |
| 5 bool IsBlack( int r, int g, int b ) | 10 bool IsBlack( int r, int g, int b ) |
| 6 { | 11 { |
| 8 return true; | 13 return true; |
| 9 } | 14 } |
| 10 return false; | 15 return false; |
| 11 } | 16 } |
| 12 | 17 |
| 13 wxString GuessHhs( void ) | 18 wxString GuessHhs( wxString& file ) |
| 14 { | 19 { |
| 15 wxString hhs; | 20 wxString hhs; |
| 16 wxImage img( wxT("img/img361.jpg"), wxBITMAP_TYPE_JPEG ); | 21 wxImage img( file, wxBITMAP_TYPE_JPEG ); |
| 17 int sx = 1800; // start x | 22 int sx = 1800; // start x |
| 18 int sy = 315;; // start y | 23 int sy = 315;; // start y |
| 19 int bw = 60; // block width | 24 int bw = 60; // block width |
| 20 int bh = 50; // block height | 25 int bh = 50; // block height |
| 21 int area = bw * bh; | 26 int area = bw * bh; |
| 22 int black = 0; | 27 int black = 0; |
| 23 int x, y; | 28 int x, y; |
| 24 unsigned char r, g, b; | 29 unsigned char r, g, b; |
| 25 | 30 |
| 26 int max_n = -1; | 31 int max_n; |
| 27 float max = 0.0; | 32 float max; |
| 28 float bk; | 33 float bk; |
| 29 for ( int c=0; c<9; c++ ) { | 34 for ( int c=0; c<10; c++ ) { |
| 30 for ( int n=0; n<9; n++ ) { | 35 max = 0.0; |
| 36 max_n = -1; | |
| 37 for ( int n=0; n<10; n++ ) { | |
| 31 | 38 |
| 32 for ( x=sx+bw*c; x<sx+bw*(c+1); x++ ) { | 39 for ( x=sx+bw*c; x<sx+bw*(c+1); x++ ) { |
| 33 for ( y=sy+bh*n; y<sy+bh*(n+1); y++ ) { | 40 for ( y=sy+bh*n; y<sy+bh*(n+1); y++ ) { |
| 34 r = img.GetRed( x, y ); | 41 r = img.GetRed( x, y ); |
| 35 g = img.GetGreen( x, y ); | 42 g = img.GetGreen( x, y ); |
| 36 b = img.GetBlue( x, y ); | 43 b = img.GetBlue( x, y ); |
| 37 if( IsBlack( (int)r, (int)g, (int)b ) ) black++; | 44 if( IsBlack( (int)r, (int)g, (int)b ) ) black++; |
| 38 } | 45 } |
| 39 } | 46 } |
| 40 | 47 |
| 41 bk = (float)black/area; | 48 bk = (float)black / area; |
| 42 if ( max < bk ) { | 49 if ( max < bk ) { |
| 43 max = bk; | 50 max = bk; |
| 44 max_n = n; | 51 max_n = n; |
| 45 } | 52 } |
| 46 wxPuts(wxString::Format(wxT("%f"),bk)); | 53 //wxPuts(wxString::Format(wxT("%d %f"),n,bk)); |
| 47 black = 0; | 54 black = 0; |
| 48 } | 55 } |
| 49 hhs.Append( wxString::Format( wxT("%1d"), max_n ) ); | 56 hhs.Append( wxString::Format( wxT("%d"), max_n ) ); |
| 50 } | 57 } |
| 51 | 58 |
| 52 return hhs; | 59 return hhs; |
| 53 } | 60 } |
| 54 | 61 |
| 62 bool IsMarksheet( wxString& file ) | |
| 63 { | |
| 64 wxImage img( file, wxBITMAP_TYPE_JPEG ); | |
| 65 int black = 0; | |
| 66 int x = 2465; | |
| 67 int h = 3500; | |
| 68 unsigned char r, g, b; | |
| 69 | |
| 70 for ( int y=0; y<h; y++ ) { | |
| 71 r = img.GetRed( x, y ); | |
| 72 g = img.GetGreen( x, y ); | |
| 73 b = img.GetBlue( x, y ); | |
| 74 if( IsBlack( (int)r, (int)g, (int)b ) ) black++; | |
| 75 } | |
| 76 float z = (float)black / h; | |
| 77 float zmin = 0.103428 * 0.95; | |
| 78 float zmax = 0.103428 * 1.05; | |
| 79 | |
| 80 wxFile f( file ); | |
| 81 long l = f.Length(); | |
| 82 float lmin = 2181468 * 0.95; | |
| 83 float lmax = 2181468 * 1.05; | |
| 84 | |
| 85 //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len)); | |
| 86 if ( zmin < z && z < zmax | |
| 87 && lmin < l && l < lmax ) { | |
| 88 return true; | |
| 89 } | |
| 90 return false; | |
| 91 } | |
| 92 | |
| 55 int main( int argc, char **argv ) | 93 int main( int argc, char **argv ) |
| 56 { | 94 { |
| 57 wxInitAllImageHandlers(); | 95 wxInitAllImageHandlers(); |
| 58 wxString hhs = GuessHhs(); | 96 wxString file = wxT("img\\img081.jpg"); |
| 59 | 97 |
| 98 if ( IsMarksheet( file ) ) wxPuts(wxT("perhaps marksheet !")); | |
| 99 wxString hhs = GuessHhs( file ); | |
| 60 wxPuts(hhs); | 100 wxPuts(hhs); |
| 101 | |
| 61 } | 102 } |
| 62 | 103 |
