Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Delphi事例

Delphiによって作成された壮大なモザイクジェネレーター「FotoMorsaicos」

fotomorsaicosdev2

FotoMorsaicosは、Delphiによって構築されたWindowsアプリケーションで、特定の画像からフォトモザイクを生成することができます。 開発者は、次のように解説しています。

「このソフトウェアには、フォトモザイクジェネレーター、最終成果物の画像ジェネレーター(JPGファイル)、そして最後に画像ライブラリインデックスを作成するプログラムという3つのサブシステムがあります。フォトモザイクを作成するというテーマに対する最初のアプローチは、映画『トゥルーマンショー』でした。この映画では、主人公のジム・キャリーの顔のポスターがありますが、これは映画から切り取られたいくつもの小さな写真を並べて構成したものでした。この作業が何らかのプログラムで行われたことは明らかで、すぐにそれがロバート・シルバー氏によって作成された画像であることが分かりました。では、彼はどうやってそれを作成したのでしょうか?

私は、このフォトモザイクのバックグラウンドで使われたアルゴリズムについて、しばし考察してみました。そして、最終的に何をすべきかを理解し、その作成に取り掛かったのです。基本的な考え方は、フォトモザイクプログラムでは、モザイクフィルター使うことになるのですが、そのフィルターは、単色を使用するかわり、モザイクの各領域に配置するべき単色に近い平均色の写真を使用するのです。そこで、フォトモザイクを作成する基本的なプログラムを、Delphiを用いて作成してみました。このプログラムでは、約6,000枚の高解像度写真コレクションを使用しています(実際、archive.orgには、このソフトウェアで使用できるような高解像度写真のパブリックドメインコレクションが数多く投稿されています)。

しかしその後、優れたフォトモザイクプログラムでは、より多くの機能を検討するべきだと気付きました。異なる画像ライブラリの使用、繰り返し領域があるかどうか、つまり同じ写真を繰り返し配置するかどうかを設定できるようにすることなどです。これにより、より高度な多様性を実現することができます。同様に、元の画像を一定割合でモザイクにブレンドするというアイデアは、最終出力を『ソフト』なものにし、ビジュアル的な効果もよりよいものにしてくれます。オリジナルの開発成果は、現在は出版されていない「Dr Dobbs Journal」に掲載されました(https://www.drdobbs.com/understanding-photomosaics/184404848)。研究者であるThiadmer Riemersma氏は、人が色を識別する方法についての研究論文を発表しています(『カラーメトリック』 – CompuPhase、2008年5月26日。http://www.compuphase.com/cmetic.htm)。私は彼のアプローチを採用し、ソフトウェアが生成する画像のビジュアルはより改善されました。実は、Thiadmer Riemersma氏自身が、私の記事を読んで手紙をくれました。

現在、このソフトウェアで実現できているのは以下の機能です。

  1. さまざまな画像のコレクション(最大100,000枚の写真)を使用
  2. オリジナル写真と生成されたモザイクを指定した割合でブレンド可能
  3. 同じ画像を連続して繰り返すかどうかを指定可能(繰り返し画像がないフォトモザイクは、より受け入れやすいビジュアルとなります)

プロジェクトのすべてのソースコードと完全なドキュメントは、https://sourceforge.net/projects/fotomorsaicos/ にて公開されており、これらはすべてDelphiで記述されています。今回、Delphi 26回目の誕生日に寄せて一般公開しています。」

画面ショットギャラリー

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES