Ignore:
Timestamp:
Dec 7, 2009, 8:26:07 AM (15 years ago)
Author:
Rick van der Zwet
Message:

Final commit of report to be handed in.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • liacs/mms/project/colour-tracking.c

    r20 r23  
    8585    int r, g, b;
    8686    int q;
     87    int x_move, y_move;
     88
    8789    int retval;
    8890    char arg1[4], arg2[4];
    8991    int keycode;
    9092    // Actually move the pointer to it's location
    91     int mouse_flag = 1;
     93    int mouse_flag = 0;
     94    int r_window_flag = 1;
     95    int g_window_flag = 1;
     96    int b_window_flag = 1;
    9297    // XXX: Hack to have the pointer posted on the second screen.
    9398    int ex_screen_flag = 0;
    94        
     99    int x_ajust = -114;
     100    int y_ajust = -95;
     101
    95102   
    96103    int cvalue = 0;
     
    112119
    113120        //cvCopy(image, output, NULL);
    114         //Remove Noise from images
    115         cvSmooth(image,output,CV_BLUR, 3, 3, 3,3);
     121        //Remove Noise from images
     122            cvSmooth(image,output,CV_BLUR, 3, 3, 3,3);
    116123        cvCopy(image, routput, NULL);
    117124        cvCopy(image, goutput, NULL);
     
    175182        cvCircle(target, cvPoint(xmax, ymax), 10, CV_RGB(255,0,0),4, 8, 0);
    176183        // Set to pointer to new location
     184        // Some Hacking to get the pointer synced
    177185        if (mouse_flag) {
     186            x_move = ratio(xmax + x_ajust,width,screen_width);
     187            y_move = ratio(ymax + y_ajust,height,screen_height);
    178188            if (ex_screen_flag) {
    179                 xdo_mousemove(xdo, ratio(xmax,width,screen_width) + screen_width - 250,
    180                     ratio(ymax,height,screen_height));
    181             } else {
    182                 xdo_mousemove(xdo, ratio(xmax,width,screen_width),
    183                     ratio(ymax,height,screen_height));
     189                x_move += screen_width;
    184190            }
     191            xdo_mousemove(xdo, x_move, y_move);
    185192        }
    186193                       
     
    188195        // Show all the images
    189196        cvShowImage("RGB_Image", output);
    190         cvShowImage("R_Image", routput);
    191         cvShowImage("B_Image", boutput);       
    192         cvShowImage("G_Image", goutput);       
     197        if (r_window_flag)
     198            cvShowImage("R_Image", routput);
     199        if (b_window_flag)
     200            cvShowImage("B_Image", boutput);       
     201        if (g_window_flag)
     202            cvShowImage("G_Image", goutput);       
    193203        cvShowImage("F_Image", target);       
    194204                   
     
    202212                        break;
    203213            } else if (keycode == 'm') {
    204                 mouse_flag =  (mouse_flag == 1) ? 0 : 1;
     214                mouse_flag ^= 1;
    205215            } else if (keycode == 'e') {
    206                 ex_screen_flag =  (ex_screen_flag == 1) ? 0 : 1;
    207 
     216                ex_screen_flag ^= 1;
     217            // Hack to manually sync mouse pointer with laser pointer
     218            } else if (keycode == 'w' || keycode == 's' || keycode == 'a' || \
     219                keycode == 'd') {
     220                if (keycode == 'w') {
     221                    y_ajust--;
     222                } else if (keycode == 's') {
     223                    y_ajust++;
     224                } else if (keycode == 'a') {
     225                    x_ajust--;
     226                } else if (keycode == 'd') {
     227                    x_ajust++;
     228                }
     229                printf("New x,y ajust: %i,%i\n",x_ajust,y_ajust);
     230            } else if (keycode == 'r' || keycode == 'g' || keycode == 'b') {
     231                printf("Toggle window: %c\n", keycode);
     232                if (keycode == 'r') {
     233                    r_window_flag ^= 1;
     234                } else if (keycode == 'g') {
     235                    g_window_flag ^= 1;
     236                } else if (keycode == 'b') {
     237                    b_window_flag ^= 1;
     238                }
    208239            }
    209             }
     240        }
    210241    } //for each frame ...
    211242
     
    226257int main(int argc, char *argv[]) {
    227258   int retval;
     259   printf("=== INSTRUCTION == \n\
     260Keybindings:\n\
     261e = toggle mouse on external screen mouse pointer\n\
     262m = toggle mouse tracking\n\
     263q = quit\n\
     264Mouse/laser pointer syncer:\n\
     265w = up\n\
     266s = down\n\
     267a = left\n\
     268f = right\n\
     269");
    228270   xdo = xdo_new(getenv("DISPLAY"));
    229271   retval = InitSystem(argc, argv);
Note: See TracChangeset for help on using the changeset viewer.