用openvc 控制滑鼠 來移動和開啟檔案

2021-09-01 16:27:03 字數 2977 閱讀 4379

這一陣做了冷板凳。蛋有淡淡的憂傷。開始嚇唬鬧ing....................

需求:有時候坐在離滑鼠比較遠的地方(比如推到沙發上)看網頁,看電影要用滑鼠去控制,還得蹭過去。寫個用握拳揮動來控制滑鼠移動,用掌來開啟檔案的程式。

打算到時候可以移到自家android電視上去。

困難:之前也沒有寫過c 語言程式(還讀書的時候考級用過),開始看opencv 更是霧水,還好 「凡是不決問狗狗」。順便蛋傷下:狗狗提供的不只是口糧,還有思想。 

,另外,我想寫乙個基於中實物分類的程式,作用是可以從網上自動down ,然後按照要的分類 比如 鮮花 或者 狗狗  來自動儲存和分類。  爬蟲  儲存 ,分類和展示 用 jsoup  ,mongo gridfs,  spring mvc  和 js 已完成。準備訓練大量的不同事務的分級檔案。有興趣多交流。

下面是**    

大概步驟

0、在系統檢視的方法是 cat /proc/bus/input/devices 就可以看到每個eventx是什麼裝置的事件了

2、看有沒有 手掌 (雙擊) 和拳頭移動(滑鼠移動),有的化就處理。

#include "opencv2/objdetect/objdetect.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

using namespace cv;

void mousemove(int fd, int x, int y);

void mousedoubleclick(int fd);

void fist(mat frame);

void palm(mat frame);

void *thread1(void *);

struct mypoint else else else else {

palmcount++;

if (palmcount > 5) {

palmcount = 0;

xarray = 0;

yarray = 0;

//滑鼠移動

void mousemove(int fd, int x, int y) {

struct input_event event;

memset(&event, 0, sizeof(event));

gettimeofday(&event.time, null);

event.type = ev_rel;

event.code = rel_x;

event.value = x;

write(fd, &event, sizeof(event));

event.type = ev_rel;

event.code = rel_y;

event.value = y;

write(fd, &event, sizeof(event));

event.type = ev_syn;

event.code = syn_report;

event.value = 0;

write(fd, &event, sizeof(event));

//滑鼠左鍵雙擊

void mousedoubleclick(int fd) {

struct input_event event;

memset(&event, 0, sizeof(event));

gettimeofday(&event.time, null);

event.type = ev_key;

event.code = btn_left;

event.value = 1;

write(fd, &event, sizeof(event));

event.type = ev_key;

event.code = btn_left;

event.value = 0;

write(fd, &event, sizeof(event));

event.type = ev_key;

event.code = btn_left;

event.value = 1;

write(fd, &event, sizeof(event));

event.type = ev_key;

event.code = btn_left;

event.value = 0;

write(fd, &event, sizeof(event));

event.type = ev_syn;

event.code = syn_report;

event.value = 0;

write(fd, &event, sizeof(event));

//當滑鼠雙擊後會觸發這個執行緒 ,這個執行緒的左右是 防止重複的雙擊

void *thread1(void *) {

cout << "fist:" << "waitfist begin!  double click" << endl;

waitfist = true;

waitpalm = true;

usleep(100 * 1000);

waitpalm = false;

usleep(200 * 1000);

cout << "fist:waitfist end!" << endl;

waitfist = false;

用css控制滑鼠樣式

用css控制滑鼠樣式的語法如下 文字或其它頁面元素 把 換成如下15個效果的一種 下面是對這15種效果的解釋。移動滑鼠到解釋上面,看看你的滑鼠起了什麼變化吧!hand是手型 pointer也是手型,這裡推薦使用這種,因為這可以在多種瀏覽器下使用。crosshair是十字型 text是移動到文字上的那...

python實現鍵盤控制滑鼠移動

玩qq桌球遊戲時,有時候用滑鼠控制滑鼠指標的微小移動比較費勁兒,所以想寫個程式,可以用鍵盤的上下左右鍵來控制鼠程式設計客棧標的移動,每次只移動乙個畫素。本指令碼依賴pywin32 pyhook和pymouse這兩個庫,請自行安裝。中的www.cppcns.compythoncom是pywin32程式...

用css控制滑鼠樣式語法

文字或其它頁面元素 把 換成如下15個效果的一種 下面是對這15種效果的解釋。移動滑鼠到解釋上面,看看你的滑鼠起了什麼變化吧!hand是手型 pointer也是手型,這裡推薦使用這種,因為這可以在多種瀏覽器下使用。crosshair是十字型 text是移動到文字上的那種效果 wait是等待的那種效果...