読者です 読者をやめる 読者になる 読者になる

プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

画像処理を始めよう ー特徴量2 SIFTー

今回はDavid Loweが1999年に提案したSIFTについて話していきます。今更、SIFTなんて解説してもそこらにいっぱい解説あるんだからと思うかもしれませんが、まぁ、マッタリ行きましょうや。なお、SIFTには特許があるので使用時には気をつけて下さい。また、オ…

画像処理を始めよう ー特徴量1 コーナー検出ー

分散の話書くとか言っておいて、面倒くさくなって放置してた。とりあえず、基礎はいいや、ということで、すっ飛ばして特徴量の話をしていくよー。ここに書いてく話はすでにPDFに一回私が雑にまとめた内容をリファインしながら書いていくつもりだけど、そのPD…

TeXの「^^」について半分分かった

TeX

「^^」ってGoogleとかで検索できないから、正直諦めてたんですが、偶然資料見つけました。TeXbyTopic クヌース氏のソースコード読んで何とかならないかなーとか思ってたんだけど、そもそもPascal知らないのに、さらに文芸的プログラミングを解読するとか、糞…

TeXの^^の謎が分からない

Latexライクな処理系Lamuriyanの制作はどうなっているのかというと、0から作り直しています。何せマクロの引数?何それ?な人が作り始めたのです。当然、後から後から知らなかった事柄付け足すはめになりますよ。結果として、もうコードがごっちゃごちゃの酷…

Real AdaBoostについて

