(57)【要約】【課題】画像を変化させるためのコンピュータプログラムを簡単に生成することができるプログラム生成方法を提供する。【解決手段】表示された入力画像を取得し（ステップＳ１１）、データベースＤＢにアクセスし（ステップＳ１２）、データベースＤＢに格納されている複数の画像から、入力画像に類似する画像を類似画像として検索し（ステップＳ１３）、データベースＤＢにおいて、類似画像に関連付けられている候補スクリプトを選択し（ステップＳ１４）、候補スクリプトの確定度を、類似画像の検索結果に基づいて算出し（ステップＳ１５）、候補スクリプトに含まれるパラメータの値を、確定度に応じて変更することによって、提示用プログラムを生成し（ステップＳ１６）、生成された提示用プログラムを実行することによって、入力画像を変化させる（ステップＳ１７）。【選択図】図１７
2018165975.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）ディスプレイに表示された入力画像を取得し、
（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、
（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、
（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを候補プログラムとして選択し、
（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、
（ｆ）前記候補プログラムに含まれる、前記候補プログラムに対応する類似画像の変化の度合いを示すパラメータの値を、前記確定度に応じて変更することによって、提示用プログラムを生成し、
（ｇ）生成された前記提示用プログラムを実行することによって、前記入力画像を前記ディスプレイにおいて変化させる
プログラム生成方法。
【請求項２】
前記（ｄ）では、
検索された少なくとも１つの前記類似画像のうち、前記入力画像に最も類似する画像に関連付けられているコンピュータプログラムを、前記候補プログラムとして選択する
請求項１に記載のプログラム生成方法。
【請求項３】
前記確定度は、検索された少なくとも１つの前記類似画像の数が多いほど小さく、前記類似画像の数が少ないほど大きい値である
請求項１または２に記載のプログラム生成方法。
【請求項４】
前記（ｅ）では、
前記記録媒体に格納されている前記複数の画像の数に対する、検索された少なくとも１つの前記類似画像の数の割合を、１から減算することによって、前記確定度を算出する
請求項３に記載のプログラム生成方法。
【請求項５】
前記（ｅ）では、
検索された少なくとも１つの前記類似画像の数が閾値以上の場合には、
第１の値を示す前記確定度を算出し、
検索された少なくとも１つの前記類似画像の数が前記閾値未満の場合には、
前記第１の値よりも大きい第２の値を示す前記確定度を算出する
請求項３に記載のプログラム生成方法。
【請求項６】
前記パラメータは、前記候補プログラムに対応する類似画像の移動距離、前記候補プログラムに対応する画像の大きさの変化量、または前記候補プログラムに対応する類似画像の色成分の変化量である
請求項１〜５の何れか１項に記載のプログラム生成方法。
【請求項７】
前記（ｇ）では、
さらに、前記提示用プログラムによって変化された前記入力画像を元に戻し、前記提示用プログラムを再び実行することによって、前記ディスプレイに表示されている前記入力画像を繰り返し変化させる
請求項１〜６の何れか１項に記載のプログラム生成方法。
【請求項８】
前記プログラム生成方法は、さらに、
（ｈ）生成された前記提示用プログラムを前記ディスプレイに表示する
請求項１〜７の何れか１項に記載のプログラム生成方法。
【請求項９】
（ａ）ディスプレイに表示された入力画像を取得し、
（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、
（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、
（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムに基づいて、入力画像を変化させるためのコンピュータプログラムを候補プログラムとして生成し、
（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、
（ｆ）前記入力画像を、算出された前記確定度に応じて前記ディスプレイにおいて変化させる
プログラム生成方法。
【請求項１０】
複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスするためのインターフェース部と、
処理回路とを備え、
前記処理回路は、
（ａ）ディスプレイに表示された入力画像を取得し、
（ｂ）前記インターフェース部を介して前記記録媒体にアクセスし、
（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、
（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを候補プログラムとして選択し、
（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、
（ｆ）前記候補プログラムに含まれる、前記候補プログラムに対応する類似画像の変化の度合いを示すパラメータの値を、前記確定度に応じて変更することによって、提示用プログラムを生成し、
（ｇ）生成された前記提示用プログラムを実行することによって、前記入力画像を前記ディスプレイにおいて変化させる
プログラム生成装置。
【請求項１１】
（ａ）ディスプレイに表示された入力画像を取得し、
（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、
（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、
（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを候補プログラムとして選択し、
（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、
（ｆ）前記候補プログラムに含まれる、前記候補プログラムに対応する類似画像の変化の度合いを示すパラメータの値を、前記確定度に応じて変更することによって、提示用プログラムを生成し、
（ｇ）生成された前記提示用プログラムを実行することによって、前記入力画像を前記ディスプレイにおいて変化させる
ことをプログラム生成装置のコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像を変化させるためのコンピュータプログラムを生成するプログラム生成方法などに関する。
【背景技術】
【０００２】
現在、ソースコードを記述しなくても、視覚的な操作でプログラミングが可能なビジュアルプログラミング言語が提供されている。ＭＩＴメディアラボの開発したＳｃｒａｔｃｈは、子ども向けのビジュアルプログラミング言語である（非特許文献参照）。このＳｃｒａｔｃｈでは、子供などの初心者が、正しい構文の書き方などを覚えることなくプログラミングができる。例えば、Ｓｃｒａｔｃｈでは、プログラム作成に必要な幾つかのコマンドがビジュアルブロックとして予め用意されている。子供などのユーザは、画像を描き、その用意された幾つかのコマンドから、自らが描いた画像に適用される１つまたは複数のコマンドを選択して組み合わせる。さらに、ユーザは、その選択したコマンドのパラメータを編集する。これによって、その画像に対するコンピュータプログラム（スクリプト）が生成される。そのコンピュータプログラムを実行することによって、ユーザに描かれた画像がアニメーションのように変化する。
【０００３】
このようなＳｃｒａｔｃｈを用いたプログラム生成方法では、遊び心のあるインタラクティブアニメーションなどを製作することができ、プログラミングの学習のやる気を子供などに起こさせることができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓｃｒａｔｃｈ インターネット<URL:https://scratch.mit.edu/>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のプログラム生成方法では、コンピュータプログラムの生成に手間がかかるという問題がある。
【０００６】
そこで、本開示の非限定的で例示的な一態様は、画像を変化させるためのコンピュータプログラムを簡単に生成することができるプログラム生成方法を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係るプログラム生成方法は、（ａ）ディスプレイに表示された入力画像を取得し、（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを候補プログラムとして選択し、（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、（ｆ）前記候補プログラムに含まれる、前記候補プログラムに対応する類似画像の変化の度合いを示すパラメータの値を、前記確定度に応じて変更することによって、提示用プログラムを生成し、（ｇ）生成された前記提示用プログラムを実行することによって、前記入力画像を前記ディスプレイにおいて変化させる。
【０００８】
なお、この包括的または具体的な態様は、装置、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な記録媒体で実現されてもよく、装置、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ Ｄｉｓｃ−Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）などの不揮発性の記録媒体を含む。
【発明の効果】
【０００９】
本開示によれば、画像を変化させるためのコンピュータプログラムを簡単に生成することができる。本開示の一態様の付加的な恩恵及び有利な点は本明細書及び図面から明らかとなる。この恩恵及び／又は有利な点は、本明細書及び図面に開示した様々な態様及び特徴により個別に提供され得るものであり、その１以上を得るために全てが必要ではない。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態におけるプログラム生成システムの構成を示す図である。
【図２】図２は、実施の形態における端末装置のディスプレイに表示される画面の一例を示す図である。
【図３】図３は、実施の形態におけるコマンドリストの一例を示す図である。
【図４】図４は、実施の形態におけるプログラム生成装置の構成を示すブロック図である。
【図５】図５は、実施の形態におけるデータベースに格納されている各データの関連付けを示す図である。
【図６】図６は、実施の形態におけるプログラム生成装置によって生成されるスクリプトの一例を示す図である。
【図７】図７は、実施の形態におけるプログラム生成装置によって生成されるスクリプトの他の例を示す図である。
【図８】図８は、実施の形態におけるプログラム生成装置の全体的な処理動作の一例を示すフローチャートである。
【図９】図９は、図８のステップＳ１２００のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。
【図１０】図１０は、図９のステップＳ１２１０の類似画像の検索における詳細な処理動作の一例を示すフローチャートである。
【図１１】図１１は、図９のステップＳ１２２０の確定度の算出における詳細な処理動作の一例を示すフローチャートである。
【図１２】図１２は、図９のステップＳ１２２０の確定度の算出における詳細な処理動作の他の例を示すフローチャートである。
【図１３】図１３は、図９のステップＳ１２３０のパラメータの生成における詳細な処理動作の一例を示すフローチャートである。
【図１４】図１４は、実施の形態におけるプログラム生成装置によって端末装置に表示される画面の遷移の一例を示す図である。
【図１５】図１５は、実施の形態におけるプログラム生成装置によって端末装置に表示される画面の遷移の他の例を示す図である。
【図１６】図１６は、実施の形態の変形例に係るプログラム生成装置の提示用スクリプトによって変化する入力画像の一例を示す図である。
【図１７】図１７は、本開示の一態様に係るプログラム生成方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（本開示の基礎となった知見）
本発明者は、「背景技術」の欄において記載したＳｃｒａｔｃｈに関し、以下の問題が生じることを見出した。
【００１２】
上述のように、Ｓｃｒａｔｃｈでは、それぞれ画像を変化させるためのコンピュータプログラムである複数種のコマンドが用意されている。ユーザは、画像を選択、及び/または入力手段（例えば、マウス）を用いて、画像を描画することによって、その画像を入力画像としてディスプレイに表示させる。次に、ユーザは、その入力画像に適用される少なくも１つのコマンドを、予め用意されている複数種のコマンドの中から選択する。そして、ユーザは、選択された少なくとも１つのコマンドのそれぞれに含まれるパラメータを設定する。パラメータは、画像の変化の度合いを示す。これにより、入力画像は、その選択された少なくとも１つのコマンドからなるスクリプトによって、設定されたパラメータに示される度合いだけ変化する。
【００１３】
しかしながら、ユーザが、入力画像に適用されるコマンドを複数種のコマンドからわざわざ選択して組み合わせるには手間がかかってしまう。そこで、入力画像に適用されるプログラム（スクリプト）を自動的に生成すれば、その手間を大幅に削減することができる。ここで、入力画像に適用されるプログラム（スクリプト）を自動的に生成するために、予め用意されたデータベースから、その入力画像に相応しいプログラムを検索することが考えられる。例えば、入力画像に相応しいプログラムが複数個検索されれば、その複数個のプログラムのうちの１つのプログラムが入力画像に適用される。
【００１４】
しかし、この場合には、そのスクリプトの検索状況がユーザに分かりにくいという問題がある。つまり、入力画像に適用されるプログラム以外にも、その入力画像に相応しい多くのプログラムがあったのか、逆に、その入力画像に相応しいプログラムは少なかったのか、ユーザには分かりに難い。言い換えれば、予め用意されている多くのプログラムデータから、目的とするプログラムを十分に絞り込めたのか、逆に、絞り込めていないのかが、ユーザには分かりに難い。
【００１５】
このような問題を解決するために、本開示の一態様に係るプログラム生成方法は、（ａ）ディスプレイに表示された入力画像を取得し、（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを候補プログラムとして選択し、（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、（ｆ）前記候補プログラムに含まれる、前記候補プログラムに対応する類似画像の変化の度合いを示すパラメータの値を、前記確定度に応じて変更することによって、提示用プログラムを生成し、（ｇ）生成された前記提示用プログラムを実行することによって、前記入力画像を前記ディスプレイにおいて変化させる。例えば、前記パラメータは、前記候補プログラムに対応する類似画像の移動距離、前記候補プログラムに対応する画像の大きさの変化量、または前記候補プログラムに対応する類似画像の色成分の変化量である。
【００１６】
これにより、入力画像に類似する少なくとも１つの画像が類似画像として検索され、その少なくとも１つの類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムが候補プログラムとして選択される。そして、この候補プログラムのパラメータが変更されることによって、入力画像に適用される提示用プログラムが生成される。つまり、入力画像に適用される提示用プログラムが自動的に生成される。したがって、ディスプレイに入力画像を描画したユーザは、その入力画像に適用されるコンピュータプログラムを、予め用意されている複数種のコマンドを組み合わせて作成する必要がない。その結果、入力画像を変化させるためのコンピュータプログラムを簡単に生成することができる。
【００１７】
また、本開示の一態様に係るプログラム生成方法では、候補プログラムのパラメータは、少なくとも１つの類似画像の検索結果に基づいて算出された確定度に応じて変更される。ここで、記録媒体には、複数の画像のそれぞれにコンピュータプログラムが関連付けられているため、その類似画像の検索は、入力画像に相応しいコンピュータプログラムの検索に相当する。また、パラメータは画像の変化の度合いを示す。したがって、変更されたパラメータを含む提示用プログラムが実行されると、表示されている入力画像の変化の度合いによって、コンピュータプログラムの検索状況を直観的にユーザに分かりやすく伝えることができる。つまり、入力画像に相応しいコンピュータプログラムを、記録媒体に用意されている多くのコンピュータプログラムから十分に絞り込めたのか、逆に、絞り込めていないのかを、ユーザに分かりやすく伝えることができる。例えば、ユーザは、絞り込めていないことが分かると、その入力画像に図形を追加するなどの修正を行う。このときには、コンピュータプログラムをより絞り込むことができ、入力画像により相応しいコンピュータプログラムを提示用プログラムとして生成することができる。つまり、入力画像に適したコンピュータプログラムを簡単に生成することができる。
【００１８】
また、前記（ｄ）では、検索された少なくとも１つの前記類似画像のうち、前記入力画像に最も類似する画像に関連付けられているコンピュータプログラムを、前記候補プログラムとして選択してもよい。
【００１９】
これにより、提示用プログラムのベースとなる候補プログラムを適切に選択することができる。
【００２０】
また、前記確定度は、検索された少なくとも１つの前記類似画像の数が多いほど小さく、前記類似画像の数が少ないほど大きい値であってもよい。例えば、前記（ｅ）では、前記記録媒体に格納されている前記複数の画像の数に対する、検索された少なくとも１つの前記類似画像の数の割合を、１から減算することによって、前記確定度を算出してもよい。または、前記（ｅ）では、検索された少なくとも１つの前記類似画像の数が閾値以上の場合には、第１の値を示す前記確定度を算出し、検索された少なくとも１つの前記類似画像の数が前記閾値未満の場合には、前記第１の値よりも大きい第２の値を示す前記確定度を算出してもよい。
【００２１】
これにより、コンピュータプログラムの絞り込みが不十分であれば、確定度は小さい値になり、その絞り込みが十分であれば、確定度は大きい値になる。したがって、例えば、パラメータに確定度を乗算することによって、そのパラメータが変更される場合には、絞り込みが不十分であれば、パラメータを小さくすることができ、入力画像の変化を小さく抑えることができる。逆に、絞り込みが十分であれば、パラメータを大きくすることができ、入力画像の変化を大きくすることができる。その結果、コンピュータプログラムの検索状況をより直観的にユーザに分かりやすく伝えることができる。
【００２２】
また、前記（ｇ）では、さらに、前記提示用プログラムによって変化された前記入力画像を元に戻し、前記提示用プログラムを再び実行することによって、前記ディスプレイに表示されている前記入力画像を繰り返し変化させてもよい。
【００２３】
例えば、入力画像が一度だけ変化する場合に、その変化の度合いが小さいと、ユーザは提示用プログラムが生成されて実行されたことに気づき難い。しかし、本開示の一態様に係るプログラム生成方法では、入力画像の変化が繰り返し行われるため、その変化の度合いが小さくても、ユーザは、提示用プログラムが生成されて実行されたことを容易に気づくことができる。その結果、コンピュータプログラムの検索状況を直観的にユーザにより分かりやすく伝えることができる。
【００２４】
また、前記プログラム生成方法は、さらに、（ｈ）生成された前記提示用プログラムを前記ディスプレイに表示してもよい。
【００２５】
これにより、提示用プログラムがディスプレイに表示されるため、入力画像を変化させるためのプログラミングを学習することができる。また、提示用プログラムのパラメータも表示されるため、ユーザは、そのパラメータと、表示されている入力画像の変化の度合いとを比較することができ、比較結果に基づいて、そのパラメータの修正の必要性を判断することができる。
【００２６】
また、本開示の他の態様に係るプログラム生成方法は、（ａ）ディスプレイに表示された入力画像を取得し、（ｂ）複数の画像と、前記複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、（ｃ）前記記録媒体に格納されている前記複数の画像から、前記入力画像に類似する少なくとも１つの画像を類似画像として検索し、（ｄ）前記記録媒体において、検索された少なくとも１つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムに基づいて、入力画像を変化させるためのコンピュータプログラムを候補プログラムとして生成し、（ｅ）前記候補プログラムの前記入力画像に対する確定度を、少なくとも１つの前記類似画像の検索結果に基づいて算出し、（ｆ）前記入力画像を、算出された前記確定度に応じて前記ディスプレイにおいて変化させる。
【００２７】
このような態様であっても、上述と同様に、入力画像に適したコンピュータプログラムを簡単に生成することができる。
【００２８】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００２９】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００３０】
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、同じ構成部材については同じ符号を付している。
【００３１】
（実施の形態）
［システム］
図１は、本実施の形態におけるプログラム生成システムの構成を示す。
【００３２】
本実施の形態におけるプログラム生成システム１０００は、例えば図１に示すように、プログラム生成装置１００と、複数の端末装置２００と、通信ネットワーク３００とを備える。
【００３３】
複数の端末装置２００はそれぞれ、例えばパーソナルコンピュータ、スマートフォンまたはタブレット端末などからなる。また、これらの端末装置２００は、ユーザによる操作に応じて、その端末装置２００のディスプレイ２００ｄに入力画像を表示する。
【００３４】
通信ネットワーク３００は、例えばＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）またはインターネットなどであって、プログラム生成装置１００と複数の端末装置２００のそれぞれとを相互に通信可能に接続する。
【００３５】
プログラム生成装置１００は、通信ネットワーク３００を介して端末装置２００と通信し、端末装置２００のディスプレイ２００ｄに表示される入力画像を変化させるためのコンピュータプログラムを生成する。本実施の形態におけるプログラム生成装置１００は、コンピュータプログラムとしてスクリプトを生成する。
【００３６】
図２は、端末装置２００のディスプレイ２００ｄに表示される画面の一例を示す。
【００３７】
プログラム生成装置１００は、通信ネットワーク３００を介して、端末装置２００のディスプレイ２００ｄに、スクリプトを生成するためのスクリプト生成画面２０１を表示する。
【００３８】
スクリプト生成画面２０１は、画像入力領域２０２と、スクリプト表示編集領域２０３と、画像選択ボタン２０４ａ〜２０４ｃと、操作ボタンＳ、Ｂ１およびＢ２と、コマンドリストボタン２０８とを含む。
【００３９】
画像入力領域２０２には、ユーザによる端末装置２００に対する操作に応じて描画された入力画像ｉｍ１〜ｉｍ３が表示される。なお、以下、ユーザによる端末装置２００に対する操作を、入力操作という。
【００４０】
画像選択ボタン２０４ａ〜２０４ｃはそれぞれ、画像入力領域２０２に表示されている入力画像ｉｍ１〜ｉｍ３を選択するために用いられる。例えば、入力操作に応じて画像選択ボタン２０４ａが選択されると、画像入力領域２０２に表示されている入力画像ｉｍ１〜ｉｍ３のうちの入力画像ｉｍ１が、処理対象画像として選択される。例えば、入力操作が行われれば、プログラム生成装置１００は、この処理対象画像に対してその入力操作に応じた処理を行う。具体的には、プログラム生成装置１００は、処理対象画像に対して生成されたスクリプトを端末装置２００のディスプレイ２００ｄに表示させたり、処理対象画像またはそのスクリプトの修正または編集を行う。なお、プログラム生成装置１００は、新たに描画される入力画像については、画像選択ボタンの選択がなくても、その入力画像を処理対象画像として扱ってもよい。
【００４１】
スクリプト表示編集領域２０３には、処理対象画像に対して生成されたスクリプトが表示される。また、スクリプト表示編集領域２０３に表示されているスクリプトに含まれるパラメータは、入力操作に応じて修正または編集される。
【００４２】
操作ボタンＳは、プログラム生成装置１００によって生成されたスクリプトをスクリプト表示編集領域２０３に表示させるために用いられる。つまり、操作ボタンＳが入力操作によって選択されると、端末装置２００は、通信ネットワーク３００を介してスクリプトの表示をプログラム生成装置１００に指示する。プログラム生成装置１００は、端末装置２００からその指示を受けると、例えば処理対象画像に対して生成されたスクリプトを、スクリプト生成画面２０１のスクリプト表示編集領域２０３に表示する。
【００４３】
操作ボタンＢ１は、画像入力領域２０２に表示されている処理対象画像の修正または編集を行うために用いられる。つまり、操作ボタンＢ１が入力操作によって選択されると、端末装置２００は、通信ネットワーク３００を介して処理対象画像の修正をプログラム生成装置１００に指示する。プログラム生成装置１００は、端末装置２００からその指示を受けると、入力操作に応じた処理対象画像に対する修正または編集を、その端末装置２００から待ち受ける状態になる。
【００４４】
操作ボタンＢ２は、画像入力領域２０２に新しい入力画像の追加を行うために用いられる。つまり、操作ボタンＢ２が入力操作によって選択されると、端末装置２００は、通信ネットワーク３００を介して新たな入力画像の追加をプログラム生成装置１００に指示する。プログラム生成装置１００は、端末装置２００からその指示を受けると、入力操作に応じて新たに描画される入力画像を待ち受ける状態になる。端末装置２００も、新たな入力画像の描画を受け付ける状態になり、その後の入力操作に応じて描画される新たな入力画像を画像入力領域２０２に表示する。
【００４５】
コマンドリストボタン２０８は、プログラム生成装置１００で利用可能な複数種のコマンドを含むコマンドリスト（スクリプト制御関数リストともいう）を表示するために用いられる。つまり、このコマンドリストボタン２０８が入力操作によって選択されると、端末装置２００は、通信ネットワーク３００を介してコマンドリストの表示をプログラム生成装置１００に指示する。プログラム生成装置１００は、端末装置２００からその指示を受けると、コマンドリストを端末装置２００のディスプレイ２００ｄに表示する。端末装置２００は、そのコマンドリストの中から、入力画像に適用されるコマンドを入力操作に応じて選択してもよい。
【００４６】
図３は、コマンドリストの一例を示す。
【００４７】
例えば、コマンドリストは、「動き」に属する複数種のコマンド、「見た目」に属する複数種のコマンド、「音」に属する複数種のコマンド、「文字」に属する複数種のコマンド、および「制御」に属する複数種のコマンドなどを含む。
【００４８】
「動き」に属するコマンドは、入力画像を動かすためのコンピュータプログラムである。例えば、「動き」に属するコマンドには、コマンド「ｘ座標を［ｐ１］ずつ変える」およびコマンド「左方向に［ｐ５］度回転する」などがある。また、「制御」に属するコマンドには、コマンド「［ｐ１７］回繰り返す」などがある。ここで、各コマンドに含まれている［ｐｎ］（ｎは１以上の整数）は、画像の変化および音などの変化の度合いを示すパラメータである。本実施の形態では、各コマンドに含まれるパラメータは、予め定められている。
【００４９】
本実施の形態におけるプログラム生成装置１００は、図３に示すコマンドリストからコマンドが入力操作に応じて選択された場合には、その選択されたコマンドのパラメータを入力操作に応じて変更することによって、入力画像に適用される新たなスクリプトを生成してもよい。
【００５０】
［装置構成］
図４は、本実施の形態におけるプログラム生成装置１００の構成を示すブロック図である。
【００５１】
プログラム生成装置１００は、画像を変化させるためのコンピュータプログラムをスクリプトとして生成する装置である。このプログラム生成装置１００は、インターフェース部１０１と、取得部１０２と、画像検索部１０３と、スクリプト選択部１０４と、確定度算出部１０５と、パラメータ変更部１０６と、表示制御部１０７とを備える。なお、プログラム生成装置１００が備える上記各構成要素のうち、インターフェース部１０１を除く、取得部１０２と、画像検索部１０３と、スクリプト選択部１０４と、確定度算出部１０５と、パラメータ変更部１０６と、表示制御部１０７とは処理回路に備えられている。
【００５２】
インターフェース部１０１は、プログラム生成装置１００の画像検索部１０３およびスクリプト選択部１０４がデータベースＤＢにアクセスするための機能を有する。具体的には、インターフェース部１０１は、ＵＳＢ（Universal Serial Bus）端子、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）端子、または無線通信機器などである。データベースＤＢは、複数の画像と、その複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのスクリプトとを格納する記録媒体である。なお、データベースＤＢに格納されている複数のスクリプトのそれぞれは、上述のコマンドリストに含まれる１つのコマンド、または複数のコマンドの組み合わせに相当する。
【００５３】
取得部１０２は、端末装置２００のディスプレイ２００ｄに描かれた画像を入力画像として取得する。また、取得部１０２は、操作ボタンＳの選択などの入力操作に応じた指示を端末装置２００から取得する。
【００５４】
画像検索部１０３は、インターフェース部１０１を介してデータベースＤＢにアクセスする。そして、画像検索部１０３は、データベースＤＢに格納されている複数の画像から、取得部１０２によって取得された入力画像に類似する少なくとも１つの画像を類似画像として検索する。
【００５５】
スクリプト選択部１０４は、インターフェース部１０１を介してデータベースＤＢにアクセスする。そして、スクリプト選択部１０４は、データベースＤＢにおいて、検索された少なくとも１つの類似画像のそれぞれに関連付けられているスクリプトから、１つのスクリプトを候補スクリプト（すなわち候補プログラム）として選択する。具体的には、スクリプト選択部１０４は、検索された少なくとも１つの類似画像のうち、入力画像に最も類似する画像に関連付けられているスクリプトを、候補スクリプトとして選択する。
【００５６】
確定度算出部１０５は、候補スクリプトの入力画像に対する確定度を、画像検索部１０３によって検索された少なくとも１つの類似画像の検索結果に基づいて算出する。
【００５７】
パラメータ変更部１０６は、スクリプト選択部１０４から候補スクリプトを取得し、確定度算出部１０５から確定度を取得する。そして、パラメータ変更部１０６は、その候補スクリプトに含まれる、画像の変化の度合いを示すパラメータを、確定度に応じて変更することによって、提示用スクリプト（すなわち提示用プログラム）を生成する。パラメータは、例えば、画像の移動距離、画像の大きさの変化量、または画像の色成分の変化量などである。例えば、図３に示す各コマンドのうち、コマンド「ｘ座標を［ｐ１］ずつ変える」に含まれるパラメータｐ１は、画像の移動距離である。また、コマンド「大きさが［ｐ８］ずつ変わる」に含まれるパラメータｐ８は、画像の大きさの変化量である。また、コマンド「色（明るさ）が［ｐ７］ずつ変わる」に含まれるパラメータｐ７は、画像の色成分の変化量である。
【００５８】
表示制御部１０７は、生成された提示用スクリプトを実行することによって、端末装置２００のディスプレイ２００ｄに表示されている入力画像を変化させる。また、表示制御部１０７は、生成された提示用スクリプトを端末装置２００のディスプレイ２００ｄに表示する。
【００５９】
［データベース］
図５は、本実施の形態におけるデータベースＤＢに格納されている各データの関連付けを示す。
【００６０】
データベースＤＢは、上述のように、複数の画像と、その複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのスクリプトとを格納している。データベースＤＢに格納されている各画像には、その画像を識別するための識別子である画像ＩＤが付与されている。さらに、データベースＤＢに格納されている各スクリプトにも、そのスクリプトを識別するための識別子であるスクリプトＩＤが付与されている。したがって、データベースＤＢでは、例えば、図５に示すように、画像ＩＤ「Ｉ＿ｘ＿Ｐ１＿１」を有する画像には、スクリプトＩＤ「Ｓｃｒｉｐｔ＿ｘ＿Ｐ１＿１」を有するスクリプトが関連付けられている。また、画像ＩＤ「Ｉ＿ｘ＿Ｐ１＿２」を有する画像には、スクリプトＩＤ「Ｓｃｒｉｐｔ＿ｘ＿Ｐ１＿２」を有するスクリプトが関連付けられている。
【００６１】
なお、本実施の形態では、少なくとも１つの画像と、その少なくとも１つの画像のそれぞれに関連付けられたスクリプトとの組み合わせによって、プロジェクトが構成される。また、このようなプロジェクトは、例えば各端末装置２００のユーザによって生成されて、データベースＤＢに格納される。つまり、ユーザによって画像入力領域２０２に描かれた全ての入力画像と、それらの入力画像に対して生成されたスクリプトとから、プロジェクトが構成される。そして、このプロジェクトがデータベースＤＢに格納される。そこで、データベースＤＢでは、各プロジェクトに対して、そのプロジェクトを識別するための識別子であるプロジェクトＩＤが付与されている。さらに、プロジェクトを生成したユーザに対して、そのユーザを識別するための識別子であるユーザＩＤが付与されている。データベースＤＢでは、複数の画像ＩＤは、そのプロジェクトＩＤごとにグルーピングされ、さらに、複数のプロジェクトＩＤは、そのユーザＩＤごとにグルーピングされている。つまり、１つのプロジェクトに含まれる少なくとも１つの画像のそれぞれは、そのプロジェクトに関連付けられ、ユーザによって生成された少なくとも１つのプロジェクトは、そのユーザに関連付けられている。
【００６２】
図６は、プログラム生成装置１００によって生成されるスクリプトの一例を示す。なお、図６は、スクリプト生成画面２０１を示すが、画像入力領域２０２およびスクリプト表示編集領域２０３以外の構成については、省略する。
【００６３】
例えば、ユーザは、入力操作によって画像入力領域２０２に矢印の画像ｉｍ２を描画する。プログラム生成装置１００の取得部１０２は、その画像ｉｍ２を入力画像として取得し、画像検索部１０３は、その入力画像ｉｍ２に類似する画像を類似画像として、データベースＤＢから検索する。本実施の形態におけるプログラム生成装置１００は、その類似画像の検索結果に応じた提示用スクリプトを生成する。
【００６４】
例えば、類似画像が多くあり（例えば数万枚）、入力画像ｉｍ２に対する類似画像の絞り込みが十分ではない場合がある。
【００６５】
このとき、プログラム生成装置１００のスクリプト選択部１０４は、入力画像ｉｍ２に最も類似している画像に関連付けられているスクリプトを候補スクリプトとして選択する。例えば、候補スクリプトは、「ｘ座標を［１２］ずつ変える」、「左方向に［４０］度回転する」、および「［１２］回繰り返す」からなる。なお、これらのスクリプトに含まれる括弧内の数値は、画像の変化の度合いを示すパラメータである。この場合、プログラム生成装置１００は、図６に示すように、その候補スクリプトのパラメータを、絞り込みの状況に応じて変更する。例えば、絞り込みが不十分であるため、プログラム生成装置１００のパラメータ変更部１０６は、そのパラメータを小さくする。これにより、パラメータ変更部１０６は、「ｘ座標を［３］ずつ変える」、「左方向に［１０］度回転する」、および「［３］回繰り返す」からなる新たなスクリプトを提示用スクリプトとして生成する。そして、プログラム生成装置１００の表示制御部１０７は、その生成された提示用スクリプトをスクリプト表示編集領域２０３に表示し、その提示用スクリプトを実行する。その結果、画像入力領域２０２に表示されている入力画像ｉｍ２は、そのスクリプトにしたがって変化する。
【００６６】
このような入力画像ｉｍ２の変化を見たユーザは、入力画像ｉｍ２の変化の度合いが小さいため、入力画像ｉｍ２に対して検索されたスクリプトの絞り込みが不十分だったことを容易に知ることができる。
【００６７】
図７は、プログラム生成装置１００によって生成されるスクリプトの他の例を示す。なお、図７は、図６と同様、スクリプト生成画面２０１を示すが、画像入力領域２０２およびスクリプト表示編集領域２０３以外の構成については、省略する。
【００６８】
ユーザは、スクリプトの絞り込みが十分に行われていないことを知ると、入力画像ｉｍ２に対してより相応しいスクリプトを生成しようとする。そこで、ユーザは、例えば図２に示す操作ボタンＢ１を選択し、図７に示すように、画像入力領域２０２に表示されている矢印の入力画像ｉｍ２を修正する。プログラム生成装置１００の取得部１０２は、その修正された入力画像ｉｍ２を取得し、画像検索部１０３は、その修正された入力画像ｉｍ２に類似する画像を類似画像として、データベースＤＢから検索する。このとき、例えば、類似画像が少なく（例えば、２０枚）、入力画像ｉｍ２に対する類似画像の絞り込みが十分になる。
【００６９】
この場合にも、プログラム生成装置１００のスクリプト選択部１０４は、上述と同様、修正された入力画像ｉｍ２に最も類似している画像に関連付けられているスクリプトを候補スクリプトとして選択する。例えば、候補スクリプトは、「ｘ座標を［１２］ずつ変える」、「左方向に［４０］度回転する」、および「［１２］回繰り返す」からなる。そして、プログラム生成装置１００は、図７に示すように、その候補スクリプトのパラメータを、絞り込みの状況に応じて変更する。
【００７０】
しかし、図６に示す例と異なり、絞り込みが十分であるため、プログラム生成装置１００のパラメータ変更部１０６は、図６に示す例よりもパラメータの縮小率を下げる。つまり、パラメータ変更部１０６は、「ｘ座標を［１０］ずつ変える」、「左方向に［３０］度回転する」、および「［１０］回繰り返す」からなる新たなスクリプトを提示用スクリプトとして生成する。そして、プログラム生成装置１００の表示制御部１０７は、その生成された提示用スクリプトをスクリプト表示編集領域２０３に表示し、その提示用スクリプトを実行する。その結果、画像入力領域２０２に表示されている修正された入力画像ｉｍ２は、そのスクリプトにしたがって大きく変化する。
【００７１】
ユーザは、図７に示す入力画像ｉｍ２の変化の度合いが大きいため、類似画像の絞り込み、すなわちスクリプトの絞り込みが十分に行われたことを容易に知ることができる。つまり、ユーザは、入力画像ｉｍ２に対してより相応しいスクリプトが生成されたことを容易に知ることができる。
【００７２】
このように、本実施の形態におけるプログラム生成装置１００では、検索される類似画像の数が少ないほど提示用スクリプトのパラメータが大きくなる。したがって、類似画像の絞り込み状況、すなわち候補スクリプトの絞り込み状況を、直観的にユーザに提示することができる。
【００７３】
［全体動作］
図８は、プログラム生成装置１００の全体的な処理動作の一例を示すフローチャートである。
【００７４】
（ステップＳ１１００）
プログラム生成装置１００は、まず、端末装置２００から入力画像を取得する。
【００７５】
（ステップＳ１２００）
次に、プログラム生成装置１００は、その入力画像の取得から予め定められた期間（以下、判定期間という）が経過すると、その入力画像に対するスクリプトの生成を開始する。このスクリプトは、上述の提示用スクリプトである。また、判定期間は、スクリプトの生成を開始するか否かを判定するための期間である。すなわち、プログラム生成装置１００は、入力画像を取得すると直ちに提示用スクリプトの生成を開始することなく、その判定期間だけ待機し、その判定期間には入力画像の修正を受け付ける。プログラム生成装置１００は、その修正を受け付けると、つまり、修正後の入力画像を取得すると、改めてその判定期間だけ待機する。そして、プログラム生成装置１００は、その判定期間が経過すると、上述のように提示用スクリプトの生成を開始する。なお、プログラム生成装置１００は、端末装置２００からスクリプトの生成の指示を受け付けたときには、その判定期間が経過するまで待機することなく、その指示を受け付けたタイミングでスクリプトの生成を開始してもよい。
【００７６】
（ステップＳ１３００）
次に、プログラム生成装置１００は、生成された提示用スクリプトを実行する。
【００７７】
（ステップＳ１４００）
次に、プログラム生成装置１００は、端末装置２００から提示用スクリプトの修正指示があるか否かを判定する。ここで、修正指示があると判定したときには（ステップＳ１４００のＹｅｓ）、プログラム生成装置１００は、ステップＳ１７００の処理に進む。一方、修正指示がないと判定したときには（ステップＳ１４００のＮｏ）、プログラム生成装置１００は、ステップＳ１５００の処理に進む。
【００７８】
（ステップＳ１５００）
プログラム生成装置１００は、端末装置２００から、ステップＳ１１００で取得された入力画像の修正指示があるか否かを判定する。例えば、プログラム生成装置１００は、スクリプト生成画面２０１の操作ボタンＢ１が選択された場合に、入力画像の修正指示があると判定する。ここで、修正指示があると判定したときには（ステップＳ１５００のＹｅｓ）、プログラム生成装置１００は、ステップＳ１８００の処理に進む。一方、修正指示がないと判定したときには（ステップＳ１５００のＮｏ）、プログラム生成装置１００は、ステップＳ１６００の処理に進む。
【００７９】
（ステップＳ１６００）
プログラム生成装置１００は、端末装置２００から新たな入力画像の追加指示があるか否かを判定する。例えば、プログラム生成装置１００は、スクリプト生成画面２０１の操作ボタンＢ２が選択された場合に、新たな入力画像の追加指示があると判定する。ここで、追加指示があると判定したときには（ステップＳ１６００のＹｅｓ）、プログラム生成装置１００は、再びステップＳ１１００からの処理を実行する。一方、追加指示がないと判定したときには（ステップＳ１６００のＮｏ）、プログラム生成装置１００は、スクリプトの生成に関わる全ての処理を終了する。
【００８０】
（ステップＳ１７００）
プログラム生成装置１００は、ステップＳ１４００において提示用スクリプトの修正指示があると判定すると、その提示用スクリプトをユーザの入力操作に応じて修正する。そして、プログラム生成装置１００は、ステップＳ１３００の処理に進む。
【００８１】
（ステップＳ１８００）
プログラム生成装置１００は、ステップＳ１５００において入力画像の修正指示があると判定すると、その入力画像をユーザの入力操作に応じて修正する。そして、プログラム生成装置１００は、ステップＳ１２００の処理に進む。
【００８２】
本実施の形態におけるプログラム生成装置１００は、上記ステップＳ１１００〜Ｓ１８００の処理を行うことによって、スクリプトによってそれぞれ変化する少なくとも１つの画像からなるプロジェクトを生成する。
【００８３】
［スクリプト生成］
図９は、図８のステップＳ１２００のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。
【００８４】
（ステップＳ１２１０）
プログラム生成装置１００の画像検索部１０３は、取得部１０２を介して端末装置２００から入力画像を取得し、インターフェース部１０１を介してデータベースＤＢにアクセスする。そして、画像検索部１０３は、データベースＤＢに格納されている複数の画像から、その入力画像に類似する少なくとも１つの画像を類似画像として検索する。
【００８５】
（ステップＳ１２２０）
次に、確定度算出部１０５は、画像検索部１０３によって検索された少なくとも１つの類似画像の検索結果に基づいて、候補スクリプトの確定度を算出する。例えば、確定度は、検索された少なくとも１つの類似画像の数が多いほど小さく、類似画像の数が少ないほど大きい値である。
【００８６】
（ステップＳ１２３０）
次に、スクリプト選択部１０４は、インターフェース部１０１を介してデータベースＤＢにアクセスする。そして、スクリプト選択部１０４は、データベースＤＢにおいて、検索された少なくとも１つの類似画像のそれぞれに関連付けられているスクリプトから、１つのスクリプトを候補スクリプトとして選択する。そして、パラメータ変更部１０６は、その候補スクリプトから、画像の変化の度合いを示すパラメータを抽出し、そのパラメータを、ステップＳ１２２０で算出された確定度に応じて変更する。これにより、新たなパラメータが生成される。
【００８７】
（ステップＳ１２４０）
次に、パラメータ変更部１０６は、候補スクリプトに含まれるパラメータを、ステップＳ１２３０で変更されたパラメータに置換することによって、提示用スクリプトを生成する。
【００８８】
［画像検索］
図１０は、図９のステップＳ１２１０の類似画像の検索における詳細な処理動作の一例を示すフローチャートである。
【００８９】
（ステップＳ１２１１）
プログラム生成装置１００の画像検索部１０３は、取得部１０２を介して端末装置２００から入力画像を取得する。
【００９０】
（ステップＳ１２１２）
画像検索部１０３は、その入力画像の特徴量を算出する。この特徴量は、例えばＳＩＦＴ（Scale-Invariant Feature Transform）またはＳＵＲＦ（Speeded Up Robust Features）などによってベクトルとして算出される。
【００９１】
（ステップＳ１２１３）
画像検索部１０３は、インターフェース部１０１を介してデータベースＤＢにアクセスする。そして、画像検索部１０３は、データベースＤＢに格納されている複数の画像から、何れかの画像を選択画像として選択する。
【００９２】
（ステップＳ１２１４）
画像検索部１０３は、入力画像の特徴量を示すベクトルと、選択画像の特徴量を示すベクトルとの間の距離を、画像間距離Ｌとして算出する。なお、選択画像の特徴量を示すベクトルは、データベースＤＢに予め保存されていてもよいし、また、画像検索部１０３がその選択画像の特徴量をベクトルとして算出してもよい。また、画像間距離Ｌは、例えば、コサイン距離である。なお、データベースＤＢは、データベースＤＢが格納する複数の画像のそれぞれの特徴量を、当該画像に対応づけて保持してもよい。画像検索部１０３は、データベースＤＢに格納されている複数の画像から、何れかの画像を選択画像として選択する場合、画像検索部１０３は、データベースＤＢから当該選択画像に対応する特徴量を、当該選択画像に対応づけて取得してもよい。
【００９３】
（ステップＳ１２１５）
画像検索部１０３は、その算出された画像間距離Ｌが、予め定められた閾値以上であるか否かを判定する。画像間距離Ｌが閾値以上であると判定すると（ステップＳ１２１５のＹｅｓ）、画像検索部１０３は、ステップＳ１２１６の処理に進む。一方、画像間距離Ｌが閾値未満であると判定すると（ステップＳ１２１５のＮｏ）、画像検索部１０３は、ステップＳ１２１７の処理に進む。
【００９４】
（ステップＳ１２１６）
ステップＳ１２１５において画像間距離Ｌが閾値以上であると判定されると、すなわち、選択画像が入力画像に類似していると判定されると、画像検索部１０３は、その選択画像を類似画像としてリストに追加する。具体的には、画像検索部１０３は、その類似画像の画像ＩＤと、その類似画像に対して算出された画像間距離Ｌとをリストに追加する。このリストを、以下、類似画像リストという。なお、画像検索部１０３は類似画像リストを保持してもよい。
【００９５】
（ステップＳ１２１７）
画像検索部１０３は、データベースＤＢに格納されている全ての画像を選択したか否かを判定する。ここで、画像検索部１０３は、全ての画像を選択していないと判定すると（ステップＳ１２１７のＮｏ）、ステップＳ１２１３からの処理に戻る。一方、画像検索部１０３は、全ての画像を選択したと判定すると（ステップＳ１２１７のＹｅｓ）、類似画像の検索を終了する。この類似画像の検索が終了すると、入力画像に対する上述の類似画像リストが完成する。
【００９６】
図１１は、図９のステップＳ１２２０の確定度の算出における詳細な処理動作の一例を示すフローチャートである。
【００９７】
（ステップＳ１２２１）
プログラム生成装置１００の確定度算出部１０５は、画像検索部１０３から類似画像リストを取得する。
【００９８】
（ステップＳ１２２２）
確定度算出部１０５は、その類似画像リストに含まれる類似画像の数をカウントする。このカウントされた数は例えばａ枚である。
【００９９】
（ステップＳ１２２３）
確定度算出部１０５は、データベースＤＢに格納されている画像の数を取得する。この取得された数は例えばｂ枚である。確定度算出部１０５は、その画像の数を、データベースＤＢから取得してもよく、データベースＤＢ以外の記録媒体から取得してもよい。
【０１００】
（ステップＳ１２２４）
確定度算出部１０５は、ステップＳ１２２２においてカウントされたａ枚と、ステップＳ１２２３において取得されたｂ枚とを用いて、例えば、Ｓｋ＝１−ａ／ｂによって、候補スクリプトの確定度Ｓｋを算出する。つまり、確定度Ｓｋは、０より大きく１よりも小さい値である。このように、本実施の形態における確定度算出部１０５は、データベースＤＢに格納されている複数の画像の数に対する、検索された少なくとも１つの類似画像の数の割合を、１から減算することによって、確定度Ｓｋを算出する。なお、確定度Ｓｋは、類似画像の数に反比例する値であってもよく、例えば、Ｓｋ＝ｂ／ａによって算出されてもよい。
【０１０１】
図１２は、図９のステップＳ１２２０の確定度の算出における詳細な処理動作の他の例を示すフローチャートである。
【０１０２】
（ステップＳ１２２５）
プログラム生成装置１００の確定度算出部１０５は、画像検索部１０３から類似画像リストを取得する。
【０１０３】
（ステップＳ１２２６）
確定度算出部１０５は、その類似画像リストに含まれる類似画像の数をカウントする。このカウントされた数は例えばａ枚である。
【０１０４】
（ステップＳ１２２７）
確定度算出部１０５は、ステップＳ１２２６においてカウントされたａ枚が閾値以上であるか否かを判定する。ここで、閾値未満であると判定すると（ステップＳ１２２７のＮｏ）、確定度算出部１０５は、ステップＳ１２２８の処理に進む。一方、閾値以上であると判定すると（ステップＳ１２２７のＹｅｓ）、確定度算出部１０５は、ステップＳ１２２９の処理に進む。なお、閾値は、例えば、データベースＤＢに格納されている画像の枚数ｂの０．１％の値であってもよい。
【０１０５】
（ステップＳ１２２８）
確定度算出部１０５は、類似画像の数が閾値と比較して少ないため、つまり、データベースＤＢからの類似画像の絞り込みが十分に行われているため、候補スクリプトの確定度Ｓｋを比較的高い値Ｓ１に設定する。
【０１０６】
（ステップＳ１２２９）
確定度算出部１０５は、類似画像の数が閾値と比較して多いため、つまり、データベースＤＢからの類似画像の絞り込みが十分に行われていないため、候補スクリプトの確定度Ｓｋを比較的低い値Ｓ２（＜Ｓ１）に設定する。
【０１０７】
このように、本実施の形態における確定度算出部１０５は、検索された少なくとも１つの類似画像の数が閾値以上の場合には、値Ｓ２を示す確定度Ｓｋを算出してもよい。そして、確定度算出部１０５は、検索された少なくとも１つの類似画像の数が閾値未満の場合には、その値Ｓ２よりも大きいＳ１を示す確定度Ｓｋを算出してもよい。
【０１０８】
図１３は、図９のステップＳ１２３０のパラメータの生成における詳細な処理動作の一例を示すフローチャートである。
【０１０９】
（ステップＳ１２３１）
スクリプト選択部１０４は、画像検索部１０３から類似画像リストを取得する。そして、スクリプト選択部１０４は、その類似画像リストに示される少なくとも１つの類似画像の中から、入力画像に最も類似する１つの画像を最類似画像として選択する。具体的には、スクリプト選択部１０４は、類似画像リストに示される少なくとも１つの類似画像の画像ＩＤのうち、最も大きい画像間距離Ｌに関連付けられている画像ＩＤを、最類似画像の画像ＩＤとして選択する。
【０１１０】
（ステップＳ１２３２）
スクリプト選択部１０４は、データベースＤＢに格納されている複数のスクリプトから、その最類似画像（具体的には最類似画像の画像ＩＤ）に関連付けられているスクリプトを候補スクリプトとして選択する。そして、スクリプト選択部１０４は、その候補スクリプトをパラメータ変更部１０６に出力する。
【０１１１】
（ステップＳ１２３３）
パラメータ変更部１０６は、スクリプト選択部１０４から候補スクリプトを取得し、その候補スクリプトに含まれるパラメータｐを抽出する。
【０１１２】
（ステップＳ１２３４）
パラメータ変更部１０６は、さらに、確定度算出部１０５によって算出された確定度Ｓｋを取得する。
【０１１３】
（ステップＳ１２３５）
パラメータ変更部１０６は、ステップＳ１２３３において抽出されたパラメータｐを、ステップＳ１２３４において取得された確定度Ｓｋに応じて変更する。例えば、パラメータ変更部１０６は、ｐｍ＝ｐ×Ｓｋによって、パラメータｐをパラメータｐｍに変更する。
【０１１４】
なお、図９に示すステップS１２４０に示すように、候補スクリプトのパラメータｐは、パラメータ変更部１０６によってパラメータｐｍに置換される。その結果、パラメータｐｍを含む提示用スクリプトが生成される。
【０１１５】
図１４は、本実施の形態におけるプログラム生成装置１００によって端末装置２００に表示される画面の遷移の一例を示す。
【０１１６】
例えば、図１４の（ａ）に示すように、ユーザは、入力操作によって入力画像ｉｍ２を描画する。この描画された入力画像ｉｍ２は、スクリプト生成画面２０１の画像入力領域２０２に表示される。
【０１１７】
ここで、入力画像ｉｍ２の描画から、上述の判定期間が経過すると、プログラム生成装置１００は、図１４の（ｂ）に示すように、提示用スクリプトの生成を開始する。このとき、プログラム生成装置１００は、提示用スクリプトの生成が行われていることを示す進捗インジケータＰＩを画像入力領域２０２に表示する。
【０１１８】
そして、プログラム生成装置１００は、提示用スクリプトの生成が完了すると、図１４の（ｃ）に示すように、その提示用スクリプトを実行することによって、画像入力領域２０２に表示されている入力画像ｉｍ２を変化させる。
【０１１９】
次に、例えば、図４の（ｄ）に示すように、ユーザによる入力操作によってスクリプト生成画面２０１の操作ボタンＢ１が選択される。このとき、端末装置２００は、入力画像ｉｍ２の修正または編集をプログラム生成装置１００に指示する。この指示を受け付けたプログラム生成装置１００は、図１４の（ａ）に示すスクリプト生成画面２０１を端末装置２００のディスプレイ２００ｄに表示させている状態に戻り、入力画像ｉｍ２の修正または編集を受け付ける。
【０１２０】
または、例えば、図４の（ｄ）に示すように、ユーザによる入力操作によってスクリプト生成画面２０１の操作ボタンＢ２が選択される。このとき、端末装置２００は、新たな入力画像の追加をプログラム生成装置１００に指示する。この指示を受け付けたプログラム生成装置１００は、図１４の（ａ）に示すスクリプト生成画面２０１を端末装置２００のディスプレイ２００ｄに表示させている状態に戻り、新たな入力画像を受け付ける。
【０１２１】
または、例えば、図４の（ｄ）に示すように、ユーザによる入力操作によってスクリプト生成画面２０１の操作ボタンＳが選択される。このとき、端末装置２００は、プログラム生成装置１００に提示用スクリプトの表示を指示する。この指示を受け付けたプログラム生成装置１００は、図１４の（ｅ）に示すように、スクリプト生成画面２０１のスクリプト表示編集領域２０３に、生成された提示用スクリプトを表示する。
【０１２２】
図１４に示す例では、プログラム生成装置１００は、最後に入力画像を取得してから待機期間が経過した後に、自動的に提示用スクリプトの生成を開始する。しかし、プログラム生成装置１００は、ユーザからの明示的な指示に応じて提示用スクリプトの生成を開始してもよい。
【０１２３】
図１５は、本実施の形態におけるプログラム生成装置１００によって端末装置２００に表示される画面の遷移の他の例を示す。
【０１２４】
プログラム生成装置１００は、図１５の（ａ）〜（ｆ）に示すように、操作ボタンＲをスクリプト生成画面２０１に表示させる。この操作ボタンＲは、スクリプトの生成開始をプログラム生成装置１００に指示するために用いられる。
【０１２５】
ユーザは、図１５の（ａ）に示すように、入力操作によって入力画像ｉｍ２を描画する。この描画された入力画像ｉｍ２は、スクリプト生成画面２０１の画像入力領域２０２に表示される。
【０１２６】
ユーザは、入力画像ｉｍ２に対するスクリプトを生成したい場合には、図１５の（ｂ）に示すように、入力操作によって操作ボタンＲを選択する。このとき、例えば、その操作ボタンＲの表示色が変化してもよい。操作ボタンＲが選択されると、端末装置２００は、提示用スクリプトの生成開始をプログラム生成装置１００に指示する。
【０１２７】
その結果、プログラム生成装置１００は、図１５の（ｃ）に示すように、提示用スクリプトの生成を開始する。例えば、プログラム生成装置１００は、図１４に示す例と同様、提示用スクリプトの生成が行われていることを示す進捗インジケータＰＩを画像入力領域２０２に表示する。
【０１２８】
そして、プログラム生成装置１００は、提示用スクリプトの生成が完了すると、図１５の（ｄ）に示すように、その提示用スクリプトを実行することによって、画像入力領域２０２に表示されている入力画像ｉｍ２を変化させる。
【０１２９】
その後、図１４の（ｄ）および（ｅ）と同様、図１５の（ｅ）および（ｆ）に示すように、プログラム生成装置１００は、スクリプト生成画面２０１の表示を変更する。
【０１３０】
このように、本実施の形態におけるプログラム生成装置１００では、入力画像を変化させるためのスクリプトを簡単に生成することができる。さらに、生成されたスクリプトによって変化する入力画像の変化の度合いによって、そのスクリプトの絞り込み状況をユーザに分かりやすく伝えることができる。
【０１３１】
（変形例）
上記実施の形態では、提示用スクリプトが生成されたときには、プログラム生成装置１００は、その提示用スクリプトを一度実行する。本変形例では、その提示用スクリプトを一度ではなく繰り返し実行する。また、本変形例では、プロジェクトも用いて類似画像を絞り込む。
【０１３２】
図１６は、本変形例に係るプログラム生成装置１００の提示用スクリプトによって変化する入力画像の一例を示す図である。
【０１３３】
本変形例に係るプログラム生成装置１００の表示制御部１０７は、パラメータ変更部１０６によって生成された提示用スクリプトを繰り返し実行する。すなわち、表示制御部１０７は、提示用スクリプトによって変化された入力画像を元に戻し、その提示用スクリプトを再び実行することによって、ディスプレイ２００ｄに表示されている入力画像を繰り返し変化させる。
【０１３４】
例えば、図１６の（ａ）に示すように、ボールを表す入力画像ｉｍ６が画像入力領域２０２に描かれた場合、スクリプト選択部１０４は、その入力画像ｉｍ６を移動させる候補スクリプトを選択する。そして、パラメータ変更部１０６は、その候補スクリプトに含まれる、移動距離を示すパラメータを上述の検索結果に応じて変更することによって、提示用スクリプトを生成する。表示制御部１０７は、その生成された提示用スクリプトを実行することによって、画像入力領域２０２に表示されている入力画像ｉｍ６を移動させる。ここで、本変形例に係る表示制御部１０７は、さらに、その提示用スクリプトによって移動された入力画像ｉｍ６を元の位置に戻し、提示用スクリプトを再び実行する。これによって、画像入力領域２０２に表示されている入力画像ｉｍ６を繰り返し変化させる。
【０１３５】
これにより、入力画像ｉｍ６の移動が繰り返し行われるため、その移動範囲、すなわち動作範囲が小さくても、ユーザは、提示用スクリプトが生成されて実行されたことを容易に気づくことができる。その結果、スクリプトの検索状況を直観的にユーザにより分かりやすく伝えることができる。
【０１３６】
また、その入力画像ｉｍ６の動作範囲が小さい場合には、ユーザは、スクリプトの絞り込みが不十分であったと判断する。このとき、ユーザは、新たな入力画像を画像入力領域２０２に描いてもよい。
【０１３７】
例えば、図１６の（ｂ）に示すように、ボールを表す入力画像ｉｍ６の隣に、ラケットを表す新たな入力画像ｉｍ７が描かれる。このとき、プログラム生成装置１００の画像検索部１０３は、入力画像ｉｍ７に対しても類似画像の検索を行う。さらに、画像検索部１０３は、データベースＤＢの中から、入力画像ｉｍ６の類似画像と、入力画像ｉｍ７の類似画像とを含むプロジェクトを検索する。これによって、ボールを表す入力画像ｉｍ６の類似画像がさらに絞り込まれる。その結果、確定度算出部１０５は、大きい値を示す確定度Ｓｋを算出する。したがって、候補スクリプトに含まれるパラメータである移動距離は、図１６の（ａ）に示す場合よりも、短く変更されることがない。そのため、パラメータ変更部１０６は、長い移動距離をパラメータとして含む提示用スクリプトを生成する。表示制御部１０７は、その提示用スクリプトを実行することによって、画像入力領域２０２に表示されている入力画像ｉｍ６を大きく移動させる。つまり、入力画像ｉｍ６の動作範囲は大きくなる。
【０１３８】
これにより、画像入力領域２０２に描画される入力画像の数が増えるほど、すなわち、プロジェクトに含まれる入力画像の数が増えるほど、スクリプトを絞り込むことができ、入力画像により相応しいスクリプトを簡単に生成することができる。
【０１３９】
（その他の変形例）
＜１．分散を用いて確定度を算出＞
上記実施の形態では、候補スクリプトの確定度を、検索された類似画像の数を用いて算出したが、検索された少なくとも１つの類似画像のそれぞれの画像間距離Ｌの分散を用いて確定度を算出してもよい。例えば、確定度算出部１０５は、分散が大きいほど小さく、分散が小さいほど大きい値を、確定度として算出する。具体的には、確定度算出部１０５は、分散に反比例する値を確定度として算出する。または、確定度算出部１０５は、分散が閾値未満であれば、大きい値の確定度を算出し、分散が閾値以上であれば、小さい値の確定度を算出する。
【０１４０】
＜２．入力画像が変化する時間を調整＞
また、上記実施の形態では、候補スクリプトに含まれるパラメータを確定度に応じて変更することによって提示用スクリプトを生成したが、このような提示用スクリプトを生成しなくてもよい。例えば、表示制御部１０７は、候補スクリプトのパラメータを変更することなく、その候補スクリプトを提示用スクリプトとして表示する。この場合、表示制御部１０７は、候補スクリプトによって行われる入力画像の変化にかかる既定時間と、確定度とに基づいて、変化提示時間を算出し、その変化提示時間内で入力画像を変化させる。既定時間は、候補スクリプトに含まれるパラメータとは異なる予め定められた時間である。確定度が小さい場合には、表示制御部１０７は、既定時間よりも短い変化提示時間を算出し、その変化提示時間内で入力画像が変化するように候補スクリプトを実行する。その結果、入力画像は、早送りのように変化する。逆に、確定度が大きい場合には、表示制御部１０７は、確定度が小さい場合よりも長い変化提示時間を算出し、その変化提示時間内で入力画像が変化するように候補スクリプトを実行する。これにより、入力画像は、確定度が小さい場合よりもゆっくりと変化する。
【０１４１】
このように、変化提示時間が確定度に応じて変更されるため、スクリプトの絞り込み状況をユーザに直観的に分かりやすく伝えることができる。
【０１４２】
＜３．予め定められた態様で変化＞
また、確定度が小さい場合には、表示制御部１０７は、画像入力領域２０２に表示されている入力画像を予め定められた態様で変化させてもよい。例えば、表示制御部１０７は、その入力画像を振動させる。このような振動によって、ユーザに対して、入力画像に対するスクリプトが未確定であることを伝えることができる。また、この場合には、スクリプト選択部１０４は、候補スクリプトを選択する必要がない。
【０１４３】
＜４．複数の候補スクリプトを選択＞
また、上記実施の形態では、入力画像に最も類似する最類似画像に関連付けられている１つのスクリプトを候補スクリプトとして選択したが、複数の候補スクリプトを選択してもよい。例えば、スクリプト選択部１０４は、類似画像リストに示される複数の類似画像の中から、画像間距離Ｌの最も大きい類似画像から降順にＮ（Ｎは２以上の整数）個の類似画像を選択する。そして、スクリプト選択部１０４は、その選択したＮ個の類似画像のそれぞれに関連付けられているスクリプトをデータベースＤＢから選択する。
【０１４４】
次に、スクリプト選択部１０４は、その選択したＮ個のスクリプトの総和を候補スクリプトとして生成する。または、スクリプト選択部１０４は、そのＮ個のスクリプトが所定の順番にしたがって実行されるように並べられた配列を、候補スクリプトとして生成する。この所定の順番は、Ｎ個のスクリプトのそれぞれに関連付けられている画像の画像間距離Ｌの降順または昇順である。
【０１４５】
なお、上述の例では、スクリプト選択部１０４は、Ｎ個の類似画像のそれぞれに関連付けられているスクリプトを選択したが、重複するスクリプトを除いてもよい。つまり、Ｎ個のスクリプトに、同じ種類の複数のスクリプトがあれば、スクリプト選択部１０４は、その種類に属する全てのスクリプトを選択せず、それらのスクリプトから１つのスクリプトを選択する。
【０１４６】
つまり、本変形例に係るプログラム生成方法は、表示されている画像を変化させるためのコンピュータプログラムを生成するプログラム生成方法である。このプログラム生成方法では、（ａ）ディスプレイに描かれた画像を入力画像として取得し、（ｂ）複数の画像と、その複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスする。そして、（ｃ）その記録媒体に格納されている複数の画像から、入力画像に類似する少なくとも１つの画像を類似画像として検索する。ここで、（ｄ）その記録媒体において、検索された少なくとも１つの類似画像のそれぞれに関連付けられているコンピュータプログラムに基づいて、入力画像を変化させるためのコンピュータプログラムを候補プログラムとして生成する。そして、（ｅ）その候補プログラムの入力画像に対する確定度を、少なくとも１つの類似画像の検索結果に基づいて算出し、（ｆ）ディスプレイに表示されている入力画像を、算出された確定度に応じて変化させる。なお、上記コンピュータプログラムおよび候補プログラムのそれぞれは、例えばスクリプトである。
【０１４７】
つまり、上記（ｄ）では、検索された少なくとも１つの類似画像のそれぞれに関連付けられているコンピュータプログラムから、１つのコンピュータプログラムを選択することによって、候補プログラムを生成する。また、上記（ｅ）では、検索された少なくとも１つの類似画像のそれぞれの画像間距離Ｌの分散を用いて、入力画像に対する確定度を算出してもよい。上記（ｆ）では、入力画像を、生成される候補プログラムに含まれるパラメータに関わらず、確定度に応じて変化させてもよい。例えば、上記（ｆ）では、確定度が閾値よりも小さい場合には、入力画像を予め定められた態様で変化させてもよい。具体的には、入力画像を振動させてもよい。逆に、確定度が閾値以上の場合には、候補プログラムによって入力画像を変化させてもよい。
【０１４８】
このような場合であっても、上記実施の形態と同様の効果を奏することができる。
【０１４９】
（まとめ）
図１７は、本開示の一態様に係るプログラム生成方法の一例を示すフローチャートである。
【０１５０】
本開示の一態様に係るプログラム生成方法は、表示されている画像を変化させるためのコンピュータプログラムをスクリプトとして生成する方法であって、ステップＳ１１〜Ｓ１７の処理を含む。ユーザは、画像を選択してディスプレイ２００ｄに表示、及び/または入力手段（例えば、マウス）を用いて画像をディスプレイ２００ｄ上に描き表示させる。ステップＳ１１では、ディスプレイ２００ｄに表示された画像を入力画像として取得する。ステップＳ１２では、複数の画像と、複数の画像のそれぞれに関連付けられた、当該画像を変化させるためのスクリプトとを格納するデータベースＤＢにアクセスする。ステップＳ１３では、データベースＤＢに格納されている複数の画像から、入力画像に類似する少なくとも１つの画像を類似画像として検索する。ステップＳ１４では、データベースＤＢにおいて、検索された少なくとも１つの類似画像のそれぞれに関連付けられているスクリプトから、１つのスクリプトを候補スクリプトとして選択する。ステップＳ１５では、候補スクリプトの入力画像に対する確定度を、少なくとも１つの類似画像の検索結果に基づいて算出する。ステップＳ１６では、候補スクリプトに含まれる、画像の変化の度合いを示すパラメータを、確定度に応じて変更することによって、提示用プログラムを生成する。ステップＳ１７では、生成された提示用プログラムを実行することによって、ディスプレイ２００ｄに表示されている入力画像を変化させる。
【０１５１】
これにより、入力画像に類似する少なくとも１つの画像が類似画像として検索され、その少なくとも１つの類似画像のそれぞれに関連付けられているスクリプトから、１つのスクリプトが候補スクリプトとして選択される。そして、この候補スクリプトのパラメータが変更されることによって、入力画像に適用される提示用プログラムが生成される。つまり、入力画像に適用される提示用スクリプトが自動的に生成される。したがって、ディスプレイ２００ｄに入力画像を描画したユーザは、その入力画像に適用されるスクリプトを、予め用意されている複数種のコマンドを組み合わせて作成する必要がない。その結果、入力画像を変化させるためのスクリプトを簡単に生成することができる。
【０１５２】
また、本開示の一態様に係るプログラム生成方法では、候補スクリプトのパラメータは、少なくとも１つの類似画像の検索結果に基づいて算出された確定度に応じて変更される。ここで、データベースＤＢには、複数の画像のそれぞれにスクリプトが関連付けられているため、その類似画像の検索は、入力画像に相応しいスクリプトの検索に相当する。また、パラメータは画像の変化の度合いを示す。したがって、変更されたパラメータを含む提示用スクリプトが実行されると、表示されている入力画像の変化の度合いによって、スクリプトの検索状況を直観的にユーザに分かりやすく伝えることができる。つまり、入力画像に相応しいスクリプトを、データベースＤＢに用意されている多くのスクリプトから十分に絞り込めたのか、逆に、絞り込めていないのかを、ユーザに分かりやすく伝えることができる。例えば、ユーザは、絞り込めていないことが分かると、その入力画像に図形を追加するなどの修正を行う。このときには、スクリプトをより絞り込むことができ、入力画像により相応しいスクリプトを提示用スクリプトとして生成することができる。つまり、入力画像に適したスクリプトを簡単に生成することができる。
【０１５３】
以上、一つまたは複数の態様に係るプログラム生成装置１００またはプログラム生成方法について、実施の形態およびその変形例に基づいて説明したが、本開示は、この実施の形態などに限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態およびその変形例に施したものや、実施の形態と各変形例における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれてもよい。
【０１５４】
例えば、上記実施の形態では、プログラム生成装置１００は、通信ネットワーク３００を介して端末装置２００のディスプレイ２００ｄに入力画像を表示して変化させるが、端末装置２００がプログラム生成装置１００と通信することなく入力画像を変化させてもよい。つまり、端末装置２００が、スクリプトを生成し、そのスクリプトを実行することによって入力画像を変化させてもよい。この場合、例えば、端末装置２００は、プログラム生成装置１００の機能を実現するための制御プログラムを、例えば、プログラム生成装置１００から、ダウンロードする。そして、端末装置２００は、その制御プログラムを実行することによって、上記実施の形態またはその変形例と同様に、スクリプトを生成し、入力画像を変化させる。
【０１５５】
なお、上記実施の形態および各変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態のプログラム生成装置などを実現するソフトウェアは、図８〜図１３および図１７に示すフローチャートに含まれる各ステップをコンピュータに実行させる。
【０１５６】
また、本開示において、ユニット、デバイスの全部又は一部、又は図４に示されるブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路（ＩＣ）、又はＬＳＩ（large scale integration）を含む一つ又は一つ以上の電子回路によって実行されてもよい。ＬＳＩ又はＩＣは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、ＬＳＩやＩＣと呼んでいるが、集積の度合いによって呼び方が変わり、システムＬＳＩ、ＶＬＳＩ(very large scale integration)、若しくはＵＬＳＩ(ultra large scale integration) と呼ばれるかもしれない。 ＬＳＩの製造後にプログラムされる、Field Programmable Gate Array (FPGA)、又はＬＳＩ内部の接合関係の再構成又はＬＳＩ内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
【０１５７】
さらに、ユニット、装置、又は装置の一部の、全部又は一部の機能又は操作は、ソフトウエア処理によって実行することが可能である。この場合、ソフトウエアは一つ又は一つ以上のＲＯＭ、光学ディスク、ハードディスクドライブ、などの非一時的記録媒体に記録され、ソフトウエアが、処理装置（processor）によって実行された場合に、ソフトウエアは、ソフトウエア内の特定の機能を、処理装置（processor）と周辺のデバイスに実行させる。システム又は装置は、ソフトウエアが記録されている一つ又は一つ以上の非一時的記録媒体、処理装置（processor）、及び必要とされるハードウエアデバイス、例えば
インターフェース、を備えていても良い。
【産業上の利用可能性】
【０１５８】
本開示は、画像を変化させるためのコンピュータプログラムを簡単に生成することができるという効果を奏し、例えば、プログラミングの学習システムなどに適用することができる。
【符号の説明】
【０１５９】
１００    プログラム生成装置
１０１    インターフェース部
１０２    取得部
１０３    画像検索部
１０４    スクリプト選択部
１０５    確定度算出部
１０６    パラメータ変更部
１０７    表示制御部
２００    端末装置
２００ｄ    ディスプレイ
２０１    スクリプト生成画面
２０２    画像入力領域
２０３    スクリプト表示編集領域
２０４ａ〜２０４ｃ    画像選択ボタン
２０８    コマンドリストボタン
３００    通信ネットワーク
１０００    プログラム生成システム
Ｂ１    操作ボタン
Ｂ２    操作ボタン
ＤＢ    データベース
Ｒ    操作ボタン
Ｓ    操作ボタン
【図１】
2018165975.tif 000003
【図２】
2018165975.tif 000004
【図３】
2018165975.tif 000005
【図４】
2018165975.tif 000006
【図５】
2018165975.tif 000007
【図６】
2018165975.tif 000008
【図７】
2018165975.tif 000009
【図８】
2018165975.tif 000010
【図９】
2018165975.tif 000011
【図１０】
2018165975.tif 000012
【図１１】
2018165975.tif 000013
【図１２】
2018165975.tif 000014
【図１３】
2018165975.tif 000015
【図１４】
2018165975.tif 000016
【図１５】
2018165975.tif 000017
【図１６】
2018165975.tif 000018
【図１７】
2018165975.tif 000019