あぷらなーと


あぷらなーとの写真ブログ
by あぷらなーと
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
あぷらなーと
「自然写真大好き」
HNあぷらなーと が

いろんな写真ネタを
のんびり語ります。

気合い入れすぎると
続かないので、
「ぼちぼち」いきます。

生息地:香川・徳島
カテゴリ
最新のコメント
定年前に辞職して母の介護..
by オヤジ at 05:51
こりゃまたスゴそうなプリ..
by kem2017 at 05:21
> Gさん 「ディープ..
by supernova1987a at 10:56
> オヤジさん おお、..
by supernova1987a at 10:51
いやはや、セットで5、6..
by G at 16:18
閃いたんですけど、残念で..
by オヤジ at 11:18
> にゃあさん 最..
by supernova1987a at 10:02
> オヤジさん は..
by supernova1987a at 10:00
そんな名機だったとは! ..
by にゃあ at 08:46
難しいことは、全然だめで..
by オヤジ at 07:41
以前の記事
お気に入りブログ

晴れない夜は基本の復習⑧

★「Delphi日和」の顛末

悪天候のため、まったく写真が撮れないのを逆手にとって「Delphi日和」と位置づけた休日ですが、結局丸一日Delphiと格闘するハメになりました。はい。例のASI1600MC-COOL様の画像処理ソフト『開発ごっこ』です。RAWファイルのヘッダを読み込み、撮像データを引っ張り出すところまでは良かったのですが・・・・・・・。


★感覚が鈍ってるのにも程がある

しかし、苦戦しました。なにがって・・・それはもう、酷い有様。
とにかく自分が『完璧な』素人に戻っているのを感じて、自己嫌悪。

<トラブル①>
EAccessViolationで落ちまくる!
昔は良く目にしていたんですがねぇ。思い出せませんでした。今回のケースは確保した配列の要素数を超えるデータをロードしようとしたのが原因。

<トラブル②>
stack overflowで落ちまくる
これは、一般のアプリでも見かけますよね。要するにメモリが不足してるんですが、今回の場合はDelphiの配列に割り当てられるメモリの上限を変える方法を思い出せずに悪戦苦闘していたという顛末。なにしろ、4656×3520の巨大データですものねえ。

<トラブル③>
いくら頑張ってもRAW画像が変!

こればっかりは教則本がありませんので自力で考えるしか無かったのですが、思いついたロジックがことごとく玉砕。

ちなみに「初歩的」なところでは、

 ☆2バイトのバイナリデータを整数値に変換する方法が思い出せない
 ☆データストリームから各個データを読み込むためのバッファーをバイト型で宣言してたのに、その上限を超えるようコーディングしていた
 ☆計算上の要素数と実際の画素数のズレを見逃していた

という燦々たる有様でしたが、とにかく強敵だったのが、「ところどころ階調が反転して見える」という怪現象でして・・・。結局、犯人は(うすうす感じてはいましたが)ヘッダに記録されている「BZERO=32768」なるパラメータの意味するところ。要するにASI1600MC-COOLは12ビットで記録したデータを16ビットで記録しているので、残りの4ビット分の『空白』がどうなっているのかという問題です。結論として、1画素につき2バイトで記録されている各画像データの上位バイトに80が加算されているのが犯人でした。16進で8000=32768ですものねぇ。

★苦節15時間の結果・・・
f0346040_00000847.jpg



・・・ついにっ
f0346040_23491586.jpg
ASI1600MC-COOLのRAWデータから、
ベイヤー画像を取り出すことに成功っ!!

うひゃー。疲れた

これで、『敵の城門』を突破したことになるので、
あとは、いかようにも料理できますね。

なんか、ちょっとやる気が出てきた♪

あ、M42の画像が鏡像になっているのは、ご愛敬。
・・・もう、ディスプレイのY座標は上から下に計るっていう「基礎中の基礎」すら頭から消えてたという(笑)。ま、後からどうにでもなります。

by supernova1987a | 2016-09-19 23:53 | 天体写真 | Comments(9)
Commented by けむけむ at 2016-09-20 05:08 x
素晴らしい!
色々悩んだとき、メジャーな言語だと、ググればそこそこ情報ありますが、マイナーな言語だと、自力で解決でしょうから、すげー難儀なような...
次に何がおきるのかワクワクです (^o^)
Commented by らっぱ at 2016-09-20 13:56 x
「すげーっ」としか言いようがないです(私の場合)、けむけむさんも分かっているらしいのがやっぱすげーっ(^_^)v

あぷらなーとさん、これが終わったらASIの画像にキャノンのデーターを入替えてステラショットでASIの画像が使えるようにして貰えませんか?、あぷらなーとさんなら出来そうな気がする(^_^)v
Commented by けむけむ at 2016-09-20 19:16 x
おお、らっぱさん、かっけー。
ASI1600をCanonのカメラとしてエミュレート(?)しちゃうんですね
仮想化デジカメとか、新しい用語と市場が出来そうなアイデアですねぇ~
Commented by supernova1987a at 2016-09-20 23:35
> けむけむさん
本当に難儀してます。昔は沢山情報がヒットしたものですがねぇ。そもそもdelphi7が64bitネイティブやマルチコアに対応してない時点で終わってるのですが、ま、今回は遊びなので、これでよしとします。ともかく一歩前進です。
Commented by supernova1987a at 2016-09-20 23:42
> らっぱさん
お、面白そうなんですが、コレは私には無理ですねぇ。大昔からハードウェアの制御が苦手だったもので、学生時代の天文研究もデータ解析とシミュレーション専門でした。誰かやってくれないですかねえ。ラズパイあたりを間にかまして、ソフトから見るとまるでデジタル一眼レフのように見えるなんていう大技♪
Commented by にゃあ at 2016-09-21 01:56 x
まだまだ理解がおよびませんが、この連載を読んでいるうちに、なんとなく、ちょっとずつ撮像の原理が分かってきたような気がします。来週の回も楽しみにしています!
Commented by supernova1987a at 2016-09-21 03:58
> にゃあさん
暖かいコメントありがとうございます。今回の『開発ごっこ』を通じて、ステライメージなど市販ソフトのすごさを再認識してます。ちなみに、最初ベイヤーデータの表示処理をさせるだけで約70秒も時間がかかっていたものを13秒にまで縮めましたが、ステラなら一瞬で処理されちゃいますものねぇ。敵わない・・・。でも、次回の更新では、ステラにはできない事を1つやってみせる「つもり」です。
Commented by にゃあ at 2016-09-21 21:30 x
ステラにない機能、期待しています! こういうところに革新の芽があるんでしょうね!
Commented by supernova1987a at 2016-09-22 02:38
> にゃあさん
作業は進みませんが、ASI1600mc-coolの動作内容について生データを直接的叩いてみた結果、かねてかからの疑問、氷解したかもです。そのうち詳細を記載しますね。
名前
URL
削除用パスワード
<< ASI1600MC-COOLの謎① 晴れない夜は基本の復習⑦ >>


タグ
最新の記事
記事ランキング
ファン
ブログジャンル
画像一覧
外部リンク