ハフ変換

ruby-opencvでハフ変換をして、画像の線分抽出をする。 require "opencv" include OpenCV original_window = GUI::Window.new "original" hough_windowS = GUI::Window.new "hough(standard)" hough_windowP = GUI::Window.new "hough(probabilistic)" img =…

シングルプレーンの取り出しとマージ

OpenCV 2.4.11(VS10), ActiveScriptRuby 2.2(32bit), ruby-opencv-0.0.14RGB画像から、Gプレーンのみ取り出し、RとBをゼロで埋めた画像を作成したいのだけど、感覚的に書いたコードだとエラーが出る。b,g,r = img.split b2 = IplImage.merge(b) g2 = IplImag…

GalaxyNote3 をPCからUSBカメラとして使う

今手元にあるPCにはカメラが付いていない。 なので、Androidスマホである GalaxyNote3 をUSBカメラとして使えるか試してみる。『Androidスマホ内蔵カメラをパソコン用の「Webカメラ」として使おう:「DroidCam」(開発者:Dev47Apps)』 http://pc.nikkeibp.…

ruby-opencvでマウスイベント処理

require 'opencv' include OpenCV w = GUI::Window.new("w") img = IplImage.new(340, 200, CV_8U, 3) img.fill!(CvColor::White) # 真白に塗り潰す # p = nil opt = {:color=>CvColor::Green, :thickness=>1} w.on_mouse do |m| # 左クリックで線を太くする…

ruby-opencvで図形描画

require 'opencv' include OpenCV w = GUI::Window.new("w") img = IplImage.new(340, 200, CV_8U, 3) img.fill!(CvColor::White) # 真白に塗り潰す # img.line!(CvPoint.new(10,140),CvPoint.new(330,190), {:color=>CvColor::Red,:thickness=>4}) img.rect…

ruby-opencvでカラーチャネルを分離したり

splitでblue,green,redを分離できるのだけど、シングルプレーンからIplImage.merge(blue,green,red,nil)とかしても、BGR画像を復元できない。 何故?? require 'opencv' include OpenCV captureDevice,mode = 0,nil if ARGV.size > 0 captureDevice = ARGV.sh…

ruby-opencvで色々なフィルタを試す

カメラで絵を取り込みながら、或いは動画を再生させながら、キーを押して、色々なフィルタを試す。 require 'opencv' include OpenCV captureDevice,mode = 0,nil if ARGV.size > 0 captureDevice = ARGV.shift captureDevice = captureDevice.to_i if /^\d$…

ruby-opencvでのROIの操作

OpenCVには「ROI」(Region Of Interest:注目領域)という概念があり、画像に対してこれを設定すると、その領域に対してのみ種々の操作が行なわれる様になる。ROIを設定している状態で画像を描画させるとROIの部分のみ描画されるし、copyを行なうとROIの部分の…

irbからOpenCVを叩く

irbを使うとObject.methodsでメソッド一覧も確認できるし、フィルタの効果の確認とかもすぐできるし便利。 irb(main):001:0> require 'opencv';include OpenCV => Object irb(main):002:0> img=CvMat.load("Tulip.jpg") => #<OpenCV::CvMat:0x7d2080> irb(main):003:0> w=GUI::Window</opencv::cvmat:0x7d2080>…

ruby-opencvでキャプチャ動画を保存

引数指定したデバイスorファイルを動画保存する。 require 'opencv' include OpenCV captureDevice = 0 if ARGV.size > 0 captureDevice = ARGV.shift captureDevice = captureDevice.to_i if /^\d$/ =~ captureDevice end win = GUI::Window.new("win") cap…

ruby-opencvでtrackbarを使って色々なパラメータを試す

Cで書くよりrubyで書いた方が、トラックバーも簡単に使える。 require 'opencv' include OpenCV inp_win = GUI::Window.new('Input') out_win = GUI::Window.new('Output') filename = ARGV.shift inp_img = CvMat.load(filename) inp_win.show inp_img out_…

ruby-opencvでカメラキャプチャして画像加工

require 'opencv' include OpenCV win = GUI::Window.new("win") cap = CvCapture.open(0) mode = nil loop do out = img = cap.query next unless img case mode when 'c'; out = img.BGR2GRAY.canny(120,200) end win.show out key = GUI::wait_key(100) i…

ruby-opencvで動画ファイル再生

『Class: OpenCV::CvCapture ― Documentation for ruby-opencv (0.0.14)』 http://www.rubydoc.info/gems/ruby-opencv/OpenCV/CvCapture require 'opencv' include OpenCV vid = CvCapture.open(ARGV.shift) win = GUI::Window.new('win') printf("%d x %d, …

ruby-opencvのサンプルソースとか

ruby-opencvの残念なのは、ドキュメントとか情報が少ないところ。 でも、標準添付の examples だけでも実は結構情報がある。一通り眺めるだけで、かなり色々できる。 irbから動かして、どんなメソッドがあるか調べることもできるし…で、ドキュメントを充実さ…

Windows7にruby-opencv環境のセッティング

色々調べたりトライしたりした結果、Windows7では32bit/64bitによらず下記の環境が一番良さそうなことがわかった。 OpenCV-2.4.11 Microsoft VisualStudio Express 10 ActiveScriptRuby 2.2(32bit版) cygwin ruby でビルドする方法もあるが、パッチを当てる…

