wxPythonの練習を兼ねて,簡易回折写真ビューアを作ってみた.PILおよびXIOを使用.この2つのライブラリのおかげで,画像の読み込みは簡単にできた.ウィンドウリサイズとの連動に少しハマった. http://twitpic.com/46ebh3
2011-03-05 23:28:14@kun32xu im_rawにヘッダより後を読んでから,img = Image.fromstring('F', (im_W, im_H), im_raw, 'raw', 'F;16'); img = ImageOps.invert(img.convert("L"))とやってます
2011-03-05 23:51:20@kun32xu 何も考えずに16bit -> 8bitに変換してるので,モノによってはちゃんと表示されません..これは後で直します.画像は,PILで読んだものをBitmapとして画面に貼り付けてます.
2011-03-05 23:53:03@yam_cpp おぉ。今からこれ少し勉強してみる。ありがとう。今持ってるpeak searchのルーチンをPYTHONに移植したいので数値さえとれたら色々やれることが増えるので。プレディクションやら入れれたらたのしいね。あとは軽さかな?その辺はどない?
2011-03-06 00:00:47@kun32xu まさにそれが目的ですw>prediction入れ.軽さは,表示用としてはまったく問題無く..3000x3000のイメージを使って,ウィンドウ出して速攻終了までの時間を測ると0.4秒程度ってところです.どんな測り方すれば良いでしょうか?
2011-03-06 00:06:28@yam_cpp いや、十分ですね。>speed。体感速度は一秒切るともはやわからんはず。素晴らしい。プレディクションの仕様さえ教えてくれたらこちらでも機能足せる!ひとまず例のadxvのでやってみてます。いや、やる予定w
2011-03-06 00:14:55@kun32xu 意外と速いんで自分でも驚いてます(勢いで作ったのでPILやwxの仕様を理解してないせいもありますがw).ちなみに僕はXDSの結果のファイルからprediction入れをやろうと思ってるんですが,ひ○たさんは自作のがあるってことでしょうか?
2011-03-06 00:22:52@yam_cpp 開発スピードに舌を巻きました。脱帽。最近、BLで使うためにimage選択→one buttonでDENZO autoindex -> integrateって部分を書いたのね。.xファイル(dzi)ができるのでそいつを使えばpredictionも簡単に。
2011-03-06 00:31:36@kun32xu いえいえ,ライブラリと大量のサンプルコードのおかげです.というか,ほんとに表示+センターマーク入れだけですし..ワンボタン処理,凄く便利ですね!xdispを使わずに結果を表示させるためってことですか?あとすみません,dziって何のことでしょうか?
2011-03-06 00:41:02@yam_cpp おぉ。DZIってT研ローカルのものか。ぐぐってもかからんな。denzo_ipフォーマットの反射ファイルを指してるつもり。忘れてくれー。HKL2000を起動せずにBSSの端末でちょこっとindex -> predictionができれば便利だなと。他にも目的はある。
2011-03-06 00:48:07@kun32xu なるほど,dzy(denzo_york)とdziってことですね.いちいちHKL立ち上げるのちょっと面倒ですし,BSSでちょこっと(あるいは裏で自動?imgviewに付けちゃうとかありですか?)できると便利ですね!更にStrategyも同時に出してくれたら…
2011-03-06 00:53:03@yam_cpp あ、ばれた・・・。strategyも表示する予定。てか一部完成してます>BEST部分。MOSFLMの結果も併記したいなーって思ってるところ(意味あるかって?www)。BSSとの連携も考えてはいるが次世代remote対応BSSの時にくっつけようかなと思っています。
2011-03-06 00:56:20@kun32xu 最高ですね!BESTを使ってstrategyを出すんですか?BESTは使ったこと無いので今度試してみなければ.ついでにlabelit.indexの結果も併記してくださいw remoteの話もじわじわと来てますね..ユーザが使えるのは再来年度あたりでしょうか?
2011-03-06 01:03:37@yam_cpp BESTは損傷パラメータが入れれるので不可欠要素ですね。うちのhelical scanだとBEST結果ベースでもう一工夫必要だけど。labelitも試したんだが、遅いので別口かな?メリットを語ってくれたら考えるw。BESTも遅いので(つづく)
2011-03-06 01:08:19@yam_cpp 角度範囲の条件振る部分はMOSさんが速いかなーと思ってます。これは調査中。リモートはどうなるかな。ほぼ北海道のお客様向けwのようなきがしてます。再来年は良い線の予想だと思う。
2011-03-06 01:11:38@kun32xu labelitはbeam centerのrefineもしてくれますけどBLだったら正しい値入れられますもんね(^^;あとは擬似格子並進がありそうなときに教えてくれたりします.でも確かに遅いっす.labelitに限らずlibtbx系のプログラムは特に初動が遅すぎ…
2011-03-06 01:13:58@yam_cpp なるほど多機能ですね>labelit。libtbxってそういう問題を抱えてるか。さておき納入済みの新規検出器架台により"手を抜かなければ"常に検出器中心に光軸が当たるようにできる、いやする(たぶん)!
2011-03-06 01:19:40@kun32xu 分解能がよく出るところを最小限で取るようなストラテジが欲しいですw.そういえばHKLもMOSも振動幅(Δφ)のsuggestはしてくれるんでしたっけ?
2011-03-06 01:19:55@kun32xu あ,きちんと調査したわけじゃないので偏見込みです>libtbx.でもphenix系のプログラムは総じて初動遅いですね.光軸と検出器中心が一致してると座標変換考えなくていいからラクですね!..って,さっきからラクすることばかり考えてますね..ラクさせる側でありたい
2011-03-06 01:25:45@yam_cpp 振動幅をちょくで出すのはBESTだけやと思う。DENZO/MOSは"振動幅"を入力してOverlapを見るだけ(要確認w)だと思うのでこちらで情報を変換して表示したい。
2011-03-06 01:26:27@yam_cpp BESTの条件提案は検出器読み出しノイズを可能なかぎり減らすように「最小限のフレーム数」で取る振動幅を提案してくる。なので、気がつくと2.5deg振りしてたりw。でも出力された条件を見ると"1deg"振りについてよく考えるようになりますw逆やろw
2011-03-06 01:30:32@kun32xu 取りたい分解能は指定できないんですか?2.5°振りって,ほぼどんな場合でもoverlapしてしまうような..ということは結局振動幅は「自分で考えろ」ってわけですねw
2011-03-06 01:36:03