スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カメラからマウスを制御するプログラム

とりあえず、カメラからマウスを制御するプログラムが形になったんでプログラムをアップです。
本当はプログラムだけじゃなくて動く形でアップしたかったんですが、どうもエラーで実行できず…
プログラムだけにしました。

コンパイルできたら、動作方法としては、色1(黄色)に対応してマウスが移動します。
クリックは色1(黄色)と色2(赤色)をある一定値以上離せばクリックになります。
ダブルクリックはある一定値以上離した後、戻してから離すことが必要になります。

右クリックは色1(黄色)と色3(青色)をある一定値以上離せば右クリックになります。
なお、クリック時にマウスカーソルが移動してしまうことを防止することや、色1(黄色)がカメラの隅に来てしまって移動できない場合などに色4(緑色)を表示するとマウスの移動を禁止することができます。

もっと良いコントロール方法はないのかなぁ…。動かしずらくてずらくて改善しないと使えないですけどね。
改善方法があればコメントでもくださいな。

カメラからのマウス制御プログラムのソースコード
スポンサーサイト

画像によってマウスを制御するプログラム

とりあえず、マウスをカメラから制御しようという企みの途中報告です。


手袋なりなんなりで指先に色を付けるプランは変わってませんが(色使った方がだいぶ簡単になるからですね)
親指に付けた色をベースカラーとし、マウスの移動やクリック判断の始点とすることにしました。

クリック判断の始点というのは、親指から他の指に付いているカラーポインタがある一定距離以上離れたらクリックもしくは右クリックとしているため始点と言ってます。

うん、非常にシンプルな内容ですね。

マウスをコントロールするためのAPIの使い方を以下にメモしておきます。
SendInput関係はあんまり情報が無いから探すの大変でしたし…。
 参考文献はこちらこちらです。

簡単に使おうと思えば以下の2行で使用できます

INPUT mouse_input[] = {{INPUT_MOUSE,1,2,0,MOUSEEVENTF_MOVE,0,0}};
::SendInput(1, mouse_input, sizeof(INPUT));


説明はまず、mouse_inputに与える引数ですが、

INPUT_MOUSEはマウスをコントロールしたい場合に選択します
キーボードのときはINPUT_KEYBOARDを選択します。

次の 1 はxの移動量(dwFlagsにより絶対座標か相対座標かを決定)
次の 2 はyの移動量(dwFlagsにより絶対座標か相対座標かを決定)
次の 3 はマウスホイールの移動量(dwFlags = MOUSEEVENTF_WHEEL の時のみ有効)
MOUSEEVENTF_MOVEはマウスの動作を選択します。他には以下の動作があります。
  const int MOUSEEVENTF_MOVED = 0x0001 ; // 移動
  const int MOUSEEVENTF_LEFTDOWN = 0x0002 ; // 左ボタン Down
  const int MOUSEEVENTF_LEFTUP = 0x0004 ; // 左ボタン Up
  const int MOUSEEVENTF_RIGHTDOWN = 0x0008 ; // 右ボタン Down
  const int MOUSEEVENTF_RIGHTUP = 0x0010 ; // 右ボタン Up
  const int MOUSEEVENTF_MIDDLEDOWN = 0x0020 ; // 中ボタン Down
  const int MOUSEEVENTF_MIDDLEUP = 0x0040 ; // 中ボタン Up
  const int MOUSEEVENTF_WHEEL = 0x0080 ; // ホイール動作
  const int MOUSEEVENTF_XDOWN = 0x0100 ;
  const int MOUSEEVENTF_XUP = 0x0200 ;
  const int MOUSEEVENTF_ABSOLUTE = 0x8000 ; // 絶対座標

最後二つはタイムスタンプと32ビットの追加情報らしいのですがよくわかりません。
以下にMOUSEINPUTの中の構造体の構造を書いておきます。

typedef struct tagMOUSEINPUT {
LONG dx; // マウスの絶対/相対座標(dwFlags で変化)
LONG dy;
DWORD mouseData; // ホイールの移動(dwFlags = MOUSEEVENTF_WHEEL の時)
DWORD dwFlags; // マウスの動作を指定するフラグ
DWORD time; // タイムスタンプ。単位は ms (詳細不明)
ULONG_PTR dwExtraInfo; // 32 ビットの追加情報
} MOUSEINPUT, *PMOUSEINPUT;

ういんどうずふぉーむあぷりをがくしゅうしたぞ。

今日は図書館に画像処理関係の本(拡張実現の本)を探しに行ったら分かりやすそうなクラスについて書いてある本があったんで読んでました。

そのついでに、前からやろうと思っていたウインドウズフォームアプリケーションをやってみたわけですが

これが、この前まで意味が分からなかったのに(分かろうとしてなかったかも?)今日は大体分かって色々と画像処理関係のものを作ってみちゃいました。

これができたのも、ほとんどハッシー大先生のおかげですね!!
以前貰った色の閾値決めるプログラムを読んでイベントでプログラムを動かすっていう方法があることを勉強させていただいたからですね。

