九工大衛星開発プロジェクトBlog

北九州から宇宙を目指す学生たちのBlog。2009年の大学創立100周年を記念した超小型衛星『鳳龍』を開発中!

JPEGのデータ欠損画像の修正(Byte足し法)

お久しぶりです。TTです。
作らないといけない事がわかっていた。このプログラム。
ついに、やっと、原案が、、、できました!

『手動』画像修整プログラム

略して、SGS。

データの受け渡しの時に時々生じるデータ欠損。
(現在は訂正のなんちゃらを通信にいれているみたいでほとんど起きないみたいですが。)
鳳龍で撮影する画像は、最大VGAサイズのJPEG画像。
30000byteほどあるデータで、この欠損により仮に数Byteデータが欠損した場合
画像が表示できないとか、画像の途中から画像が乱れるといった
そんな問題があります。


今回作成したのは、、、
自動に画像データを検知して不足箇所のByteを適当に追加、修正するプログラム
にしようと思ったんですが。
自動はかなり難しいと判明し、手動にしましたw


Jpeg画像は画像のヘッダ情報が入ったヘッダ部分と実際のイメージデータの入ったデータ部分に分かれてます。はい。
そんままかw

ヘッダ部分は・・・
 0xFF●●からなるマーカから始まっとります。
  →ここはネットにたくさんありますのでしょーりゃくです。
 この中にこの画像のByte数やら、画像の大きさ、
 圧縮に関するデータやらいろいろ入っているそうな。
 ここのヘッダ部分で圧縮形式やら画像を復元するのに必要不可欠な情報が欠如したら
 復帰するのは難しい様です。
 ただ、変換形式とか基本形があるよーでヘッダを修復するのは
 ある程度、可能みたいで。
 このヘッダ部分の修復とかはいろいろ参考にするサイトが
 たくさんあるので、手をつけませんでしたw

続いて
イメージ部は・・・
 0xFFDAから始まっている様で。
 こっちのデータが欠損した場合、かなり修復が難しいと。
 このプログラムはこっちの修復用につくりました。
 こっちのデータは、ヘッダ部で定義された圧縮の解凍情報?に
 突っ込んで画像に起こす生データなので
 乱数のようなデータで構成されてます。
 ヘッダ部はきちんと規格がきまってますwあたりまえかwww
 
 自動画像修復プログラム作成にむけて
 はじめこの生データに何か規則性はないかと考えていきましたが…
 時間的知識的にも限界があるのであきらめましたwwwwww

 そこで作ったのが手動式でw
 こんなんになりましたwww
 特に発表する場所がないのでブログにペタリwwwwwww

JPEG写真修復__v3p

使い方としては。
①画像が欠けている場所を、縦型スライドバーみたいなのをいじって、
 目視で探してやります。
②そんでもって場所がみつかったら、どんな値のダミーデータ(0x00とか)を
 入れるか適当に入力、これまた目視でよさそーな値を決めます。
③その後、どれくらいの長さのダミーデータを入れるか
 横型のスライドバーみたいなのをいじって最適な長さをみつけてあげます。
 ※②③はどっちが先でもかまいませんw

簡単な仕組みの説明としては・・・
画像のバイナリのイメージ部分を読み込み、適当な値を突っ込んであげてJPEGとして表示する。
これのくりかえし。
なんと雑な説明wwwwwww
 

かなり妥協しましたが
要はできたら良いのですww
まだ原案だしwwwwwww

このプログラムをつかったら・・・

●修正前
サンプル1_修正前
○修正後
サンプル1_修正後_1005byte追加

●修正前
サンプル2_修正前
○修正後
サンプル2_修正後_2398byte挿入

あら不思議w意味不明だった画像が。表示されるwww
性能限界は、人の腕にかかっておりますw
ちなみに完全には修復できません。欠損した所にダミーな値を適当に突っ込むだけなので
その後の画像の色とかもある程度かわりますwwww→これはしょーがないwwww

これで衛星がデータ本当に万が一でもデータ欠損した場合、あるてーどは修復できるように(*´σー`)
これを使う日はくるかなー

まあええかwいつの日かJGSプログラムになる日を夢見て…verあっぷしていきますwたぶんwww
そうえいばこの前FM品のレンズ調節やったので後日その撮影画像でものせますw

TTでした。

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://kitsat.blog80.fc2.com/tb.php/212-e1530a4f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad