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

--年--月--日 | | | スポンサー広告 | Top↑ |
「Canny Edge Detection」
(キャニーエッジ検出器)

エッジ抽出で有名な手法で、
使いたいと思ったのだけれど、
何故かGIMPとかIrfanViewとか
フリーの画像処理ソフトにあまり入っていない。

OpenCVで関数を使えるらしいのだけれど、
OpenCV自体の使い方が良くわからなかったし、
なんだか探すのが面倒になったので
自分で書くことにしました。

Canny Edge Detectionのアルゴリズムは次の手順。
STEP1:ガウシアンフィルタで平滑化
STEP2:エッジ強度と勾配方向(4方向に量子化)を計算
STEP3:細線化処理(Non-maximum Suppression)
STEP4:ヒステリシス閾処理(Hysteresis Threshold)

それぞれについてちょっと説明。

STEP1:ガウシアンフィルタで平滑化
ぼかすことでノイズの影響を減らします。

1./(sqrt(2*PAI)*s)*exp(-(x*x+y*y)/(2*s*s))
でn×nのwindow、標準偏差sで中心を原点として
フィルタの係数を計算

計算が面倒なら
5x5, s=1.4
2/1594/1595/1594/1592/159
4/1599/15912/1599/1594/159
5/15912/15915/15912/1595/159
4/1599/15912/1599/1594/159
2/1594/1595/1594/1592/159
を使えばいいかもしれない。

STEP2:エッジ強度と勾配方向(4方向に量子化)を計算
Sobelフィルタでエッジ強度の計算
水平方向:fx
-101
-202
-101
垂直方向:fy
-1-2
-1
0
0
0
-1
2
1

強度:
sqrt(fx*fx+fy*fy)

勾配方向の量子化:
tan=fy/fx
0度方向:-0.4142<tan<=0.4142
45度方向:0.4142<tan<2.4142
90度方向: |tan|>=2.4142
135度方向:-2.4142<tan<=-0.4142

STEP3:エッジの細線化処理(Non-maximum Suppression)
ぼかして太くなったエッジを細くするための細線化処理。
エッジと鉛直方向の隣接画素2つと比較し
最大でなければ0とする(非最大値抑制)

位置(x,y)のエッジ強度をs(x,y)とすると
①0度方向
if s(x,y)>s(x-1,y)&&s(x,y)>s(x+1,y)
  s(x,y)=s(x,y);
else
  s(x,y)=0;
②45度方向
if s(x,y)>s(x-1,y+1)&&s(x,y)>s(x+1,y-1)
   s(x,y)=s(x,y);
else
   s(x,y)=0;
③90度方向
if s(x,y)>s(x,y-1)&&s(x,y)>s(x,y+1)
   s(x,y)=s(x,y);
else
   s(x,y)=0;
④135度方向
if s(x,y)>s(x-1,y-1)&&s(x,y)>s(x+1,y+1)
   s(x,y)=s(x,y);
else
   s(x,y)=0;

STEP4:ヒステリシス閾処理(Hysteresis Threshold)
しきい値1つでエッジかどうか判定するのは難しいので、
しきい値2つでグレーゾーンをつくり適応的に判定する。

High Threshold(HT)とLow Threshold(LH)
の二つしきい値を与えて以下の条件でエッジどうか判定
①HTより大きいエッジ強度の画素はエッジ
②LHより小さいエッジ強度の画素は非エッジ
③LH以上HT以下のエッジ強度の画素のうちエッジに結合してる画素はエッジ

という感じ。
間違いがあったらすみません。

で、実際に処理をした画像。
元画像
girl.jpg
STEP1(5x5, s=1.4)
cStep1_gaussian.jpg
STEP2:エッジ強度
cStep2_edge.jpg
STEP2:エッジ勾配(4色塗り分け)
cStep2_direction.jpg
STEP3
cStep3.jpg
STEP4(HT=50, LT=10)
cStep4.jpg
スポンサーサイト

2009年09月20日 | Comment:1 | TrackBack:0 | | ツール | Top↑ |
【PDF Download】
・Mozilla Firefoxのアドオン
・webサイトでpdfファイルをクリックした場合に
・「ダウンロード」「PDFを開く」「HTMLで表示(PDFをHTMLに変換)」「キャンセル」
・の4つ選択を提示

ダウンロードはここから。

本来はpdfをブラウザで開いたときに、
ファイルサイズなどによって動作が遅くなったり、
フリーズしてしまうという現象を未然に防ぐための
拡張機能のようだけれども、

"PDF→HTML表示"

を選択して前回紹介したFireDictionaryと合わせて使えば、
英文書のpdfファイルを読むとき便利。

FireDictionaryはwebサイト中の英単語を、
マウスオーバーで意味をサイドバーに表示してくれる
便利なFirefoxのアドオンだけれども
pdfファイルなどをブラウザで表示させた場合は使えない。