シーケンス図をテキストで出力する

PlantUMLをインストールしてみたのだけど、シーケンス図をテキスト形式で出力時に、日本語が含まれると表示がずれる。 まあ大抵の場合png出力で確認するとはいえ、なんか微妙にはがゆいので、日本語専用でPlantUMLのシーケンス図を出力するスクリプトを書い…

cygwin ruby1.9.3 と win32-clipboard-0.5.2

cygwin Ruby1.9.3 環境に win32-clipboard を gem install してみたんだが 日本語の出し入れができなくなってる。で、とりあえず動作する様にしてみる。/usr/lib/ruby/gems/1.9.1/gems/win32-clipboard-0.5.2/lib/win32/clipboard.rb --- clipboard.rb.org 2…

1.7.5のLANGまわりの挙動が変

久し振りに cygwin のバージョンを上げたら、挙動がおかしくなった。どうも、内部的に扱う文字列を勝手に UTF-8 に変換かけてるっぽい。LANGを設定してなかったら勝手に LANG=C.UTF-8 に設定して、Windows内で標準で設定されているエンコーディングの文字列(…

iecache

C

IEのキャッシュ情報をテキスト形式で取得して抽出/定型処理したいなーと思いコマンドラインツールを作ってみる。調べたら、WindowsAPIで、以下の様に使用できるらしい。1. まずFindFirstUrlCacheEntryA()をコール。 2. FindNextUrlCacheEntryA()を呼び続け…

skkimeでskk-todayをカスタマイズする方法

skk

WindowsXPの場合。1. コンパネ『地域と言語のオプション』開く。 2. 言語タブの『詳細』を開く。 3. 『テキストサービスと入力言語』で設定タブの『インストールされているサービス』で『SKKIME ver.1.5』を選択し、『プロパティ(P)』を開く。 4. 『C:\Docum…

DOS窓を出さずにCLIコマンドを実行する方法。

cli

(1) cygwinのrunコマンドを使う。 run cp foo foo2みたいな感じで。(2) WSHのRun()を使う。 Set ws = WScript.CreateObject("WScript.Shell") ws.Run "cmd /c cp foo foo3",0,0…ところで、VBS(WSH)で wsh という変数名が使えなくなったのって、いつからだろ…

スタートアップから起動しようとすると cyglaunch が起動しない…

スタートアップフォルダにつっこんで、PC起動時に cygterm (teraterm) を起動しようとすると「接続できません」とか出て起動に失敗する…どうやらスタートアップフォルダから起動する場合、cygrunsrvとかcygserverとかの起動が終了してないからみたい…うーむ。

cygterm用metax設定

cyglaunchを使えば、フツーにスタートアップに登録して TeraTerm の cygwin ウィンドウを起動できて、rxvtよりも快適に使えることを確認した。…ので、スタートアップには cyglaunch.exe のショートカットを置いておき、 MetaX 的にも、cyglaunch前提で色々記…

cygterm

cygwin用の terminal としては長らく rxvt を使っていたのだけど、ふと teraterm (cygterm)を使ってみて、こちらの方が快適なことを発見。デフォルトの terminal としてこちらを使用することにする。rxvtと比較した場合のteraterm(cygterm)の長所/短所。【…

zipgrep.rb

#!/usr/bin/ruby -Ks # -*- coding: shift_jis -*- P={#[Prefectures] '0'=>'愛知県', #..snip.. 'wc'=>'z邑智郡邑南町' } def get_prefs(firstChar) open(firstChar) do |f| cities = [] f.each do |l| a = l.split(/,/) cities << a[1] end prefs = [] cit…

ハイパーリンク設定が有効にならない…

Ruby から win32ole で Excelファイルを弄り、ハイパーリンク設定をして保存するも、ハイパーリンクが有効にならない…ということで悩む。今迄フツーに Hyperlinks.Add()でハイパーリンク設定できてたのに… $xl = WIN32OLE.new("Excel.Application") wb = $xl…

今日からはてな市民になったらしいのだが…

何か変。「新しいエントリー」のメニューが消滅したり、日記を新規で書こうとしたら、前日の日記が挿入されたり。 何が起きてるんだ…

郵便番号リストをDLして眺めていて驚いた

最初の一桁目で都道府県をリストアップすると以下の様になる。0 : 岩手県,北海道,秋田県,青森県 1 : 東京都 2 : 東京都,神奈川県,千葉県 3 : 茨城県,栃木県,群馬県,埼玉県,新潟県,長野県 4 : 愛知県,三重県,山梨県,静岡県 5 : 岐阜県,京都府,兵庫県,三重県,…

郵便番号表

http://www.post.japanpost.jp/zipcode/dl/kogaki.html郵便番号/住所の全国データをDLしてみる。こんな感じ↓。 01101,"060 ","0600000","ホッカイドウ","サッポロシチュウオウク","イカニケイサイガナイバアイ","北海道","札幌市中央区","以下に掲載がない場合",0,0,0,0,0,0 01101,"064…

Qt Embedded によるボタンメニュー

昔、Windowsでも動く様に、Qtでも動くバージョンを作っていた気がする…Qt と QtEmbedded 、色々違うんだよね… def select_qt(&block) require 'qte' require 'qpe' @a = Qpe::QPEApplication.new([$0]+ARGV) @a.setDefaultCodec(QTextCodec::codecForName("u…