SIFT特徴量(特許1999年、David G. Loweさんによる比較的新しい画像認識手法論文)の勉強と実装によって、写真に写る星の中心座標(Keypoints)を求めるプログラムを書きました。
そして、キーポイントを求めた結果に、パラボラフィッティングを施して座標精度を高める工夫をし、星の半径も出力するようにしています。
→前ブログ(写真から星の座標を得る - プログラム公開

デジカメからPCへの星の写真の取り込みではJPEG形式が一般的ですが、これまでのプログラムではJPEG形式をそのまま入力することに対応していませんでした。BMP形式のみの対応だったのでいったんJPEG→BMP変換を別のアプリケーションで行う必要がありました。

今回は、libjpeg というプログラムを利用することによって、JPEG形式も入力ファイルとして対応しました。変更点はたったこれだけですが、入力のひと手間が省けるようになりました。
→いつものところに公開(tetraf and keypoints)、パスコードは前ブログ参照

さっそくセッピーナさんが利用してくださいました→「写真から星の座標を得る」アプリ・JPEG対応版
すばるの写真を使って keypoints の結果をGIFアニメーションにして非常にわかりやすく見せてくださってます。

入力ファイルをいったんバイナリオープンしてヘッダをチェックしているので、ファイル名の一部であるファイルタイプは信用していません^^。

省略可能な出力ファイルは相変わらずBMPファイルのみです。(出力にJPEGを使えるようにするとプログラムのサイズがさらに大きくなるので・・・言い訳。本当はさぼっただけ(^^ゞ)

keypoints_r.exe を使って出力される座標を tetraf.exe に入力すると、その写真の赤経・赤緯がわかります。
そしてSVG形式の星図も出力してくれるので、こんなコマンドで
(keypoints.ini ファイル中で # TETRA 0 にして)
$ keypoints_r.exe DSC09453.JPG > 9453_points_list.txt
(同 ini ファイル中で # TETRA 1 にして)
$ keypoints_r.exe DSC09453.JPG | tetraf.exe > 9453.txt

このDSC09453.JPG写真から(去年撮影したジャック彗星(C/2014 E2)です)


こんな図も作ることが可能になります。特に彗星は広がりが大きいので特徴量としてはオクターブが大きい(画像を縮小しても残っている特徴にあたる)ところで検出されます。


写真の特徴点の検出だけにも使えます(対象は星とは限らない)ので、遊んでみてください。