TOP 精衛

〜楽しい工作教室 vol.2〜
〜楽しい工作教室・2〜 イメージスキャナを作ろう(4)

愛お姉さん「『楽しい工作教室・2』のお時間ですよ〜♪」
ちかぼー「わ〜〜♪」
みお「心して見るのだ」

愛お姉さん「で〜でん……で〜でん……ででで、でででん……」
ちかぼー「……」
みお「……」
愛お姉さん「ど、だ、で、だ……ばッ……ぱぱーッ!!」
ちかぼー「……お姉さん、あの……ちかぼーたち、なにか悪いことした?」
愛お姉さん「え、どして?」
ちかぼー「えっと、なんか奇怪なダンスを踊って嫌がらせをしてるようなので……」
愛お姉さん「失礼ね。これは緊迫感を全身で表現しているのよ」
ちかぼー「『緊迫感』……」
みお「とうとう頭の螺子が、全発射したかと思ったのだ」
愛お姉さん「酷い! これでも一生懸命やってたのに!!」
ちかぼー「ちょっと、常識人の理解を超えてた……かな?」
みお「山○塾に師範代で入れるのだ」
愛お姉さん「……まぁ、それは置いといてー」
みお「お、立ち直りが早いのだ」
愛お姉さん「今回で、『イメージスキャナを作ろう』は最終回なのよね〜〜」
ちかばー「あ、それで……」
愛お姉さん「スキャナ作りが成功したか、失敗したか、とても気になるところよねー」
ちかぼー「なるほど、冒頭から緊迫感を出して盛り上げようと」
みお「余計なことする奴なのだ」

楽しい工作教室・第2回
イメージスキャナを作ろう(4)  記:ルーローの三角形
 いよいよイメージスキャナ製作も今回で最終回です。今回は、前回取ったデータから画像を復元します。今回は復元途中のものも含めて、画像を縮小せずそのままのサイズで掲載しているのでかなり重くなっています。ご了承ください。
〜製作〜
 前回のデータから画像を復元するわけですが、最終的な画像がどの位になるかを考えます。作成したスキャナのねじが1回転につき0.5mm進みますから、縦の1ドットは0.5mmです。円筒の長さは285mmだったので、最大で570ドットです。円筒に描いた2本の黒線間の長いほうに原稿をセットします。ここの長さを測ったら、約35cm(350mm)ありました。これが横1ライン分のデータになります。縦横比を1:1にするためには、横も1ドット0.5mmにすればいいので、1ライン分のデータを350mm/0.5mm=700ドットにすればいいことになります。つまり、最大で横700×縦570の画像ができることになります。
 参考のため、データの元原稿を、市販のスキャナで解像度0.5mmで取り込みました。
元原稿
 この絵と認識できる画像が復元できれば、成功です。

 とりあえず、データを画面に出してみます。今のところ、白〜黒が0〜255の数値になっています。ディスプレイでは、逆に黒が0で白が255なので、画面の輝度を決める時に反転することにします。

 単純に、データ20点を1ドットとして、連続で表示させてみました。(下のほうが白いのは、データが足りないからです)当然のことながらぐちゃぐちゃです。でも、真ん中付近を見ると、パターンが変化しており、何かデータが取れているのはわかります。希望が出てきました。
単純表示

 このデータから、画像を復元するためには、以下のことが必要です。
 ・円筒1回転分の区切り点を見つける。
 ・1回転分のデータから、原稿に対応する部分を見つける。
 ・データを、1ドットあたり0.5mmになるように伸縮する。
 なかなか大変そうですが、順番にやっていきましょう。

 まず、円筒の1回転分の区切り点を見つけ出さなければなりません。回転周期は変動しているので、それに追随していく必要があります。
 このために、円筒に原稿の前に少し円筒だけの部分をスキャンしておきました。円筒には白地に2本の黒い線しかありませんから、黒→白を始点、白→黒を終点とすると、始→終→始→終の次の始点でちょうど1回転です。
1周分のデータ

 次に、1周のうちで原稿に対応する部分を判断しなければなりませんが、これは白の領域の長さで判断します。長いほうが原稿がある部分(原稿部)で、短い方は同期のための部分(同期部)です。
 ただし、原稿の絵のある部分に入ると、当然黒い部分があるので、原稿部には複数の始点・終点が含まれることになります。これに惑わされないようにしなければなりません。そこで、原稿部の始点から同期部の中の点(同期点)までの長さを調べておきます。回転周期にむらがあるので毎回長さは異なりますが、あまり急激に変化することはないと考えると、1周前の同期点の場所は、同じく同期部の中にあると考えられます。これを利用して、同期点の直前の終点が原稿部終点で、次に来る始点が次ラインの原稿部始点であると分かります。