製作中のものの外見は↓見たいな感じです。右側の空いたスペースが気になるのはこれから色々と入れるかもしれないからです。
ウインドウズフォームアプリ製作中1

機能的には、まだ2値化したものを表示するぐらいしかないんですけどね…。
でもまあ、前にやったクロマキー合成を用いて2値化画像をマスクとして使ってるんで↓みたいな表示にすることができるようになりましたけどね。

ウインドウズフォームアプリ製作中2


※機能として面白かったり、使えそうな処理があったら紹介してください!!良かったら採用しますんで。
ちなみに、色の閾値を算出&設定するような処理は作る予定です。

じゃ、おやすみー
もういい時間すぎます…。

冷静に考えてみたら…

K研の別室でのんびり進路に提出する書類を書いてたわけですが。

もうじき、年齢変わるから履歴書を書き直さないとなぁなんてのんびり考えていたらニコニコの時報が流れ
もう日が変わったんだなぁーと思いながら

ふと、冷静に考えると…あれ、今日だったんじゃないっけ??

と思ったら、案の定今日でしたね。
自分の誕生日にどれだけ興味がないかが分かります。

あいかわらず誰もいない。

さっきバスで研究室に来たんですけどあいかわらず誰もいないですね。

先生がいるだけですなぁ…。

この時期の研究室は誰もいないか、遊んでるか、のんびりしてるかとかが普通ですからねぇ。
(例年ではですけど)

今年は就活なんで就活しないと!!
SPIの勉強全くしてないんでしないと!!
(残り2社とも次の選考はSPI試験なんですよ)
あぁ、怖い怖い。

奨励金の結果でましたー

今回は前回と違って、全力でもらえる方向でやってきたわけですが
(真実は言わずに事実だけを言うような感じ。詐欺じゃないけど詐欺みたいな感じです)

とりあえず、結果から言うと貰えましたよ。

でもいまいち納得はできないですけどね。
審査基準がよく分からない。

奨励金は勉学や研究を励もうという人に対して生活資金や学費等を心配しなくて良くなるように補助金を出すのが一般的だと思うけどそう思っているのは私だけなんだろうか。

体感では、親の負担を減らすために必要なんですって言えば貰える気がする…。勉学に励むかなんて一切関係ないですね。(聞かれもしなかったような…)

先輩みてても、奨励金は遊ぶための金っていう人が多いしね。うちが特殊なだけな気もするけど…。

まぁ、これで就活決まったら車でも買おうかしら。どうするかはその時にならないと分からないけど。

キモトレースON

前にやってた、黄色-赤色-青色-緑色 を認識してその順にラインをつなげるプログラムをさらにいじってみました。
今回は、前回のラインをつなげる代わりに別で撮った腕の写真をクロマキー合成で重ねて生の腕から写真の腕に差し替えるような感じのプログラムとしました。

実験風景と結果はこんな感じでしたよ。

実験風景
実験風景

実験結果1
結果1

実験結果2
結果2

いやー、画像がよくない影響で不気味なものとなりましたけど…。
各関節の角度も一致しているようだし、各関節間の距離も一致しているようだからいいんじゃなかろうか。

次回へ続く…?
次はなにをしようかねぇ。研究かねぇ。

全力じゃないのかね。

さっき研究室に行くまでバスにゆられてゆらゆらとしていたわけですが
いきなりメールが来て、内容みたらリクナビの企業からのメールということで

合否の連絡がまだ来てなかったところですね。
まぁ、見てみたらご希望に沿えないようで。。。

適性試験で落ちるなんていかがなものですかなと考えてみたら

やっぱり適性試験の対策とかSPIの対策とかほとんど全くしてないからなんでしょうかねぇ
我が社に来る気がある≒受かるように適性試験やSPIの対策している
と、いう感じですかね。

試験中にマイペースでやってたのが良くないんですかね。
全力っていうほど全力出せてないし。試験中に色々考えたり雑念の塊でしたからねw

とりあえず、もう2社は筆記の勉強しておくことにしようかな。

(残り2/4社 ふと思ったけど、先生の紹介の企業に行くのも縁があるからなんだよなぁ)

ffftpの最新版の紹介

以前から、ffftpのパスワードを抜くウイルスの話がされてましたが

今日、zawaさんにウイルス対策されたffftpの最新版が出たよと言う話を聞いて即インストールをしました。

ffftp使ってる人は更新しといた方がいいかと。


ハンクラから前貰ったやつをいじってみた。

黄色-赤色-青色-緑色 を認識してその順にラインをつなげるプログラムをいじってみました。

できたのはこんな感じ。

一回目
検出結果1


二回目
検出結果2


まぁ、できてるんじゃないんじゃなかろうか。

そういえば、「cvCopy(frame,result,0);」でコピーをしているんだけどなぜかデータが上下反転してしまう…。

原点設定はしてるつもりなんだけどねぇ…。
frame->origin = 1;
result->origin = 1;
なかのひと        
amazon        
アニソンYoutubeメドレー


presented by アニソン名曲.com

検索フォーム
カウンター
プロフィール

風草

Author:風草
なんだかんだで大学院に進学した人でございます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。