どうにかならないかなと思っていたけれど
これで解決しました。

HTML化すれば単語の意味を表示できます。

pdfd1.jpg
pdfファイルをクリックするとこんな感じで
ウィンドウが出てきて

pdfd2.jpg
HTMLで表示をクリックすると
新規タブに表示されます。

ちなみにHTML化の完成度は
だいたい画像もちゃんと表示されますし
わりといいと思います。

古いpdfだと全部を画像として表示してしまい、
FireDictionaryが使えないみたいですが。

2009年05月11日 | Comment:0 | TrackBack:0 | | ツール | Top↑ |
【FireDictionary】
・Mozilla Firefoxのアドオン
・webサイト中の英単語にマウスオーバーで
・サイドバーに単語の意味を表示

これは便利。

アドオンを入れなくてもカーソルを合わせれば
英単語の意味を表示してくれる機能はあるけれど、
標準装備のはなかなか表示されなかったり、
正直、反応が悪くて使えない。

FireDictionaryは表示が速くて良い。

①使用画面例
fd1.jpg
カーソルが消えてしまっているけれど、
左上の"Neural"という単語にカーソルを合わせた場合。

サイドバーにはウィンドウが二つあって、
上部のウィンドウに現在マウスオーバーしてる
単語の意味が表示されます。

fd3.jpg
単語をドラッグして右クリック(または左ダブルクリック)すると、
下部のウィンドウに意味を残しておくことができます。

さらに中央のスピーカーアイコンをクリックすると、
英単語の発音までしてくれる。

ちょっと英語のサイトを見ていて
意味の分からないor読み方の分からない
単語に出会った時に簡単に調べられるのはかなり便利です。

②ダウンロード&インストール
1. FireDictionary.comダウンロードでInstallをクリック
2. GENE95(辞書)のダウンロード&ファイル解凍
3. Firefox→ツール→FireDictionary→開いたサイドバーの
"辞書のインストール"でダウンロードしたtxtファイルを指定

で使えるようになります。

ちなみに辞書インストール後、ダウンロードした
辞書ファイル(フォルダ)は削除して大丈夫です。


てかこれpdf読むときでも使えればなぁ。
英語論文とか読むときとかすごい便利なのに。

webサイトだけだとabstractしか読めない。

2009年05月10日 | Comment:0 | TrackBack:0 | | ツール | Top↑ |
複数のGmailアカウントも同時管理できるデスクトップガジェット「digsby」 - WEBマーケティング ブログ

もともとGmailを利用していたが、最近になって就職活動用にともう一つアカウントを取得した。

Gmail、Hotmail、YahooメールなどのWEBメールは、WEB上のどこからでもアクセスできるので非常に便利であるが、同一サービスでアカウントを2つ以上同時に使いたいときなど、ログインを切り替えなければならず、これが意外と面倒くさい。

解決の方法はいくつかある。例えば簡単なものをあげると、
1. 別々のブラウザでログインする
2. ブラウザのアドオンを利用する

1は単純に一つのアカウントをFirefoxでログイン、もう一つをIEでログインするという方法。2はFirefoxならGmail Manager、IEならGMail Switcherなどの拡張機能を利用するという方法である。

どちらもブラウザを開かなければならない、というのがまた面倒。

二つアカウントを取得する以前は、「Gdow」をGmailの着信通知に使っていたけれど、個人的な好みを言えばGdowみたいにデスクトップで稼働しているものの方が使いやすい。

それで、
3. digsbyを使う

digsbyはIM(インスタントメッセージ)、メール、ソーシャルネットワークなど、様々なアカウントを一括管理できるソフトフェアで、ダウンロード、インストールして簡単なユーザ登録をすればすぐに使える。以下のアカウントに対応している。

IMアカウント
* Googleトーク
* Yahoo!チャット(USA)
* AIM
* MSN
* ICQ
* Jabber

メールアカウント
* Gmail(複数アカウント同時ログインも可能)
* Yahoo!メール(USA)
* Hotmail
* AOL/AIM Mail
* POP Mail(通常のEメール)
* IMap Mail

ソーシャルネットワーク
* Twitter
* Facebook
* Myspace

複数のGmailアカウントを同時に登録することも可能で、二つ登録するとこんな感じ。
digsby.jpg

MSNなどを登録すると上のスペースにアカウントが表示される。
タスクバーにはメールアカウントごとにアイコンがアイコンが表示され、メール着信をポップアップで知らせてくれる。

digsby_taskber.jpg

アイコンが増えるのはちょっと邪魔だけど、まぁシンプルだし許せるかな。

ちなみにMSNは日本語がきれいに表示されず見にくかったです(変更できるのかもしれないけど)。インスタントメッセージのインタフェースも違うので、あまりお勧めはしません。



2008年08月31日 | Comment:2 | TrackBack:0 | | ツール | Top↑ |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。