Mercurial > mercurial > hgweb_mover.cgi
diff src/testtune.cpp @ 2:1ea4f7981ff5
create window.
author | pyon@macmini |
---|---|
date | Sun, 02 Oct 2011 18:44:03 +0900 |
parents | 214f2908b8e4 |
children | 3b734fd6ee2b |
line wrap: on
line diff
--- a/src/testtune.cpp Thu Sep 29 07:47:06 2011 +0900 +++ b/src/testtune.cpp Sun Oct 02 18:44:03 2011 +0900 @@ -1,4 +1,9 @@ +// Filename : testtune.cpp +// Last Change: 29-Sep-2011. +// + #include "wx/utils.h" +#include "wx/file.h" #include "wx/string.h" #include "wx/image.h" @@ -10,10 +15,10 @@ return false; } -wxString GuessHhs( void ) +wxString GuessHhs( wxString& file ) { wxString hhs; - wxImage img( wxT("img/img361.jpg"), wxBITMAP_TYPE_JPEG ); + wxImage img( file, wxBITMAP_TYPE_JPEG ); int sx = 1800; // start x int sy = 315;; // start y int bw = 60; // block width @@ -23,11 +28,13 @@ int x, y; unsigned char r, g, b; - int max_n = -1; - float max = 0.0; + int max_n; + float max; float bk; - for ( int c=0; c<9; c++ ) { - for ( int n=0; n<9; n++ ) { + for ( int c=0; c<10; c++ ) { + max = 0.0; + max_n = -1; + for ( int n=0; n<10; n++ ) { for ( x=sx+bw*c; x<sx+bw*(c+1); x++ ) { for ( y=sy+bh*n; y<sy+bh*(n+1); y++ ) { @@ -38,25 +45,59 @@ } } - bk = (float)black/area; + bk = (float)black / area; if ( max < bk ) { max = bk; max_n = n; } - wxPuts(wxString::Format(wxT("%f"),bk)); + //wxPuts(wxString::Format(wxT("%d %f"),n,bk)); black = 0; } - hhs.Append( wxString::Format( wxT("%1d"), max_n ) ); + hhs.Append( wxString::Format( wxT("%d"), max_n ) ); } return hhs; } +bool IsMarksheet( wxString& file ) +{ + wxImage img( file, wxBITMAP_TYPE_JPEG ); + int black = 0; + int x = 2465; + int h = 3500; + unsigned char r, g, b; + + for ( int y=0; y<h; y++ ) { + r = img.GetRed( x, y ); + g = img.GetGreen( x, y ); + b = img.GetBlue( x, y ); + if( IsBlack( (int)r, (int)g, (int)b ) ) black++; + } + float z = (float)black / h; + float zmin = 0.103428 * 0.95; + float zmax = 0.103428 * 1.05; + + wxFile f( file ); + long l = f.Length(); + float lmin = 2181468 * 0.95; + float lmax = 2181468 * 1.05; + + //wxPuts(wxString::Format(wxT("z = %f, len = %d"),z,len)); + if ( zmin < z && z < zmax + && lmin < l && l < lmax ) { + return true; + } + return false; +} + int main( int argc, char **argv ) { wxInitAllImageHandlers(); - wxString hhs = GuessHhs(); + wxString file = wxT("img\\img081.jpg"); + if ( IsMarksheet( file ) ) wxPuts(wxT("perhaps marksheet !")); + wxString hhs = GuessHhs( file ); wxPuts(hhs); + }