#include #include #include "opencv/cv.h"
#include "opencv/highgui.h"
#include "cvblob.h"
using namespace cvb;
typedef struct key
;key g_keymap =
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
};int g_key_num = sizeof(g_keymap)/sizeof(key);
int main()
cvmorphologyex(segmentated, segmentated, null, morphkernel, cv_mop_open, 1);
cvshowimage("segmentated", segmentated);
iplimage *labelimg = cvcreateimage(cvgetsize(frame), ipl_depth_label, 1);
cvblobs blobs;
unsigned int result = cvlabel(segmentated, labelimg, blobs);
cvfilterbyarea(blobs, 500, 1000000);
cvrenderblobs(labelimg, blobs, frame, frame, cv_blob_render_bounding_box);
cvupdatetracks(blobs, tracks, 200., 5);
cvrendertracks(tracks, frame, frame, cv_track_render_id|cv_track_render_bounding_box);
cvshowimage("red_object_tracking", frame);
// print key
for (cvtracks::const_iterator it=tracks.begin(); it!=tracks.end(); ++it)
}} cvreleaseimage(&labelimg);
cvreleaseimage(&segmentated);
char k = cvwaitkey(10)&0xff;
switch (k)
break;
} cvreleaseblobs(blobs);
//framenumber++;
} cvreleasestructuringelement(&morphkernel);
cvreleaseimage(&frame);
cvdestroywindow("red_object_tracking");
return 0;
}
虛擬雷射
投射鍵盤在2023年就由ibm發明了。
我第一次看到這玩意兒就覺得特別新奇,後來看到**上棒子的產品,要900多公尺,實在是宰人啊。於是就一直有想法做乙個。
不久前在**看到了投射鍵盤圖案的雷射模組,果斷買了乙個,開始籌畫製作乙個。
taobao上買的650nm虛擬鍵盤雷射元件
虛擬鍵盤雷射元件
而且現在有了強大的opencv影象處理庫,實現這樣的虛擬雷射投射鍵盤變得易如反掌。
先說說投影鍵盤的基本原理。鍵盤由三個主要部件組成:攝像頭、鍵盤圖案投射器、一字線**應雷射頭。
見下圖:
投影鍵盤的基本原理
圖上從上到下分別是鍵盤圖案投射器、攝像頭、一字線**應雷射頭。
當然,攝像頭放在鍵盤圖案投射器上面也是可以的,比如我就是這麼做的。
1. 鍵盤圖案投射器在平坦的桌面投出清晰鍵盤圖案
2. 最底下的一字線性雷射
(一般採用紅外線的,這樣眼睛不可見)發出一字型雷射,平行於桌面射出,這樣如果手指有按鍵活動,會在手指上形成雷射光斑
3. 攝像頭捕獲雷射光斑,對應於鍵盤圖案對映的位置,就可以知道哪些鍵被按下
ok,原理很簡單,是不是。有了這些模組,剩下的關鍵就是攝像頭的影象處理演算法了,而且現在有了opencv,實現也不是難事。
這裡說一下我的實現方法。
可見光譜
由於人眼對雷射的反應不一樣,780nm-808nm的雷射人眼不敏感,可看到微弱的一絲紅光。850nm至1064nm波長人眼不可見,通過紅外感光儀器等專業裝置可以看到,其中808-850nm通過攝像頭可以看到。980-1064nm通過倍頻片可以看到。
所以我在網上買了乙個808nm-810nm 紅外一字線雷射器
。這樣配上濾光片,可以濾去絕大多數其他波長的雜光,只剩下紅外雷射的光斑。
這樣做的好處是減少干擾,增加鍵盤的可靠性,而且使演算法處理更加簡單有效。
加上前面的650nm虛擬鍵盤雷射元件
,總共也就花了100塊錢左右。
25mw 808nm-810nm 紅外一字線雷射器 雷射頭
紅外一字線雷射器
順便說一句,本文中的攝像頭放的位置只能捕捉到部分鍵盤影象,所以demo只是演示了部分鍵盤的按鍵。
不過絲毫不影響原理介紹。如果要獲得全部鍵盤影象,或者去買乙個廣角的攝像頭,或者把這個攝像頭位置提高,不是什麼難事。
時間有限,不想折騰了。
雷射投影鍵盤
**:
那些年 乙個文科男對理工男的逆襲,震驚了!
那些年 作為乙個文科男,我已經記不住到底是什麼時候愛上文字的,只知道敲打著鍵盤,聽著熟悉的聲音,突然就覺得寂寞在寂靜的夜晚慢慢逝去。那時候起,我每天生活在研究 中,如詩人就必須寫詩,歌手就必須唱歌,那是我人生中第一次看到如此清晰的追求物件。我興奮極了,又有了初戀的感覺!我心愛的她,離我不遠了!初戀是...
技術型宅男的10宗罪(IT工程師性格分析)
摘要 在it領域,左腦型的思想者具有優勢。不過,根據alan norton的觀察,他們並非完美無缺。普通人也許會把it視為極客之家。而我則更喜歡把it看做分析型思想家的王國。分析型思想者,或者叫做左腦思想者,是直線型的思想者。邏輯而非感情統治著分析者的領地。不擅與人打交道的特殊特質使得分析型的人電腦...
技術型宅男的10宗罪(IT工程師性格分析)
摘要 在it領域,左腦型的思想者具有優勢。不過,根據alan norton的觀察,他們並非完美無缺。普通人也許會把it視為極客之家。而我則更喜歡把it看做分析型思想家的王國。分析型思想者,或者叫做左腦思想者,是直線型的思想者。邏輯而非感情統治著分析者的領地。不擅與人打交道的特殊特質使得分析型的人電腦...