原稿部分の取り出し

 なお、これらの処理で白と黒を判断する時には、ノイズの影響を受けにくくするため、前後いくつかの値を平均して判断します。

 同期点の位置や白黒判別のしきい値によってうまく切り出せたり切り出せなかったりします。色々と調節して、うまい値を見つけます。
 実際にうまくいくか試してみました。まだ、サイズ調整はせずに、単純に横のデータを1/30に縮めた物です。
 以下は、うまく切り出せなかった例です。同期部分の判断も狂っています。途中から同期が崩れてぐちゃぐちゃです。
うまく切り出せなかった例

 次がうまく切り出せた例です。確認のために原稿部以外も表示させました。途中の色が変わっているところは同期点です。なんと、もう画像が確認できました! 俄然やる気が出てきます。
うまく切り出せた例

 何箇所か、同期用の黒線を含んでしまっている場所がありますが、おそらくノイズの影響でしょう。とりあえずこれはこのままにします。

 いよいよ最終段階です。既に、どこからどこまでが1ライン分の原稿部データかが分かっているので、これを700ドットに伸縮しますが、1ラインのデータは700個以上あるので縮小となり、1つの点に複数のデータが対応します。今回は、同じ点に対応するデータの平均値を輝度値としました。
 細かいことですが、スキャナの円筒部分の回転方向から言って、横方向は反転する必要があります。この処理も伸縮と同時に行います。
 画像が復元できました!
復元画像

 なかなかよさげですが、全体にグレーによっているので、前回の輝度の数値の計算方法をやめて、単純に白平均値から黒平均値までの部分を取り出してみました。
輝度の計算方法変更(同期狂)

 全体に輝度値が白にずれたため同期が狂ってしまいました。値の調整をやり直しです。
輝度の計算方法変更

 やはりちょっと白に飛びすぎです。では少し縮めて、白、黒の平均値が、それぞれ輝度215、40に対応するようにしてみます。 輝度の計算方法を再変更

 なかなかいい感じです。では、時計回りに90度回転させて、元の原稿と比較してみましょう!まずは原稿。
原稿

 つぎに、「螺旋スキャナ」で取った画像です。
螺旋スキャナで取った画像

 おまけです。「螺旋スキャナ」で取った画像をPhotoshopでレベル補正したものです。
レベル補正したもの

成功だ!

 いや、正直ここまで取れるとは思っていませんでした。もちろんノイズはすごいし、にじみやゆがみはありますが、水着の模様まで取れるとは驚きました。実用レベルではないかもしれませんが、「成功」といっていいと思います。

〜費用内訳〜
 では、「螺旋スキャナ」製作にかかった費用を計算です。ざっと計算した感じでは2000円超えるか超えないか、といったところのはずですが……。
区分品名価格
機構部品 M3真鍮全ねじ600mm260
ホームプランター65TR148
M3クロメード蝶ナット8個入80
事務表紙A3判用特厚口5枚入198
マブチモータRE-140140
電子部品 超高輝度LED・赤90
フォトトランジスタTPS603A50
モノラルミニプラグ50
ステレオミニプラグ60
抵抗270Ω5
抵抗10kΩ5
抵抗1MΩ5
抵抗3MΩ5
積層セラミックコンデンサ0.1μF20
トランジスタ2SC1815-Y×2個60
電池ボックス単3×4個用100
電線 (3m)60
道具 四方キリ100
コンパスカッター350
木工用ボンド98
無カウント分 輪ゴム0
単三電池×60
紙(ノートを利用)0
アルミ箔0
マジックペン0
セロハンテープ0
合計1884

 よし!2000円以内に収まった!

 目標達成!!!

 ……電池がちょっとインチキくさいけど。 まあ大目に見てください。

