思いつきメモ
3Dのリンク
またメモ。
一般
http://www.ceres.dti.ne.jp/~ykuroda/oyaj/bone/basic3d.html
http://www012.upp.so-net.ne.jp/flab/3d/
http://www.mech.tohoku-gakuin.ac.jp/rde/contents/course/robotics/coordtrans.html
OpenGL
http://verygood.aid.design.kyushu-u.ac.jp/opengl2005/index.html
Cプログラムのコールグラフ作成
Cのライブラリの動作の解析のためのメモ
参考リンク
共有オブジェクトのプロファイリング
gprofでコールグラフ
デジタルズーム(2)
前回の続き
前回はバイキュービック関数から、画素補間に使用する係数をどのように求めるのかということを記述しました。
今回は、「画素補間に使用する元画素をどのように求めるのか」ということについて記述します。前回と同じように、ズーム前の画素がd0,d1,d2,d3,...と並んでいるとします。すると、ズームのために参照する画素としては、1倍(ズームなし)の場合は、最初はd0,d1,d2,d3、次はd1,d2,d3,d4、その次はd2,d3,d4,d5、...以下同様となります。これは当たり前ですね。
次に2倍の場合は、最初はd0,d1,d2,d3、次もd0,d1,d2,d3、その次はd1,d2,d3,d4、その次もd1,d2,d3,d4 ...
デジタルズーム
画像のデジタルズームの方法について
きれいに画像を拡大するためのアルゴリズムとしてよく用いられるのはバイキュービック法というものです。それを実際に実装しようとしたときのメモです。
バイキュービックの係数の使い方
ここを初めとしていろいろな場所でバイキュービック関数というのが取り上げられていますが、関数だけ見せられても??となってしまいます。説明を試みてみたいと思います。
まず、ここでは、バイキュービック法でズームをするという場合、4x4のオリジナル画像を使用し、その16画素を元にして、新しいズーム後の画素値を計算する、ということを前提とします。そのとき、ズーム後の画素値は、要するに4x4の画素のそれぞれに重みを乗じて加えることによって得られます。その重みの係数をバイキュービック関数というのが決定しています。
まず、1次元だけを考えてみます。例として、2倍のズームをするとします。補間元となるオリジナル画像が、左から順にd0,d1,d2,d3と並んでいるとします。すると、d1,d2の間で2つの補間画素を求めることになります。初めの補間画素は、実質d1となります。2番目の補間画素はd1とd2のちょうど真ん中にあると考えるわけです。すると、その画素からd0までの距離は1.5、d1までの距離は0.5、d2までの距離は0.5、d3までの距離は1.5となります。それで、これらの距離を先ほどのURLにあるグラフのx座標とし、対応するyの値を係数とするわけです ...
ZFSでのCIFS共有
Windowsで使用するファイルなども含めて、すべてのデータはこれまでLinuxで管理
してきたが、Solarisに心惹かれるものがあるので、数年ぶりに環境を移行した。
使用したのはOpenSolaris 2009.06で、もちろんZFS!最近ファイルシステムが一杯になってきていたので、これで一安心。いくらでもディスク追加ができるのは素晴らしい。
でも早速CIFSでWindowsからファイルを共有するのにつまづいた。共有を有効にすること自体は、
http://blogs.sun.com/timthomas/ja/entry/opensolaris_cifs_%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B0%E3 ...
SOPC BuilderにてSRAMを使う
めも。
QuartusIIのSOPC BuilderでSRAMを使いたい。QuartusIIにはCypressのコンポーネントが付いているが、ビット幅などが使用したいものと違うので、コンポーネントを作成する必要があった。
Component Editorを起動してAvalon-MM Tristate Slaveをテンプレートから作成すると、とりあえずコンポーネントはできるものの、NIOSIIのメモリとして使用できない。調べた結果、(コンポーネント名)_hw.tclにある、isMemoryDeviceというのを、"false"から"true"にすればOKであると分かった。
CLSQL実験(3)
CLSQLを使ったWebアプリの実験の続き。
前回で、なんとなくCLSQLのリーダマクロが動作していないのでは??ということで終わってしまったが、結論からすると、リーダマクロは動作していた。
(setf hunchentoot:catch-errors-p nil)
をtop.lispに追加して実験してみたら、
debugger invoked on a FLEXI-STREAMS:FLEXI-STREAM-ENCODING-ERROR in thread #
#\KATAKANA_LETTER_SI is not a LATIN-1 character.
というようなエラーがブラウザからのアクセス時に表示されたので、FLEXI-STREAM-ENCODING-ERRORあたりでググってみたら、
(setf hunchentoot:hunchentoot-default-external-format :UTF-8)
すると良い、という情報を発見。これをtop.lispに追加してみたら、見事に動作した。
まだCommon Coldの継続機能は動作していないものの、とりあえず一安心。
CLSQL実験(2)
CLSQLを使って、Webアプリを作るという計画。hunchentoot, common-coldというライブラリを使ってみる。
何となくできそうだが、うまく動かない。コードは次のような感じ。
-----top.lisp-----more…
(require :asdf)
(push #P"/home/aaaa/bin/" asdf:*central-registry*)
(asdf:oos 'asdf:load-op 'common-cold)
(asdf:operate 'asdf:load-op 'clsql)
(asdf:operate 'asdf:load-op 'clsql-mysql)
(asdf:operate 'asdf:load-op 'clsql-sqlite3)
(load "kaimonoweb.lisp")
(hunchentoot:start-server :port 9877)
-----------kaimonoweb.lisp----------
(cl:in-package "COMMON-COLD ...
CLSQL実験(1)
SQLite3を使ったCLSQLの実験。買い物を整理するデータベースのつもり。クラスを定義する
more…
(clsql:def-view-class Kaimono ()
((id :accessor id-of :db-kind :key :db-constraints :not-null :type integer :initarg :id)
(cost :accessor cost-of :type integer :initarg :cost)
;; (date :accessor date-of :type clsql:date :initarg :date) ;; SQLite3 はDATE型がない!!
(date :accessor date-of :type clsql:date :db-type "integer" :initarg :date ;; INTEGERで保存して、DATE(MJD)に変換する
:db-writer clsql ...
ATOK2008
久しぶりに一太郎を買ってみた。正確にはJUST Suite 2008を買ってみた。
結論としては、なかなかよい。近頃はずっとMS-IMEばかり使っていたが、
望みの変換結果を得るために、無意識のうちに変な文節の区切り方をすることが癖になっていたことが
わかる。ATOK2008だとそのようなストレスはかなり軽減されている。
それと、一太郎のアウトラインモードも結構使いやすい。見出しレベルに応じてスタイルを設定できるのも
便利。もっとも、このような機能はWordにもあると今更ながら調べてみてわかったけれど。