0
|
1 #include "wx/utils.h"
|
|
2 #include "wx/string.h"
|
1
|
3 #include "wx/image.h"
|
0
|
4
|
|
5 bool IsBlack( int r, int g, int b )
|
|
6 {
|
1
|
7 if ( r == 0 && g == 0 && b == 0 ) {
|
0
|
8 return true;
|
|
9 }
|
|
10 return false;
|
|
11 }
|
|
12
|
1
|
13 wxString GuessHhs( void )
|
0
|
14 {
|
1
|
15 wxString hhs;
|
|
16 wxImage img( wxT("img/img361.jpg"), wxBITMAP_TYPE_JPEG );
|
|
17 int sx = 1800; // start x
|
|
18 int sy = 315;; // start y
|
|
19 int bw = 60; // block width
|
|
20 int bh = 50; // block height
|
|
21 int area = bw * bh;
|
|
22 int black = 0;
|
|
23 int x, y;
|
|
24 unsigned char r, g, b;
|
|
25
|
|
26 int max_n = -1;
|
|
27 float max = 0.0;
|
|
28 float bk;
|
|
29 for ( int c=0; c<9; c++ ) {
|
|
30 for ( int n=0; n<9; n++ ) {
|
0
|
31
|
1
|
32 for ( x=sx+bw*c; x<sx+bw*(c+1); x++ ) {
|
|
33 for ( y=sy+bh*n; y<sy+bh*(n+1); y++ ) {
|
|
34 r = img.GetRed( x, y );
|
|
35 g = img.GetGreen( x, y );
|
|
36 b = img.GetBlue( x, y );
|
|
37 if( IsBlack( (int)r, (int)g, (int)b ) ) black++;
|
|
38 }
|
|
39 }
|
0
|
40
|
1
|
41 bk = (float)black/area;
|
|
42 if ( max < bk ) {
|
|
43 max = bk;
|
|
44 max_n = n;
|
|
45 }
|
|
46 wxPuts(wxString::Format(wxT("%f"),bk));
|
|
47 black = 0;
|
0
|
48 }
|
1
|
49 hhs.Append( wxString::Format( wxT("%1d"), max_n ) );
|
0
|
50 }
|
1
|
51
|
|
52 return hhs;
|
0
|
53 }
|
|
54
|
|
55 int main( int argc, char **argv )
|
|
56 {
|
1
|
57 wxInitAllImageHandlers();
|
|
58 wxString hhs = GuessHhs();
|
0
|
59
|
1
|
60 wxPuts(hhs);
|
0
|
61 }
|
|
62
|