画像から透かし入りオブジェクトへ

3Dプリンタという面白い道具があります。

物体を印刷できるプリンタです。

 コップ、
 ペンケース、
 アクセサリー、
 家、
 ケーキ(食べられる)
など自分でデザインしたものを自由に作れるプリンタです。

3Dプリンタの使い方を習得しようと勉強会を開催してきました。
その過程でわかったことは
 印刷するためのデータ(3Dモデリングデータ)を作るのが難しい
ということでした。

普通のプリンタ(紙に印刷するプリンタ)でも、
印刷する文章を考えたり、イラストを配置したり、
レイアウトを綺麗に整えたりするのは
結構大変です。

3Dのデータを作るのは、
複雑な知識や技術が必要です。


ということは、
 簡単に3Dのデータを作る仕組みを作る
というのが僕ら研究者の仕事。

こんなアイデアを考えました。
 写真やイラストや文字などの画像を 3Dのデータに自動変換するソフトを作ろう。
 被写体の立体構造を復元するのは難しい。
 そこで、画像の陰影を反映した3Dデータを作ろう。
 お札の透かしのように、光にあてると画像が透けて見える構造にしよう。


このアイデアを、うちの研究室の学生に伝えたところ
こんなサイトを探してくれました。
 TOPOGRAFICS

すでに実装している人が居たんですね。


誰かが既に作ったことあるなら、
自分でも作ってみようと思いたち。

先日の海外出張での飛行機の中で7時間くらいかけてプログラミング。
出張後、バグ修正などを行って、無事に完成。

プログラムのソースコードは
 C言語で335行
で済みました。
bmp形式の画像から stl形式の 3Dデータへ変換します。
変換にかかる時間は数秒程度。
#画像のサイズ、透かしの精度(好みで調節可能)、
#印刷後のオブジェクトのサイズ(好みで調節可能)によって
#変換時間は変わります。


実際に動作させてみます。

akari

↑元の画像

↓3Dデータにして、3Dプリンタで印刷。

2016-11-14-21-57-36

できた!
光にあてると、ちゃんと透けました。

今回作ったのは小さめのオブジェクトで
縦2センチ、横3センチにしました。
印刷時間は12分。

拡大するのは可能ですが印刷時間が2乗かかります。
例えば5倍にして、
縦10センチ、横15センチとか作れますが、
印刷時間が25倍(5の2乗)になります。


プログラミングの基礎知識があって、
簡単な数学がわかって、
英語が読めれば、
自分のアイデアでものつくりがサクサクできちゃう時代ですな。

#「英語ができれば」ってのは、
#新しい技術の解説書等は(一般的に)英語のものしかなくて、
#日本語に翻訳されていないことが多い、
#って意味です。


近々、小学校の必修科目に
 プログラミングと英語
が導入されるらしいですね。

そうすると、
作りたいものを短時間に自由に作り出せる人たちが
日本に増えるかも知れません。