TOP
精衛
〜楽しい工作教室・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/30に縮めた物です。
以下は、うまく切り出せなかった例です。同期部分の判断も狂っています。途中から同期が崩れてぐちゃぐちゃです。
次がうまく切り出せた例です。確認のために原稿部以外も表示させました。途中の色が変わっているところは同期点です。なんと、もう画像が確認できました! 俄然やる気が出てきます。
何箇所か、同期用の黒線を含んでしまっている場所がありますが、おそらくノイズの影響でしょう。とりあえずこれはこのままにします。
いよいよ最終段階です。既に、どこからどこまでが1ライン分の原稿部データかが分かっているので、これを700ドットに伸縮しますが、1ラインのデータは700個以上あるので縮小となり、1つの点に複数のデータが対応します。今回は、同じ点に対応するデータの平均値を輝度値としました。
細かいことですが、スキャナの円筒部分の回転方向から言って、横方向は反転する必要があります。この処理も伸縮と同時に行います。
画像が復元できました!
なかなかよさげですが、全体にグレーによっているので、前回の輝度の数値の計算方法をやめて、単純に白平均値から黒平均値までの部分を取り出してみました。
全体に輝度値が白にずれたため同期が狂ってしまいました。値の調整をやり直しです。
やはりちょっと白に飛びすぎです。では少し縮めて、白、黒の平均値が、それぞれ輝度215、40に対応するようにしてみます。
なかなかいい感じです。では、時計回りに90度回転させて、元の原稿と比較してみましょう!まずは原稿。
つぎに、「螺旋スキャナ」で取った画像です。
おまけです。「螺旋スキャナ」で取った画像をPhotoshopでレベル補正したものです。
成功だ!
いや、正直ここまで取れるとは思っていませんでした。もちろんノイズはすごいし、にじみやゆがみはありますが、水着の模様まで取れるとは驚きました。実用レベルではないかもしれませんが、「成功」といっていいと思います。
〜費用内訳〜
では、「螺旋スキャナ」製作にかかった費用を計算です。ざっと計算した感じでは2000円超えるか超えないか、といったところのはずですが……。
区分 | 品名 | 価格 |
機構部品 |
M3真鍮全ねじ600mm | 260 |
ホームプランター65TR | 148 |
M3クロメード蝶ナット8個入 | 80 |
事務表紙A3判用特厚口5枚入 | 198 |
マブチモータRE-140 | 140 |
電子部品 |
超高輝度LED・赤 | 90 |
フォトトランジスタTPS603A | 50 |
モノラルミニプラグ | 50 |
ステレオミニプラグ | 60 |
抵抗270Ω | 5 |
抵抗10kΩ | 5 |
抵抗1MΩ | 5 |
抵抗3MΩ | 5 |
積層セラミックコンデンサ0.1μF | 20 |
トランジスタ2SC1815-Y×2個 | 60 |
電池ボックス単3×4個用 | 100 |
電線 (3m) | 60 |
道具 |
四方キリ | 100 |
コンパスカッター | 350 |
木工用ボンド | 98 |
無カウント分 |
輪ゴム | 0 |
単三電池×6 | 0 |
紙(ノートを利用) | 0 |
アルミ箔 | 0 |
マジックペン | 0 |
セロハンテープ | 0 |
|