〜〜〜〜〜〜〜〜
愛お姉さん「どんどん、ぱふぱふ〜〜♪♪」
ちかぼー「お姉さん、今度は……分かった! 『お腹をすかせたポーランド人が道端のバナナを拾って食べているところ』ですね!」
みお「迫真のパフォーマンスなのだ」
愛お姉さん「なんで、そうなるのー、これは喜びを全身で表現しているの!」
ちかぼー「お姉さん、外では絶対にやらないで下さい」
みお「柔和なちかぼーも忠告せざるをえないのだ」
愛お姉さん「と、に、か、く、『スキャナ作り』は成功! ルーローさん鼻高々ね!」
みお「まぁ、確かにホントに絵が取れるとは思っても見なかったのだ」
ちかぼー「凄いですよね〜。紙工作でスキャナが出来るなんて」
みお「ということは、あれなのだ。茜屋との賭けはルーローの勝ちなのだな?」
ちかぼー「茜屋さん、絶対無理って言ってたもんね……(笑)」
愛お姉さん「茜屋さんには気の毒だけど、しょうがないわね」
みお「罰ゲームはどうなるのだ?」
愛お姉さん「ルーローさん、私たちが決めていいって」
みお「を〜♪ 面白そうなのだ〜〜」
ちかぼー「あの、可哀想だから、簡単なものにしてあげようよ」
愛お姉さん「そういうわけにもいかないわ。勝負は勝負だもの」
みお「カフラウエ島からゴムボートで日本に帰る、とか、コロンビア山から橇で一気降りとかどうか」
愛お姉さん「アメリカ横断ウル○ラクイズじゃないんだから……」
ちかぼー「そのネタは時代的に厳しいかも……」
みお「では『まゆちか』を毎日更新するというのでは」
ちかぼー「茜屋さん、死んじゃうよ……」
愛お姉さん「実行がほとんど不可能なものは却下ね」
みお「難しいのだ」
ちかぼー「お饅頭を十個食べるとかはどうかな?」
愛お姉さん「駄目、簡単すぎ」
みお「絵の無差別リクエストはどうか」
ちかぼー「だから、茜屋さん、死んじゃうって――」
愛お姉さん「待って、期間を限定したりすれば出来るかも……」
ちかぼー「ええええ!」
愛お姉さん「複数描くんじゃなくて、リクエストのキャラを全部1枚絵に収めるとか。ひとりひとりは小さくなるから楽になるわよ」
ちかぼー「そんな単純じゃないと思うけど……」
みお「苦しまなくちゃ罰にならないのだ」
愛お姉さん「そうよね、とりあえず、条件を設定してみましょう」

***罰ゲーム***

罰ゲームは、この文章がWeb上にUPされたときを開始とし、茜屋が条件を満たしたときに終了するものとする。

○条件

1.茜屋は期間中に提示版をもってリクエストを受けたゲーム・キャラクターのイラストを全て描くものとする。
2.イラストは複数のキャラクターを1枚の画像に収めても良いこととする。
3.画像の枚数は、これを問わない。
4.リクエストを受け付けるキャラクターは以下のゲームに登場する人物で、画像を有するものに限定するものとする。

・選定可能ゲーム:
  ivory/jANIS系:とらいあんぐるハートシリーズ
  leaf系:雫,痕,ToHeart,ホワイトアルバム,こみっくパーティー,うたわれるもの
  Tactics,Key系:ONE,Kanon,Air
  アリス系:鬼畜王ランス,ママトト,ONRY YOU-リ・クルス-,大悪司
  エルフ系:同級生,同級生2,下級生,臭作
  その他:月姫,行殺(はぁと)新選組ふれっしゅ,恋ごころ,家族計画

5.リクエストを受け付ける期間は、平成14年10月14日0:00(13日24:00)をもって終了とする。
6.リクエストは掲示板でのみ受け付けるものとする。


愛お姉さん「こんなところかな」
みお「上出来なのだ♪」
ちかぼー「……ゲームの種類がちょっと旧いようにも思えますね」
愛お姉さん「仕方ないわよ、茜屋さん、最近のゲームあんまりやってないんだもん」
ちかぼー「やっぱ、茜屋さん死んじゃうかも」
愛お姉さん「えっと、リクエストのうえでの注意事項としては……」

○リクエストの注意事項
1.必ず掲示板で行うこと。
2.『精衛罰ゲームのキャラリクエスト』であることを明記すること。
3.選定可能ゲームのキャラクター(画像アリ)であること。
4.ゲーム名とキャラクター名を分かりやすくリクエストすること。
5.ひとり、いちキャラクターであること。


愛お姉さん「以上、ですっ! 皆様のリクエストをお待ちしています〜〜♪」
みお「こんなところ誰も見ていないだろうから、茜屋もきっと楽勝なのだ」