プログラムdeタマゴ

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

2011-01-01から1年間の記事一覧

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+GLSLによる画像処理プログラミング―「OpenGL」と「シェーダ言語」で「レタッチ・ソフト」の仕組みを知る! (I・O BOOKS)作者: 酒井幸市出版社/メーカー: 工学社発売日: 2009/11メディア: 単行本購入: 3人 クリック: 10回この商品を含むブログ (6件) を…

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

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とかで画像を表示するときみたいな画像ビューアを作ったのをネタに…

おまけのおまけ:複数人数で条件分岐せずにじゃんけんできてた

ちょっと前にじゃんけんプログラムをポリモーフィズムも条件分岐も必要なしに書けるよ、という記事を書きました。ジャンケンプログラムにポリモー…?何それおいしいの? そのおまけとして複数人数の場合どうするか、と言う記事で、引き分けの場合だけは条件…

HSVカラーピッカー用の画像の生成

今回の話で作ろうとしているのはこれ↓の真ん中の四角いところ。 (saiのキャプチャ) これをある原色(H=h,S=1,V=1)の色の上に一枚のグレースケールの画像を重ねて表現しようという、よくある一般的な話です。てか、誰かこれ文章化しておいてくれても良いん…

AffinTransform

いっつも分からなくなるのでメモ。 A = A×Bにしたいとき A.concatenate(B) A = B ×Aにしたいとき A.preConcatenate(B) Rθをθ(rad)の回転行列とする A = A×Rθとしたい場合 A.rotate(θ) A=Rθ×Aが欲しいとき 手段無し。 (A.preConcatenate(AffineTransform.get…

高速フーリエ変換(FFT)の解説。実装編

前回のソース2を再帰呼び出しからループに変換してみる。例えば前回のように2097152個のデータを突っ込むと21階層もの再帰呼び出しになる。したがって、これをループに変換するってのは重要なことだ。

高速フーリエ変換(FFT)の解説。理論編

私はあまり画像を波長空間でフィルタリングとか言うことをやらないので、実のところ、今までFFTどころか離散フーリエ変換(DFT)すらしたこと無かった。というわけで、ちょっと調べてみたのでまとめてみようと思う。かなり長い記事になるよ。

ジャンケンプログラムにポリモー…?何それおいしいの?

昨日の晩、私の先輩が突然、ジャンケンプログラムをJAVAでつくる課題が出たけどわからんから教えてとやってきました。 あ、先輩、ごちになりました(m __)m まぁ、課題の言わんとしていることは分かるんですよ。言わんとしていることは。 だからセオリーに乗…

おまけ:複数人数のじゃんけんプログラム

ググってみたら、意外にも数式だけで一気に勝利判定してしまうような記事は見当たらなかった。というわけで、おまけで複数人数の時はどうするかです。 といっても、流石に今回は引き分けか、それとも勝負がついたかで処理が異なるので1度条件分岐せざるを得…

画像のデータを格納する型は何が良い?

私は画像処理屋なのですが、ハードウェアに頼らず、Java側で画像処理をするとき漠然と「8bitならint型に詰め込む、16bitならlong型に詰め込む」とやってきていました。それってどれほど正しいのか?というわけで、ふいに思い立ったので計ってみた。 後述する…

読み込み中の画像を表示させる

↑というのがググっても出てこなかったのでやってみた。 Toolkit.createImageやApplet.getImageなどで画像を読み込むと非同期で読み込んでくれる。 この読み込み状況はGraphics.drawImageやImage.getWidthなどを呼び出して、ImageObserverを登録することで逐…

CakeFileの使い方 -CoffeeScript-

CoffeeScriptはMakefileの様な機能を提供しています。 それがCakefileです。 Cakefileの文法はCoffeeScriptと全く同じなのでMakefileの様に新たな記述ルールを覚えないといけない、ということがないのでその分は楽です。 なお、基本的にWindowsユーザー向け…

パッケージ外では実装できないインターフェースがあったらなぁ

インターフェースが無修飾関数を宣言できない点はJAVAのいけてない点の一つだと思っている。 もちろん、インターフェースは宣言された関数が実装されていることを保証するための物だから、そのインターフェースで宣言された関数は全てに見えなくてはならない…

GeneralPathとPathIteratorの諸注意

去年の10月に書いた記事マウスをShape(PathIterator)の形にドラッグ(移動)させようでNI-Lab.さんの記事をdisったら、まさか本人さんからうんこ喰らえやゴルァと………、すいません、嘘です 別にCloseするときに移動しなくても正しい結果出てね〜、と言われ…

いつかこうなったらいいなぁ…

コメントを残してきて、ふと思ったのでメモ。 Javaにはオートボクシングという機能があります。 私的にはJavaの失敗の一つだと思っていますけど。 オートボクシングは非常に中途半端なのです。 私はプリミティブか、ラッパークラスのどちらかを無くすべきだ…