画像処理の話でAdaBoostについて解説も真ん中ぐらいでしようと思っていたけどReal AdaBoost*1をやったので、忘れないうちにメモ。AdaBoostは知っている前提。順序?HP作ったときに綺麗にまとめるから良いんだょ!(たぶん AdaBoostとの違い AdaBoostの弱識別…

画像処理を始めよう -行列の基礎-

さて、どれほど根性続くかわからないけど、いままでブログに書いてきた簡単な画像処理の話じゃなくて、もっと専門的な画像処理の話を書いていこうと思う。というのも、私来年から画像処理屋じゃなくなる予定なので、今のうちにまとめとかないとわからなくな…

JavaFXで柔軟なキーバインドを作ろうとしたけど挫折した話

動機と目的 みなさんはキーボード何使ってますか?私は東プレのRealForceを………という話ではなくて、JISキーボードですか?USキーボードですか? US!US!なギーク(笑)には関係ない話ですが、私はJISキーボードです。前の研究室はUSキーボードだったので両方…

JavaFXのControlとSkinとControllerと

前回のダイアログの話の続きです。前回はダイアログを表示するための機構を作りました。今回はそのダイアログに表示する中身を作っていこうと思います。 単純なダイアログって、「ダイアログのタイトル」「メッセージの詳細」「Cancel,No,Yesボタン」から構…

JavaFXでのダイアログ作成

だいぶJavaFXが分かってきたので、ちょいとまとめ。 JavaFXでダイアログ表示するのって面倒くさいな〜って思って、自分で使う分には簡単に作れるようなAPIを整えていました。単にダイアログって言っても、ウィンドウ形式でポップアップするダイアログの他に…

Javaでマルチスレッドするときの注意をまとめてみた

数年ぶりとかいうレベルでJavaのスレッドに触ったもんだから色々忘れてたので、忘れてたことまとめておく。 ダブルチェックロッキングパターンって何でダメなんだっけ? Javaではダブルチェックロッキングパターンって場合によってはクリティカルにヤヴァい…

プログラミングをするときどう思考するべきか考察してみた

後輩からプログラムを書くとき、アルゴリズムはわかってもプログラムに直すことが出来ない、for文やスタックなどをどう使えば良いのかわからない、難しいというぼやきを受けた。現在彼はトップコーダーにチャレンジしていて、そんな話になったのだが、その会…

IO関連実装しました

先日わっからーんと嘆いていたIO関連を\read以外とりあえず実装しました。 \immediateとか、どうしようかねーとか言っていましたが、ひとまずLamuriyanでの実装は 1.処理系のimmediateIOフラグをオンにする 2.\writeまたは\readが実行されたときにimmediateI…

TeX→HTML変換ツールLamuriyan現状報告:\write,\immediateがわからない。

時々、TeX変換ツールのWikiから人が来ているので現状報告しておきます。Lamuriyanで使うソースコードをシンタックスハイライトする為のプログラムNHLightは一応完成とし、再び開発し始めました。(まだ実は完成していないんだけど…。対応言語はJoJoに増やし…

シンタックスハイライトするプログラムをとりあえず公開してみた

Lamuriyan連携用に作っているシンタックスハイライトプログラムを公開してみました。 Ver0.1 今やSyntax HighlighterがあるのでLamuriyanで使う以外にあまり意味はないと思いますが、折角必死に整理したので公開させてください(-_-) 特徴としてはトークン単…

BufferedImageからJavaFXのWritableImageへの変換

全く別の目的でJavaFXのJavaDocを眺めていたら、SwingFXUtilsクラスのtoFXImageっていう静的関数を知りました。JavaDoc{SwingFXUtils(JavaFX2.2)} 第二引数のWritableImageはnullの場合や、渡された画像がBufferedImageのサイズと一致していない場合は新たな…

シンタックスハイライトする為のプログラム作ったった

いい加減、ntex改め、Lamuriyanなんとかしないとな〜と手を付けようと思ったのですが、その前に前々から何とかしたいと思っていたソースコードのシンタックスハイライトのプログラムの改善に手を付けることにしました。 まだ私以外の人が動かせるよう整備は…

TeXをHTMLに変換するツール作った2

まだやっておりますTeXをHTMLに変換する、なんかTeXもどきのツールnTeX Lamuriyan。今日はlabelとrefの実装が完了しました。 それと、nTeX Lamuriyan仮本部の数式の説明を充実させました。 まぁ、まだプログラムを他人が使えるように整備するのはまだいいで…

TeXをHTMLに変換するツールを作ってます

そろそろ、このブログの記事を整理するためにホームページでも作ろうかと思ったのですが、やたら数式とソースコード多いこのブログの記事を管理するのは骨が折れそうだ。というかやりたくない。 できれば、TeXで全部管理できればな〜。 そんなことを思って、…

JavaFXの練習5:Drag&DropでNodeを移動する

前回は欽ちゃん1号さん、コメントありがとうございました。返信が遅くなったことをお詫びします。 さて、今回はDrag&Dropの話です。(以下D&Dと略記) JavaFX D&DでGoogle検索しても、なんか出てくるのはクリップボードを経由したD&Dの話ばっかり。私が今回…

JavaFXの練習4:レイアウトがわからない

さぁ、JavaFX2記事第4弾。ついに詰まりました。全然わかりません。誰か教えてください。 今、nodamushiがわからないこと 別スレッドで処理した内容をsetTextでLabelの内容を変えようとするとスレッドがJavaFXのスレッドじゃないとエラーになる。SwingUtiliti…

JavaFX練習3:アニメーションとか

前回の続きで今日はアニメーションについて練習しました。あと、SceneはSwingのContentPane相当だということを理解しました。 しかし、あれだね。JavaFXで3Dが使えるようになると言うことで、今のうちに覚えておこうとやっているんだけど、やっぱりJavaFXっ…

JavaFXの練習2:Controllerとか

というわけで、今回もJavaFXの練習した内容です。 今回は以下のような感じのパネルを作ってみようとしております。 画像と、ファイル名と、ファイルの説明を表示して、ボタンをクリックするとファイル名と説明部分がスライドアウトしたりスライドインしたり…

JavaFX2の練習1

JavaFX2のCSS意味わかんない。そもそも、そんなCSS得意でもないのに、普通のHTML用のCSSともなーんか全然違ってマジブッコロ。JavaFXのCSSのページまじ意味わからねーし。それぐらいならSwingでゴリるわ。とか思ってたのでJavaFX2手を出していませんでしたが…

日にち、時刻によって処理を変えるJavaScriptライブラリー書いてみた

よくある、時間帯によって処理内容を変えるJavaScriptは… var today = new Date(); var $img = $("#test");//画像のurlを変えてみます hour = today.getHours(); var url; if (hour >= 0){url = "1.jpg";} else if (hour > 5){url = "2.jpg";} else if (hour…

MathMLを試してみた

ブログの記事がばらばらになって自分で過去記事が読みにくいので、HPを作ってまとめることにしました。 私の記事は何故かやたらと数式が多いので、HP記事は全部TeXで管理することにしました。完全なTeXじゃなくて、私が使いやすいように定義したTeXライクな…

直感的に理解する拡散方程式

研究室の友人が「反応拡散系」というのがわからない、とか言っていました。反応拡散系ないし反応拡散方程式というのはその名前の通り反応方程式+拡散方程式というだけだったりします。んじゃ、反応方程式って何よ、拡散方程式って何よ、ということになります…

Skypeがポート80と443を潰してた件

ローカルサーバーを立ち上げようとしたら、どうもポート番号の衝突が起こったようで、何が原因かとみたらSkypeだった。(最近Skypeを常時待機させるようになった。) Skypeさん、あなたそんな有名な番号を何勝手に潰してくれてるの?というわけで、これはや…

PowerShellのウィンドウタイトルを変える

前に書いたレジストリの設定でPowerShellを起動するとタイトルが「管理者:C:\System.....」なんて長いことになっててなんか気持ち悪いなーと思っていた。 で、d:id:newpops:20060719 にPowerShellのウィンドウタイトルを変えることができるとあったので、レ…

1から始める流体力学〜速度って何じゃ〜

というわけで、書こうと思いつつ半年放置してしまった流体力学のお話をまとめていこうと思います。最終的にナビェストークス方程式を導くところまでやったらゴールとしましょう。 物理学と微分の基本がわかれば読めるように書くつもりです。(なので、偏微分…

Javaで始める画像処理ーフィルタをかける

もうすでに何度もこのブログでは当たり前の様にフィルタ処理〜とかたたみ込み〜とか言っていますが、今後の記事の内容のために、ささっとまとめておきます。 フィルタをかける フィルタをかける操作って言うのは、「フィルタの値×ピクセルの値」を各フィルタ…

コマンドプロンプトからPowerShellに移行する

どうもお久しぶりです。 来月の8月に、ついにFirefoxも64bit版がでるそうです。 常々、「64bit?情弱乙wwIE以外のブラウザが64bit対応してから移行するわww」とか思っていたわけで、ついに私も64bitに移行するべき時が来たようです。ぶっちゃけると、Fire…

Microsoft Arc Keyboardを買ってみた

私が選ぶキーボードの選択基準は、絶対にテンキーレスです。右側にあるテンキーは敵です。 そして、無線です。私はイラストを描く際に卓上のキーボードの位置を変更するので、線があると困ります。そのため無線がよい。あと、PS3用のキーボードが別にあって…

これは楽しい!簡単にマーブリングが作れるアルゴリズム

ちょっとタイトルを盛ってみた。というわけで、前々から一度実装してみたかったマーブリングのシミュレーションアルゴリズムを昨日一日楽しんだのでここで紹介します。 マーブリングってのは、皆さん(たぶん)ご存じの、水面にマーブリング用の絵具を垂らし…

WindowsでCoffeeScriptをインストール

情報が一ヶ月ほど遅いですが、Node.jsのWindows版バイナリがnpmに対応したようで、コマンドプロンプトからCoffeeScriptが普通に使えるようになっていました。 node.jsよりWindows版のnode.jsを入手、インストール コマンドプロンプトでnodeと打ってきちんと…

FXML試してみた

お久しぶりです。卒論で死にかけていますがひとまず息はしています。さて、JavaFXが出てから結構立ったのでそろそろ私も弄ってみようと、FXMLというXML文書でGUIを構成する機能を試してみましたところ、謎の挙動を示したのでここで報告しておこうと思います…

Java画像処理をはじめよう。初めての縮小(・∀・)

今までこのブログでも何回か拡大縮小の話が出てきたことがありますが、もう一度やっておきましょう。 今回は縮小についてです。 最も簡単な縮小処理 間引き法(最近傍法) 画像を小さくするとピクセルも一緒に小さくなってくれたら嬉しいのですが、そんなわ…

Java画像処理をはじめよう。初めての画像処理(・∀・)

というわけで、なんでか知らんけどJavaで画像を弄らんといけなくなった。手っ取り早く画像処理をしてみたい。そんな人のために書くことにしたよ。 一応シリーズにするつもり。もちろん、気が向いたときにしか更新しないけど。最終的にどこまで踏み込んだ内容…

続・JPenをアプレットで使う際の注意点

ここまでJPenの記事を書いておいたので、もののついでです。Nicolas氏から「アプレットで使う際のセキュリティーホールの問題が見つかった」との報告がありましたので、報告しておきます。日本語の記事なんて探してもここしかないからね。 Java拡張機能とし…

JPen2をアプレットで利用する場合の注意

もうちょっとだけJPenの内容が続いたんじゃよ。 タイトル通りJPenをJava appletで使いたいな、とNicolas Carranza氏(開発者)に聞きに行ってきました。 今までは、セキュリティーマネージャーに引っかかりJPenをJava appletでは動かすことができませんでし…

Javaで筆圧を取得しよう3 〜JPen〜

疲れましたが、これで終わりです。いや、もうちょっとだけ続いたんじゃよ まぁ、実装の仕方に関してはこれで終わりです。 PKindEventを処理する PKindはPButtonEventの処理でちょろっとお話ししましたが、ポインターを操作するデバイスを表しています。 これ…

Javaで筆圧取得してみよう。集まれJPanJPenユーザー

Javaで筆圧取得といえばJTabletである。文句は受け付けない。 特に日本ではほぼJTabletが主流だ。日本製のJavaペイントソフトのしぃペインターやたかみんがJTabletに対応していることが大きな理由だろう。 もっとも、これらで用いられたのは、一般人が簡単に…

Javaで筆圧を取得しよう 2 〜JPen〜

前回から続けてJPen2やっていきますよ〜。今回はレベルイベントを処理していきます。 PLevelEventを処理する レベルイベントは値が変化したときに発生するイベントです。そのとき渡されるイベントはPLevelEventです。マウスイベントに変換する際はMOVEDとDRA…

Java7のswitch(String)構文のJavaコンパイラーとEclipseコンパイラーの違い

Eclipse3.7.1が今日正式にリリースされました。これでEclipse上でもJava7構文が大手を振って使えます。 さて、Java7で投入されたswitchにStringが使えるという構文。 switch(s){ case "abc": System.out.println("ok");break; case "bbb": System.out.printl…

int,byte配列からBufferedImageを作成する

画像のint,byte配列データを直接弄りたいときは、BufferedImageの持つWritableRasterからDataBufferを取り出して、クラスによってDataBufferByteかDataBufferIntに変換し、データを取り出す。何かクールじゃないよね。BufferedImageが用意してくれた配列を私…

画像の限界の高周波って?

前回縮小の話で信号理論に基づいた話を少しだけしてみました。 実際の数値には触れませんでしたが、実際にはどの位の値が限界なのでしょうか。 べ、別に日曜日だってのに手頃に書くネタがないから話引っ張ってるって訳じゃないんだからねっ(`・д´・ ;) 1画素…

画像の縮小処理におけるエイリアスの発生とそれを抑える仕組み

OpenGL使って画像処理をしたかったので参考に買ってみた。「OpenGLとシェーダ言語でレタッチ・ソフトの仕組みを知る!」って書いてあるけど、信号処理について全く知らない人が、よっしゃ画像処理やってみようっていって読める本ではない。重要な部分で説明…

パッケージ内のクラスを取得する

JavaCompilerからJavaFileManagerを取得するやり方が簡単だ。 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaFileManager fm = compiler.getStandardFileManager( new DiagnosticCollector<JavaFileObject>(), null, null); Set<JavaFileObject.Kind> kind = new HashSet<JavaFileObject.Kind>();</javafileobject.kind></javafileobject.kind></javafileobject>…

気をつけろ、javax.swing.TimerはEDTで動くぞ!

どーもアプリケーションの応答が思わぬところで悪くなる。原因を探っていたら、なんとjavax.swing.Timerが原因だった。 javax.swing.Timerはjava.lang.Timerに比べてシンプルで使いやすいので、よく使っていたのだが、なんと、javax.swing.TimerはEDT(Event …

Java7で透明ウィンドウ、非矩形ウィンドウの作り方が変わってた。

驚きですね。なんと、 window.setBackground(new Color(0,0,0,0)); で背景が透明なウィンドウが作れるようになってました。jre1.6ならcom.sun.awt.AWTUtilitiesのsetWindowOpaqueでなんかなぁ、的な感じで透過していたのに。そのほか、ウィンドウ全体の不透…

複合長方形を長方形で分割

どうも、一ヶ月ぶりです。月に一度の更新は目指していますが、書く内容がない(もしくは、書くのが面倒すぎる)という状況だったので放置してました。いや、JavaFX2.0(beta)でiTunesとかmacとかで画像を表示するときみたいな画像ビューアを作ったのをネタに…