(57)【要約】【課題】画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できるようにすること。【解決手段】情報処理装置に、第１画像を表示させる第１表示ステップと、前記情報処理装置の傾きを検知するステップと、前記傾きに応じた方向に、前記第１画像において切り抜く領域を指定する点を移動させて表示させる第２表示ステップと、前記点により指定される領域内の第２画像を切り抜くステップと、を実行させる。【選択図】図９
2019057209.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
第１画像を表示させる第１表示ステップと、
前記情報処理装置の傾きを検知するステップと、
前記傾きに応じた方向に、前記第１画像において切り抜く領域を指定する点を移動させて表示させる第２表示ステップと、
前記点により指定される領域内の第２画像を切り抜くステップと、
を実行させるプログラム。
【請求項２】
前記第２表示ステップは、前記点が前記第１画像のエッジの位置に移動すると、前記点を当該位置で停止させる、
請求項１に記載のプログラム。
【請求項３】
前記第２表示ステップは、前記点が前記第１画像のエッジの位置に移動すると、当該エッジの強さに応じた仮想的な粘着力または摩擦力により、前記点を当該位置で停止させる、
請求項２に記載のプログラム。
【請求項４】
前記第２表示ステップは、ユーザにより前記点が操作されると、前記点を当該操作された位置に固定させる、
請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
前記点は、複数の点を有し、
前記第２表示ステップは、所定の方向に並べられた前記複数の点を同時に移動させる、
請求項１から４のいずれか一項に記載のプログラム。
【請求項６】
前記点は、第１の複数の点と、第２の複数の点とを有し、
前記第２表示ステップは、前記所定の方向に並べられた前記第１の複数の点を、画面の一方の側から同時に移動させた後、前記所定の方向に並べられた前記第２の複数の点を、前記画面において前記一方と向かい合う他方の側から同時に移動させる、
請求項５に記載のプログラム。
【請求項７】
情報処理装置が、
第１画像を表示させる第１表示ステップと、
前記情報処理装置の傾きを検知するステップと、
前記傾きに応じた方向に、前記第１画像において切り抜く領域を指定する点を移動させて表示させる第２表示ステップと、
前記点により指定される領域内の第２画像を切り抜くステップと、
を実行する情報処理方法。
【請求項８】
情報処理装置であって、
前記情報処理装置の傾きを検出する傾き検出部と、
第１画像を表示させ、前記情報処理装置の傾きに応じた方向に、前記第１画像において切り抜く領域を指定する点を移動させる表示制御部と、
前記点により指定される領域内の第２画像を切り抜く切り抜き部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【０００２】
従来、ユーザの操作により、画像の一部分を切り抜き（切り取り、トリミング）できるツール（プログラム）が知られている（例えば、特許文献１、非特許文献１を参照）。このツールにおいて、例えば、切り抜く領域は、ユーザにより指やマウスカーソル等で当該領域の輪郭をなぞる操作により指定される。
【０００３】
なお、切り抜いた画像は、例えば、ＳＮＳ（Social Networking Service）のインスタントメッセージングサービス等で送信するスタンプ等に利用できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０１６６７０号公報
【非特許文献】
【０００５】
【非特許文献１】GIMP、 "2.7. Intelligent Scissors"、[online]、［平成２９年９月１３日検索］、インターネット＜URL: https://docs.gimp.org/en/gimp-tool-iscissors.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、例えば、写真等の画像に含まれる被写体等のオブジェクトの輪郭を、指やマウスカーソル等によりなぞる操作により指定する場合、当該輪郭を正確に指定することは難しい場合があるという問題がある。
【０００７】
本開示は、上記問題に鑑みてなされたものであり、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の一実施形態に係るプログラムは、情報処理装置に、第１画像を表示させる第１表示ステップと、前記情報処理装置の傾きを検知するステップと、前記傾きに応じた方向に、前記第１画像において切り抜く領域を指定する点を移動させて表示させる第２表示ステップと、前記点により指定される領域内の第２画像を切り抜くステップと、を実行させる。
【図面の簡単な説明】
【０００９】
【図１】本開示の一実施形態における通信システムの構成を示す図である。
【図２】画像の一部分を切り抜く際の処理の一例を示すフローチャートである。
【図３Ａ】端末における原画像の表示例について説明する図である。
【図３Ｂ】端末における切り抜き範囲の確認画面の表示例について説明する図である。
【図４】第１実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【図５】画像が拡大表示される前の編集点を表示させる方法の一例について説明する図である。
【図６】画像が拡大表示された際の編集点の数を増加させて表示させる方法の一例について説明する図である。
【図７】画像が拡大表示された後に縮小表示された際の編集点の数を減少させて表示させる方法の一例について説明する図である。
【図８】第２の実施形態における通信システムの構成を示す図である。
【図９】第２実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【図１０】第１の移動点群の表示画面の一例を説明する図である。
【図１１】元画像をエッジ検出されたデータの一例を説明する図である。
【図１２】端末の筐体を傾けた際の移動点の移動について説明する図である。
【図１３】端末の筐体を傾けた際の移動点の移動について説明する図である。
【図１４】ユーザ操作による移動点の位置が固定された表示画面の一例を示す図である。
【図１５】第２の移動点群の表示画面の一例を説明する図である。
【図１６】大まかに指定された領域内のエッジを検出した結果のデータの一例を示す図である。
【図１７】第３実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【図１８】フリック操作により編集点を移動させて表示させる処理について説明する図である。
【図１９Ａ】エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【図１９Ｂ】エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【発明を実施するための形態】
【００１０】
＜法的事項の遵守＞
本明細書に記載の開示を実施する場合は、通信の秘密等、本開示を実施に関する実施国の法的事項を遵守の上で実施されるものであることに留意されたい。
【００１１】
本開示に係るプログラム、情報処理方法、及び情報処理装置を実施するための実施形態について、図面を参照して説明する。
【００１２】
＜システム構成＞
図１は、本開示の一実施形態における通信システムの構成を示す図である。図１に開示されるように、通信システムでは、ネットワーク３０を介してサーバ１０と、端末２０（端末２０Ａ，端末２０Ｂ，端末２０Ｃ）とが接続される。サーバ１０は、ネットワーク３０を介してユーザが所有する端末２０に、端末２０間でのメッセージの送受信を実現するサービスを提供する。なお、ネットワーク３０に接続される端末２０の数は限定されない。
【００１３】
ネットワーク３０は、１以上の端末２０と、１以上のサーバ１０とを接続する役割を担う。すなわち、ネットワーク３０は、端末２０がサーバ１０に接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。
【００１４】
ネットワーク３０のうちの１つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよい。ネットワーク３０は、限定でなく例として、アドホック・ネットワーク（ad hoc network）、イントラネット、エクストラネット、仮想プライベート・ネットワーク（virtual private network：ＶＰＮ）、ローカル・エリア・ネットワーク（local area network：ＬＡＮ）、ワイヤレスＬＡＮ（wireless LAN：ＷＬＡＮ）、広域ネットワーク（wide area network：ＷＡＮ）、ワイヤレスＷＡＮ（wireless WAN：ＷＷＡＮ）、大都市圏ネットワーク（metropolitan area network：ＭＡＮ）、インターネットの一部、公衆交換電話網（Public Switched Telephone Network：ＰＳＴＮ）の一部、携帯電話網、ＩＳＤＮｓ（integrated service digital networks）、無線ＬＡＮｓ、ＬＴＥ（long term evolution）ＣＤＭＡ（code division multiple access）、ブルートゥース（Bluetooth（登録商標））、衛星通信など、または、これらの２つ以上の組合せを含むことができる。ネットワーク３０は、１つまたは複数のネットワーク３０を含むことができる。
【００１５】
端末２０（端末２０Ａ，端末２０Ｂ，端末２０Ｃ）は、各実施形態において記載する機能を実現できる情報処理端末であればどのような端末であってもよい。端末２０は、限定ではなく例として、スマートフォン、携帯電話（フィーチャーフォン）、コンピュータ（限定でなく例として、デスクトップ、ラップトップ、タブレットなど）、メディアコンピュータプラットホーム（限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ）、ハンドヘルドコンピュータデバイス（限定でなく例として、ＰＤＡ・（personal digital assistant）、電子メールクライアントなど）、ウェアラブル端末（メガネ型デバイス、時計型デバイスなど）、または他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、端末２０は情報処理端末と表現されても良い。
【００１６】
端末２０Ａ、端末２０Ｂおよび端末２０Ｃの構成は基本的には同一であるため、以下の説明においては、端末２０について説明する。また、必要に応じて、ユーザXが利用する端末を端末２０Xと表現し、ユーザXまたは端末２０Xに対応づけられた、所定のサービスにおけるユーザ情報をユーザ情報Xと表現する。なお、ユーザ情報とは、所定のサービスにおいてユーザが利用するアカウントに対応付けられたユーザの情報である。ユーザ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、ユーザの識別子などのユーザに対応づけられた情報を含み、これらのいずれか一つまたは、組み合わせであってもよい。
【００１７】
サーバ１０は、端末２０に対して、所定のサービスを提供する機能を備える。サーバ１０は、各実施形態において記載する機能を実現できる情報処理装置であればどのような装置であってもよい。サーバ１０は、限定でなく例として、サーバ装置、コンピュータ（限定でなく例として、デスクトップ、ラップトップ、タブレットなど）、メディアコンピュータプラットホーム（限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ）、ハンドヘルドコンピュータデバイス（限定でなく例として、ＰＤＡ、電子メールクライアントなど）、あるいは他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、サーバ１０は情報処理装置と表現されても良い。
【００１８】
＜ハードウェア（HW）構成＞ 
図１を用いて、通信システムに含まれる各装置のHW構成について説明する。
【００１９】
（１）端末のHW構成
【００２０】
端末２０は、制御装置２１（ＣＰＵ：central processing unit（中央処理装置））、記憶装置２８、通信Ｉ／Ｆ２２（インタフェース）、入出力装置２３、表示装置２４、マイク２５、スピーカ２６、カメラ２７を備える。端末２０のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。
【００２１】
通信Ｉ／Ｆ２２は、ネットワーク３０を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信Ｉ／Ｆ２２は、ネットワーク３０を介して、サーバ１０との通信を実行する機能を有する。通信Ｉ／Ｆ２２は、各種データを制御装置２１からの指示に従って、サーバ１０に送信する。また、通信Ｉ／Ｆ２２は、サーバ１０から送信された各種データを受信し、制御装置２１に伝達する。
【００２２】
入出力装置２３は、端末２０に対する各種操作を入力する装置、および、端末２０で処理された処理結果を出力する装置を含む。入出力装置２３は、入力装置と出力装置が一体化していても良いし、入力装置と出力装置に分離していてもよい。
【００２３】
入力装置は、ユーザからの入力を受け付けて、当該入力に係る情報を制御装置２１に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ（動画像を介した操作入力）、マイク（音声による操作入力）を含む。
【００２４】
出力装置は、制御装置２１で処理された処理結果を出力することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力装置は、限定でなく例として、 タッチパネル、タッチディスプレイ、スピーカ（音声出力）、レンズ（限定でなく例として３D（three dimensions）出力や、ホログラム出力）、プリンターなどを含む。
【００２５】
表示装置２４は、フレームバッファに書き込まれた表示データに従って、表示することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。表示装置２４は、限定でなく例として、タッチパネル、タッチディスプレイ、モニタ（限定でなく例として、液晶ディスプレイやOELD（organic electroluminescence display））、ヘッドマウントディスプレイ（ＨＤＭ：Head Mounted Display）、プロジェクションマッピング、ホログラム、空気中など（真空であってもよい）に画像やテキスト情報等を表示可能な装置を含む。なお、これらの表示装置２４は、３Dで表示データを表示可能であってもよい。
【００２６】
入出力装置２３がタッチパネルの場合、入出力装置２３と表示装置２４とは、略同一の大きさおよび形状で対向して配置されていても良い。
【００２７】
制御装置２１は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。
【００２８】
制御装置２１は、限定でなく例として、中央処理装置（ＣＰＵ）、マイクロプロセッサ（microprocessor）、プロセッサコア（processor core）、マルチプロセッサ（multiprocessor）、ＡＳＩＣ（application-specific integrated circuit）、ＦＰＧＡ（field programmable gate array）を含む。
【００２９】
記憶装置２８は、端末２０が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶装置２８は、限定でなく例として、ＨＤＤ（hard disk drive）、ＳＳＤ（solid state drive）、フラッシュメモリ、ＲＡＭ（random access memory）、ＲＯＭ（read only memory）など各種の記憶媒体を含む。
【００３０】
端末２０は、プログラムＰを記憶装置２８に記憶し、このプログラムＰを実行することで、制御装置２１が、制御装置２１に含まれる各部としての処理を実行する。つまり、記憶装置２８に記憶されるプログラムＰは、端末２０に、制御装置２１が実行する各機能を実現させる。
【００３１】
マイク２５は、音声データの入力に利用される。スピーカ２６は、音声データの出力に利用される。カメラ２７は、動画像データの取得に利用される。
【００３２】
（２）サーバのHW構成 
サーバ１０は、制御装置１１（ＣＰＵ）、記憶装置１５、通信Ｉ／Ｆ１４（インタフェース）、入出力装置１２、ディスプレイ１３を備える。サーバ１０のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。
【００３３】
制御装置１１は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。
【００３４】
制御装置１１は、代表的には中央処理装置（ＣＰＵ）、であり、その他にマイクロプロセッサ、プロセッサコア、マルチプロセッサ、ＡＳＩＣ、ＦＰＧＡであってもよい。ただし、本開示において、制御装置１１は、これらに限定されない。
【００３５】
記憶装置１５は、サーバ１０が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶装置１５は、ＨＤＤ、ＳＳＤ、フラッシュメモリなど各種の記憶媒体により実現される。ただし、本開示において、記憶装置１５は、これらに限定されない。
【００３６】
通信Ｉ／Ｆ１４は、ネットワーク３０を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信Ｉ／Ｆ１４は、ネットワーク３０を介して、端末２０との通信を実行する機能を有する。通信Ｉ／Ｆ１４は、各種データを制御装置１１からの指示に従って、端末２０に送信する。また、通信Ｉ／Ｆ１４は、端末２０から送信された各種データを受信し、制御装置１１に伝達する。
【００３７】
入出力装置１２は、サーバ１０に対する各種操作を入力する装置により実現される。入出力装置１２は、ユーザからの入力を受け付けて、当該入力に係る情報を制御装置１１に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入出力装置１２は、代表的にはキーボード等に代表されるハードウェアキーや、マウス等のポインティングデバイスで実現される。なお、入出力装置１２、限定でなく例として、タッチパネルやカメラ（動画像を介した操作入力）、マイク（音声による操作入力）を含んでいてもよい。ただし、本開示において、入出力装置１２は、これらに限定されない。
【００３８】
ディスプレイ１３は、代表的にはモニタ（限定でなく例として、液晶ディスプレイやOELD（organic electroluminescence display））で実現される。なお、ディスプレイ１３は、ヘッドマウントディスプレイ（ＨＤＭ）などであってもよい。なお、これらのディスプレイ１３は、３Dで表示データを表示可能であってもよい。ただし、本開示において、ディスプレイ１３は、これらに限定されない。
【００３９】
サーバ１０は、プログラムＰを記憶装置１５に記憶し、このプログラムＰを実行することで、制御装置１１が、制御装置１１に含まれる各部としての処理を実行する。つまり、記憶装置１５に記憶されるプログラムＰは、サーバ１０に、制御装置１１が実行する各機能を実現させる。
【００４０】
本開示の各実施形態においては、端末２０および／またはサーバ１０のＣＰＵがプログラムPを実行することにより、実現するものとして説明する。
【００４１】
なお、端末２０の制御装置２１、および／または、サーバ１０の制御装置１１は、ＣＰＵだけでなく、集積回路（ＩＣ（Integrated Circuit）チップ、ＬＳＩ（Large Scale Integration））等に形成された論理回路（ハードウェア）や専用回路によって各処理を実現してもよい。また、これらの回路は、１または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を１つの集積回路により実現されることとしてもよい。また、ＬＳＩは、集積度の違いにより、ＶＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩなどと呼称されることもある。
【００４２】
また、本開示の各実施形態のプログラムP(ソフトウェアプログラム/コンピュータプログラム)は、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。
【００４３】
記憶媒体は適切な場合、１つまたは複数の半導体ベースの、または他の集積回路（ＩＣ）（限定でなく例として、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）など）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ（ＦＤＤ）、磁気テープ、固体ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切な記憶媒体、またはこれらの２つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。なお、記憶媒体はこれらの例に限られず、プログラムＰを記憶可能であれば、どのようなデバイスまたは媒体であってもよい。
【００４４】
サーバ１０および／または端末２０は、記憶媒体に記憶されたプログラムＰを読み出し、読み出したプログラムＰを実行することによって、各実施形態に示す複数の機能部の機能を実現することができる。
【００４５】
また、本開示のプログラムＰは、当該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して、サーバ１０および／または端末２０に提供されてもよい。サーバ１０および／または端末２０は、限定でなく例として、インターネット等を介してダウンロードしたプログラムＰを実行することにより、各実施形態に示す複数の機能部の機能を実現する。
【００４６】
また、本開示の各実施形態は、プログラムPが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。 
サーバ１０および／または端末２０における処理の少なくとも一部は、１以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【００４７】
端末２０における処理の少なくとも一部を、サーバ１０により行う構成としてもよい。この場合、端末２０の制御装置２１の各機能部の処理のうち少なくとも一部の処理を、サーバ１０で行う構成としてもよい。
【００４８】
サーバ１０における処理の少なくとも一部を、端末２０により行う構成としてもよい。この場合、サーバ１０の制御装置１１の各機能部の処理のうち少なくとも一部の処理を、端末２０で行う構成としてもよい。
【００４９】
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよい。
【００５０】
なお、本開示のプログラムは、限定でなく例として、ActionScript、JavaScript(登録商標)などのスクリプト言語、Objective-C、Java(登録商標)などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装される。
【００５１】
＜第１の実施形態＞
第１の実施形態は、原画像において切り抜く領域（範囲）の輪郭を修正するための点であって、当該輪郭上の点である編集点の数を、画像を拡大表示した際に、増加させて表示させる形態である。第１の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第１の実施形態に記載の内容は、後述する他の各実施形態のいずれにも適用可能である。
【００５２】
＜機能構成＞
（１）端末の機能構成
【００５３】
図１に示すように、端末２０は、制御装置２１により実現される機能として、受付部２０１、表示制御部２０２、画像処理部２０３、及び制御部２０４を有する。
【００５４】
受付部２０１は、ユーザからの操作を受け付ける。受付部２０１は、例えば、表示されている原画像において切り抜く領域の輪郭を指定する操作等を受け付ける。
【００５５】
表示制御部２０２は、画像処理部２０３またはサーバ１０からの指示に従い、画像をトリミングする際の表示画面を、端末２０の画面に表示させる。表示制御部２０２は、例えば、画像において切り抜く領域（範囲）の輪郭を修正するための点であって、当該輪郭上の点である編集点を複数表示させる。また、表示制御部２０２は、ユーザの操作に応答して、当該画像の少なくとも一部を拡大して表示させるとともに、編集点の数を増加させて表示させる。
【００５６】
画像処理部２０３は、複数の編集点により指定される輪郭内の画像を切り抜く画像処理を行う。
【００５７】
制御部２０４は、画像処理部２０３により切り抜かれた画像を含むコンテンツを生成し、サーバ１０に送信する。
（２）サーバの機能構成
図１に示すように、サーバ１０は、制御装置１１により実現される機能として、取得部１０１、表示制御部１０２、及び制御部１０３を有する。
【００５８】
取得部１０１は、端末２０からのデータを取得する。
【００５９】
表示制御部１０２は、端末２０の画面の表示を制御する。
【００６０】
制御部１０３は、端末２０から受信したコンテンツを、例えば、ＳＮＳのインスタントメッセージングサービス等で利用可能なスタンプ等として、各端末２０のユーザに販売する。
＜処理＞
次に、図２を参照し、端末２０において画像の一部分を切り抜く際の処理の一例について説明する。図２は、画像の一部分を切り抜く際の処理の一例を示すフローチャートである。図３Ａは、端末２０における原画像の表示例について説明する図である。図３Ｂは、端末２０における切り抜き範囲の確認画面の表示例について説明する図である。
【００６１】
ステップＳ１において、端末２０の受付部２０１は、ユーザから、画像を選択する操作を受け付ける。
【００６２】
続いて、端末２０の表示制御部２０２は、選択された画像（「第１画像」）を画面に表示させる（ステップＳ２）。ここで、図３Ａに示すように、例えば、端末２０において予め保存されている画像、または端末２０にて撮影した画像が表示される。図３Ａの例では、犬３０１の画像がユーザに選択され、表示されている。
【００６３】
続いて、端末２０の受付部２０１、及び表示制御部２０２は、ユーザからの操作により、当該選択された画像における切り抜き範囲を編集する（ステップＳ３）。
【００６４】
続いて、端末２０の画像処理部２０３は、ユーザの操作により、編集された切り抜き範囲内の画像（「第２画像」）をトリミングする（ステップＳ４）。図３Ｂの例では、編集された切り抜き範囲外の領域の輝度を下げることにより、編集された切り抜き範囲内である犬３０１の顔の部分３０１Ａが強調されて表示されている。図３Ｂの例では、確認ボタン３０２がタップされると、編集された切り抜き範囲内である部分３０１Ａの画像が、切り抜かれて保存される。
【００６５】
≪第１実施形態のトリミング処理≫
次に、図４乃至図７を参照し、ステップＳ３の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。図４は、切り抜き範囲を編集する際の処理の一例を示すフローチャートである。図５は、画像が拡大表示される前の編集点を表示させる方法の一例について説明する図である。図６は、画像が拡大表示された際の編集点の数を増加させて表示させる方法の一例について説明する図である。図７は、画像が拡大表示された後に縮小表示された際の編集点の数を減少させて表示させる方法の一例について説明する図である。
【００６６】
ステップＳ１０１において、受付部２０１は、ユーザの操作に応答して、表示されている原画像において切り抜く領域の輪郭を取得する。
【００６７】
続いて、表示制御部２０２は、当該輪郭上に、複数の編集点を表示させる（ステップＳ１０２）。ここで、表示制御部２０２は、例えば、ユーザが画面を指またはマウスカーソルでなぞる操作を行うと、ユーザによりなぞられた各画素を通る線を当該輪郭とする。図５の例では、互いに隣り合う編集点４０１及び編集点４０２等が輪郭４００上に表示されている。ここで、表示制御部２０２は、例えば、輪郭上に、当該輪郭上における所定の間隔で編集点を表示してもよい。または、表示制御部２０２は、例えば、隣り合う２つの編集点の間の当該輪郭上の長さが第１閾値（例えば、６ｍｍ）以上離れた位置となり、かつ各編集点が当該輪郭上の特徴点の位置となる位置に編集点をそれぞれ表示してもよい。なお、輪郭上の特徴点については後述する。
【００６８】
続いて、受付部２０１は、表示されている原画像を拡大するための操作をユーザから受け付ける（ステップＳ１０３）。ここで、受付部２０１は、例えば、タッチパネル画面上に親指、及び人差し指等を乗せ、二本の指で押し広げるピンチアウト操作等を受け付ける。
【００６９】
続いて、表示制御部２０２は、表示されている原画像を拡大して表示させるとともに、編集点の数を増加させて表示させる（ステップＳ１０４）。
【００７０】
図６の例では、表示制御部２０２は、図５の画像が拡大表示され、編集点４０１と編集点４０２との間の輪郭上の長さが上述した第１閾値以上となっている場合、編集点４０１と編集点４０２との間の輪郭上に、編集点４０３を追加して表示させている。また、図６の例では、表示制御部２０２は、編集点４０１と編集点４０２との間の輪郭上で、編集点４０１と編集点４０２とからそれぞれ輪郭上の長さが第２閾値（例えば、３ｍｍ）以上離れた所定の位置に、編集点４０３を追加して表示させている。
【００７１】
表示制御部２０２は、編集点４０３を、編集点４０１から編集点４０２までの輪郭上の中間に追加してもよい。または、表示制御部２０２は、編集点４０３を、編集点４０１から編集点４０２までの輪郭上の特徴点に追加してもよい。ここで、輪郭上の特徴点とは、当該輪郭の曲がり具合の特徴を表す点であり、例えば、当該輪郭を代数曲線にて表した場合の尖点等の特異点、及び当該代数曲線における曲率の極値点等を、輪郭上の特徴点として用いてもよい。
【００７２】
続いて、受付部２０１は、編集点の位置を画面上の任意の位置に移動させる操作をユーザから受け付ける（ステップＳ１０５）。ここで、受付部２０１は、例えば、タッチパネル画面上の編集点に指で触れた状態で当該指を滑らせるスライド操作等を受け付ける。
【００７３】
続いて、表示制御部２０２は、当該操作に応答して、操作された編集点の位置を移動させる（ステップＳ１０６）。ここで、表示制御部２０２は、例えば、操作された編集点を、スライド操作等により指が移動された位置まで移動させるとともに、当該操作された編集点から、輪郭上の長さが第３閾値（例えば、１ｃｍ）以下である１以上の他の編集点（以下で「周辺の編集点」との称する。）も、当該操作された編集点の移動方向に従った方向に移動させてもよい。この場合、表示制御部２０２は、例えば、周辺の編集点の移動距離は、当該操作された編集点の移動距離に比例し、当該操作された編集点から当該周辺の編集点までの輪郭上の長さに反比例するようにしてもよい。
【００７４】
続いて、表示制御部２０２は、移動後の編集点を通る輪郭を算出し、算出した変更後の輪郭を表示させる（ステップＳ１０７）。ここで、表示制御部２０２は、移動後の編集点を通る輪郭を、現在表示されている各編集点を通る代数曲線として算出してもよい。または、表示制御部２０２は、移動後の編集点を通る輪郭を、現在表示されている各編集点を通る直線等として算出してもよい。
【００７５】
続いて、表示制御部２０２は、現在表示されている編集点、及び変更後の輪郭に基づいて、表示させる編集点の追加、または削除を行う（ステップＳ１０８）。ここで、表示制御部２０２は、例えば、編集点の移動により、隣り合う２つの編集点の間の当該輪郭上の長さが第４閾値（例えば、１ｃｍ）以上離れた位置となる場合、各編集点が当該輪郭上の特徴点の位置となる位置に編集点を追加する。また、表示制御部２０２は、編集点の移動により、隣り合う２つの編集点の間の当該輪郭上の長さが上述した第２閾値未満の位置となる場合、当該隣り合う２つの編集点のうちの一方を削除する（非表示とする）。
【００７６】
続いて、受付部２０１は、表示されている原画像を縮小するための操作をユーザから受け付ける（ステップＳ１０９）。ここで、受付部２０１は、例えば、タッチパネル画面上に親指、及び人差し指等を乗せ、二本の指でつまむような動作をするピンチイン操作等を受け付ける。
【００７７】
続いて、表示制御部２０２は、拡大して表示されている原画像を縮小して表示させるとともに、編集点の数を減少させて表示させる（ステップＳ１１０）。
【００７８】
ここで、表示制御部２０２は、ステップＳ１０５の編集点の位置を移動させる操作に基づいて位置が変更された編集点は表示を継続し、ステップＳ１０５の編集点の位置を移動させる操作によっては位置が変更されていない編集点のみ数を減少させて表示させてもよい。これにより、画像を縮小した場合でも、変更後の輪郭の特徴点等となっている、ユーザ操作により位置が変更された編集点の表示が継続されるため、輪郭の形状をより明確にユーザに表示することができる。
【００７９】
なお、この場合、表示制御部２０２は、例えば、ステップＳ１０５の編集点の位置を移動させる操作に基づいて位置が変更された編集点としては、例えば、ユーザにより操作をされた一の編集点のみとしてもよい。または、表示制御部２０２は、当該一の編集点に加え、ステップＳ１０６において当該一の編集点の移動に合わせて自動で移動させた当該一の編集点の周辺の編集点、及びステップＳ１０８で追加された編集点等を含むようにしてもよい。表示制御部２０２は、図７の例では、編集点６０１、及び編集点６０２等に加え、拡大表示された際に追加された後、ユーザの操作により位置が変更された編集点６０３も、縮小表示された際にも継続して表示させている。
【００８０】
または、表示制御部２０２は、ステップＳ１０５の編集点の位置を移動させる操作に基づいて位置が変更された編集点についても、数を減少させて表示させてもよい。この場合、表示制御部２０２は、例えば、青丸等で表示される編集点は表示しないようにしても、白線等で表示される輪郭の線は、位置が変更された編集点を通る輪郭を表示してもよい。この場合、表示制御部２０２は、例えば、ステップＳ１０７にて移動後の編集点を通る輪郭を代数曲線として算出して記憶しておいてもよい。そして、表示制御部２０２は、縮小表示された際に編集点の表示を消し、再度拡大表示された際に、記憶されている代数曲線の特徴点等となっている、ステップＳ１０５のユーザ操作により位置が変更された編集点を再度表示させる。これにより、縮小表示された際に消された編集点を、再度拡大表示であれた際に復元することができる。
＜第１実施形態の効果＞
上述した第１の実施形態によれば、画像が拡大表示された際に、自動で編集点の数を増加させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末２０の処理負荷を軽減できるという効果も奏する。
【００８１】
＜第２の実施形態＞
第２の実施形態は、ユーザによる端末２０の筐体を傾ける操作に応答して、原画像において切り抜く領域を指定する点を移動させて表示させる形態である。第２の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第２の実施形態は一部を除いて第１の実施形態と同様であるため、適宜説明を省略する。以下では、第１の実施形態と共通する部分については説明を省略し、異なる部分についてのみ説明する。なお、第２の実施形態に記載の内容は、他の各実施形態のいずれにも適用可能である。
＜ハードウェア（HW）構成＞
図８は、第２の実施形態における通信システムの構成を示す図である。図８に示すように、第２の実施形態に係る端末２０は、傾きセンサ２９をさらに備える。傾きセンサ２９は、例えば、加速度センサ、及び角速度センサ等であり、端末２０の筐体の傾きを検出するためのセンサである。
＜機能構成＞
図８に示すように、第２の実施形態に係る端末２０は、制御装置２１により実現される機能として、傾き検出部２０５を有する。
【００８２】
傾き検出部２０５は、傾きセンサ２９からの出力に基づいて、端末２０の筐体の傾きを検出する。
＜処理＞
≪第２実施形態のトリミング処理≫
次に、図９乃至図１３を参照し、ステップＳ３の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。図９は、第２実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。図１０は、第１の移動点群の表示画面の一例を説明する図である。図１１は、元画像をエッジ検出されたデータの一例を説明する図である。図１２、及び図１３は、端末２０の筐体を傾けた際の移動点の移動について説明する図である。図１４は、ユーザ操作による移動点の位置が固定された表示画面の一例を示す図である。図１５は、第２の移動点群の表示画面の一例を説明する図である。
【００８３】
ステップＳ２０１において、表示制御部２０２は、受付部２０１により受け付けられたユーザの操作に応答して、表示されている原画像において切り抜く領域を指定するための１以上の移動点である第１の移動点群（「第１の複数の点」）を画面の一方の側から表示させる。図１０の例では、表示制御部２０２は、端末２０の画面の上辺付近から、横方向に並べられた複数の移動点１００１−１、１００１−２、乃至１００１−Ｎと、各移動点を結ぶ線１００２（トリミング線）を表示させている。
【００８４】
続いて、表示制御部２０２は、表示されている原画像のエッジを検出する（ステップＳ２０２）。ここで、表示制御部２０２は、例えば、画像を１次微分して勾配の大きさ（エッジの強さ）を計算し、勾配の方向からエッジの局所的方向を予測し、その方向の勾配が局所的に極大となる箇所を探す手法を用いてもよい。または、表示制御部２０２は、例えば、画像から求めた２次微分式でのゼロ交差を探す手法等を用いてもよい。または、その他の公知の手法を用いてもよい。図１１では、図１０に示す元画像をエッジ検出した結果のデータ１１０１の一例が示されている。図１１の例では、検出されたエッジの強さが所定の閾値以上である画素が黒で示されている。表示制御部２０２は、検出されたエッジの強さのうち、所定の閾値以上の値のみを用いるようにしてもよい。
【００８５】
続いて、表示制御部２０２は、ユーザによる端末２０の筐体を任意の方向に傾ける操作に応答して、複数の移動点１００１−１、１００１−２、乃至１００１−Ｎと、各移動点を結ぶ線１００２を、傾けられた方向に移動させて表示させる（ステップＳ２０３）。ここで、ユーザにより、筐体の画面が所定位置（例えば、水平位置）から大きく傾けられるほど、より速い速度で各移動点を移動させて表示させてもよい。
【００８６】
続いて、表示制御部２０２は、元画像のエッジの強さに応じた仮想的な力（粘着力または摩擦力）により、当該各移動点を当該エッジの各部分で一旦停止させて表示させる（ステップＳ２０４）。ここで、表示制御部２０２は、各移動点が現在位置する図１０に示すような元画像上の画素の位置に対応する、図１１に示すようなエッジのデータ上の画素の位置におけるエッジの強さの値を抽出する。そして、表示制御部２０２は、抽出したエッジの強さに応じた仮想的な力により、各移動点を一旦停止させる。
【００８７】
また、表示制御部２０２は、例えば、隣り合う各移動点を通る、原画像から検出したエッジに沿った曲線又は直線により、各移動点を結ぶトリミング線を表示する。
【００８８】
なお、一旦停止された移動点は、筐体をさらに傾けることにより、再度移動される。この場合、表示制御部２０２は、例えば、ユーザにより筐体を傾けられた際、移動点に仮想的にかかる重力により当該移動点が滑り落ちる方向の力と、エッジの強さに応じた仮想的な力であるエッジ上の粘着力または摩擦力により当該移動点が当該エッジ上の位置に止まろうとする仮想的な慣性力とを算出する。そして、表示制御部２０２は、滑り落ちる方向の力の方が、エッジ上の位置に止まろうとする慣性力よりも大きくなった場合に、当該移動点を当該滑り落ちる方向に移動するように表示させてもよい。
【００８９】
また、滑り落ちる方向の力の方が、各エッジ上の位置に止まろうとする慣性力よりも大きくなる程度に、筐体が十分に大きく傾けられている場合、移動点は当該各エッジ上で一旦停止されずに、端末２０の画面の端まで移動されて表示されてもよい。
【００９０】
なお、ステップＳ２０３の移動点を移動させる処理、及びステップＳ２０４のエッジの強さに応じた仮想的な力により各移動点を一旦停止させる処理は、ユーザによる筐体を傾ける操作により、交互に繰り返して行われる。
【００９１】
図１２の例では、図１０に示す元画像上の画素の位置に対応する、図１１に示す元画像がエッジ検出されたデータ上の画素の位置におけるエッジの強さの値に応じた仮想的な力により、各移動点が一旦停止されている。図１２に示す、犬３０１の耳の部分のエッジ上で一旦停止された移動点１２０１と、犬３０１の胴体の部分のエッジ上で一旦停止された移動点１２０２とでは、図１１に示すように、移動点１２０１の方が、移動点１２０２よりも高い仮想的な力により一旦停止される。そのため、図１２の画面が表示されている際に、さらに画面の上部を起こす姿勢となるように筐体を一定程度傾けると、移動点１２０１は停止されたまま、移動点１２０２は画面の下部方向に移動される。そして、移動点１２０２は、図１３に示す移動点１３０２のように、図１１に示すようなエッジの強さに従い、犬３０１の顔の下部の位置に移動して一旦停止される。
【００９２】
図１２、及び図１３の例では、表示制御部２０２は、例えば、ユーザにより筐体を傾けられた際に各移動点に仮想的にかかる重力により移動点が滑り落ちるように表示させる。そして、表示制御部２０２は、各移動点を結ぶ線１００２上で隣り合う移動点間のエッジ上の長さが上述した第１閾値以上となっている場合、当該各移動点間のエッジ上の特徴点等の位置に、移動点を追加して表示させている。また、図１２、及び図１３の例では、表示制御部２０２は、ユーザにより、画面の上下方向に傾けられることにより、各移動点を結ぶ直線が、オブジェクトに上または下から垂れかかるように停止されて表示させる。そして、表示制御部２０２は、ユーザにより、画面の左右方向等に傾けられることにより、各移動点を結ぶ直線が、オブジェクトに左右から垂れかかるように停止されて表示させる。
【００９３】
続いて、表示制御部２０２は、受付部２０１により当該各移動点に含まれる一の移動点がユーザによりタッチ（押下）操作されたことを検知すると（ステップＳ２０５）、タッチ操作された移動点の位置を固定する（ステップＳ２０６）。図１４の例では、表示制御部２０２は、位置が固定された移動点を、位置が固定されていない移動点と区別できる態様で表示させている。例えば、位置が固定されていない移動点が緑の丸の場合、位置が固定された移動点を、中黒の二重丸（丸中黒）、青の丸等で表示させる。
【００９４】
続いて、表示制御部２０２は、受付部２０１により受け付けられたユーザの操作に応答して、表示されている原画像において切り抜く領域を指定するための第２の移動点群（「第２の複数の点」）を、上述した第１の移動点群表示した画面の一方の側と向かい合う他方の側から表示させる（ステップＳ２０７）。図１５の例では、第１の移動点群のうち、ステップＳ２０６の処理で位置が固定された移動点のみを表示させている。そして、端末２０の画面の下辺付近から、横方向に並べられた複数の移動点１５０１−１、１５０１−２、乃至１５０１−Ｎと、各移動点を結ぶ線１５０２（トリミング線）を表示させている。
【００９５】
続いて、第２の移動点群についても、第１の移動点群と同様に、ステップＳ２０３乃至ステップＳ２０６と同様の処理を行う（ステップＳ２０８乃至ステップＳ２１１）。これにより、上述した第１の移動点群のうち、ユーザの操作により位置が固定された移動点と、上述した第２の移動点群のうち、ユーザの操作により位置が固定された移動点とにより、切り抜く領域の輪郭が指定される。この場合、表示制御部２０２は、隣り合う各移動点を通る、原画像から検出したエッジに沿った曲線又は直線により、当該輪郭を算出してもよい。
＜第２の実施形態の第１変形例＞
次に、図１６を参照して、変形例について説明する。図１６は、大まかに指定された領域内のエッジを検出した結果のデータの一例を示す図である。上述した第１の実施形態における編集点により切り抜く領域を指定する処理と、第２の実施形態による筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する処理を組み合わせてもよい。
【００９６】
この場合、例えば、図４に示す第１の実施形態の処理により、図７に示すように切り抜く領域を大まかに指定する。そして、図９に示す第２の実施形態のステップＳ２０２の処理において、図１４に示すように、元画像において当該指定された領域内１４０１についてのみエッジを検出する。これにより、図９に示すステップＳ２０３以降の処理において、より容易に、エッジ上に移動させて切り抜く領域を指定する操作が可能となる。なお、この場合、図９のステップＳ２０５等の、ユーザのタッチ操作により移動点の位置を固定する処理を省略してもよい。また、２つ目のトリミング線を用いる図９のステップＳ２０７乃至ステップＳ２１１の処理を省略してもよい。
＜第２の実施形態の第２変形例＞
上述した第２の実施形態による筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する処理をした後、上述した第１の実施形態における編集点により切り抜く領域を指定する処理を実行できるようにしてもよい。この場合、上述した移動点は、以下に説明するように、第１の実施形態における編集点として用いられる。
【００９７】
まず、表示制御部２０２は、第２の実施形態の図９に示す処理により、筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する。そして、表示制御部２０２は、例えば、上述した第１実施形態の図４に示すステップＳ１０３乃至ステップＳ１１０の処理により、原画像を拡大表示させるとともに、移動点を編集点とし、編集点の数を増加させて表示させる。そして、編集点を指で移動させる操作、または筐体を傾ける操作により、当該編集点を移動させる。
＜第２実施形態の効果＞
上述した第２の実施形態によれば、筐体の傾きに応じて、原画像において切り抜く領域を指定する点を移動させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末２０の処理負荷を軽減できるという効果も奏する。
＜第３の実施形態＞
第３の実施形態は、ユーザのフリック操作やスワイプ操作等の操作に応答して、原画像において切り抜く領域を指定する点を、原画像におけるエッジの位置まで移動させて表示させる形態である。第３の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第３の実施形態は一部を除いて第１の実施形態、または第２の実施形態と同様であるため、適宜説明を省略する。以下では、第１の実施形態、または第２の実施形態と共通する部分については説明を省略し、異なる部分についてのみ説明する。なお、第３の実施形態に記載の内容は、他の各実施形態のいずれにも適用可能である。
＜処理＞
≪第３実施形態のトリミング処理≫
次に、図１７乃至図１９を参照し、ステップＳ３の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。図１７は、第３実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。図１８は、フリック操作により編集点を移動させて表示させる処理について説明する図である。図１９Ａ、及び図１９Ｂは、エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【００９８】
ステップＳ３０１において、受付部２０１は、ユーザの操作に応答して、表示されている原画像において切り抜く領域の輪郭を取得する。続いて、表示制御部２０２は、当該輪郭上に、複数の編集点を表示させる（ステップＳ３０２）。
【００９９】
ここで、ステップＳ３０１、及びステップＳ３０２の処理において、上述した第１実施形態の図４に示すステップＳ１０１、及びステップＳ１０２の処理と同様に、ユーザにより指等でなぞられた輪郭を取得してもよい。または、上述した第１実施形態の図４に示すステップＳ１０３乃至ステップＳ１１０のいずれかの処理段階における、拡大表示に伴い数が増加された編集点等を表示させてもよい。または、上述した第２実施形態の図９に示すステップＳ２０１乃至ステップＳ２１１のいずれかの処理段階における移動点を、編集点として用いるようにしてもよい。
【０１００】
続いて、受付部２０１は、複数の編集点に含まれる一の編集点（以下で「第１編集点」と称する。）に対するユーザのフリック操作（またはスワイプ操作）を受け付ける（ステップＳ３０３）。ここで、フリック操作とは、例えば、タッチパネルを有する画面上で、指を素早く動かしたり、弾いたりするような操作である。また、スワイプ操作とは、タッチパネルを有する画面上で、指を滑らせるような操作である。
【０１０１】
続いて、表示制御部２０２は、第１編集点と、第１編集点の周辺の編集点（以下で「第２編集点」と称する。）とを、フリック操作の方向に移動させる（ステップＳ３０４）。ここで、表示制御部２０２は、フリック操作の速さに応じた速さで第１編集点を移動させ、フリック操作の速さと、第１編集点と第２編集点との輪郭上の距離とに応じた速さで、第２編集点を移動させる。なお、フリック操作の方向とは、例えば、フリック操作にて指を動かした方向である。また、フリック操作の速さとは、例えば、フリック操作にて指を動かした速さである。
【０１０２】
図１８の例では、表示制御部２０２は、フリック操作された第１編集点１８０１からの輪郭上の距離が所定の閾値以下、または第１編集点１８０１からの隣り合う編集点の数が所定の閾値以下である編集点１８０２、編集点１８０３、及び編集点１８０４を選択する。ここで、所定の閾値としては、少なくとも第１編集点と隣り合う他の編集点が含まれる値としてもよい。
【０１０３】
そして、表示制御部２０２は、第１編集点１８０１と、選択した編集点１８０２との輪郭上の距離を算出し、フリック操作の速さと、算出した距離とに応じた速さを大きさとし、フリック操作の方向を向きとする速度ベクトル１８０２Ａを算出する。ここで、表示制御部２０２は、当該大きさを、例えば、フリック操作の速さに比例し、算出した距離に反比例した大きさとしてもよい。
【０１０４】
また、表示制御部２０２は、選択した編集点１８０３、及び編集点１８０４についても、同様にして速度ベクトル１８０３Ａ、及び速度ベクトル１８０４Ａをそれぞれ算出する。
【０１０５】
そして、表示制御部２０２は、第１編集点１８０１を、フリック操作の速さに応じた速さ、及びフリック操作の方向を有する速度ベクトル１８０１Ａで移動させるとともに、編集点１８０２、編集点１８０３、及び編集点１８０４を、速度ベクトル１８０３Ａ、及び速度ベクトル１８０４Ａで移動させる。
【０１０６】
図１８の例では、第１編集点１８０１からの輪郭上の距離は、編集点１８０２、編集点１８０３、及び編集点１８０４の順に長くなっている。この場合、速度ベクトル１８０２Ａ、速度ベクトル１８０３Ａ、速度ベクトル１８０４Ａは、方向はそれぞれ同一であり、速さは、速度ベクトル１８０２Ａ、速度ベクトル１８０３Ａ、速度ベクトル１８０４Ａの順に小さくなっている。
【０１０７】
続いて、表示制御部２０２は、移動された各編集点が表示されている原画像のエッジの位置に移動すると、元画像のエッジの強さに応じた仮想的な力（粘着力または摩擦力）により、各編集点をエッジ上の位置で停止させて表示させる（ステップＳ３０５）。ここで、表示制御部２０２は、原画像におけるエッジを予め検出しておいてもよい。または、表示制御部２０２は、移動された各編集点の移動元の位置から移動方向に沿った原画像におけるエッジのみを検出してもよい。これにより、端末２０における処理負荷を軽減できる。
【０１０８】
ここで、表示制御部２０２は、例えば、フリック操作の速さと、フリック操作に応答して各編集点が移動する経路上のエッジの強さとに応じて、各編集点の移動の速さを減衰させて停止させてもよい。この場合、表示制御部２０２は、移動している各編集点について、図１９Ａに示すように、編集点１９０１を速度ベクトル１９０１Ａで移動させる。そして、表示制御部２０２は、移動方向１９０２上のエッジ１９０３を通過する際、エッジ１９０３の強さに応じた仮想的な力により、編集点１９０１の移動の速さを減衰させる。そして、表示制御部２０２は、図１９Ｂに示すように、編集点１９０１を、移動方向は不変であり、速度ベクトル１９０１Ａから速さが減衰された速度ベクトル１９０１Ｂで移動させる。そして、表示制御部２０２は、移動方向１９０２上のエッジ１９０４の強さに応じた仮想的な力により、移動方向１９０２上のエッジ１９０４の位置で編集点１９０１を停止させる。
【０１０９】
続いて、表示制御部２０２は、移動後の編集点を通る輪郭を算出し、算出した変更後の輪郭を表示させる（ステップＳ３０６）。続いて、表示制御部２０２は、現在表示されている編集点、及び変更後の輪郭に基づいて、表示させる編集点の追加、または削除を行う（ステップＳ３０７）。なお、ステップＳ３０６乃至ステップＳ３０７の処理は、上述した第１実施形態の図４のステップＳ１０７乃至ステップＳ１０８の処理と同様でもよい。
＜第３の実施形態の第１変形例＞
表示制御部２０２は、フリック操作等に応答して、編集点をエッジの位置まで移動させた後、ピンチアウト操作等を受け付けると、上述した第１実施形態の図４に示すステップＳ１０３乃至ステップＳ１１０の処理を行うようにしてもよい。すなわち、原画像を拡大表示させるとともに、移動点を編集点とし、編集点の数を増加させて表示させる等の処理を行う。そして、拡大表示された状態で、編集点を指で移動させるスライド操作により、当該編集点を指が離された位置まで移動させる。
＜第３実施形態の効果＞
上述した第３の実施形態によれば、ユーザのフリック操作やスワイプ操作等の操作に応答して、原画像において切り抜く領域を指定する点を、原画像におけるエッジの位置まで移動させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末２０の処理負荷を軽減できるという効果も奏する。
【０１１０】
＜その他＞
なお、上述した実施形態では、端末２０にインストールされたアプリケーション等において画像処理を行う例について説明したが、サーバ１０において画像処理を行うようにしてもよい。この場合、例えば、端末２０の受付部２０１は、ユーザによる操作内容をサーバ１０に通知し、サーバ１０の表示制御部１０２により端末２０の表示画面の制御を行い、サーバ１０の制御部１０３がトリミング等の画像処理を行うようにしてもよい。
【０１１１】
受付部２０１は、「取得部」の一例である。画像処理部２０３は、「切り取り部」の一例である。サーバ１０、及び端末２０は、それぞれ、「情報処理装置」の一例である。
【０１１２】
本開示の実施形態を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本開示の範囲に含まれることに留意されたい。限定でなく例として、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。また、各実施形態に示す構成を適宜組み合わせることとしてもよい。
【符号の説明】
【０１１３】
１０  サーバ
１０１  取得部
１０２  表示制御部
１０３  制御部
２０  端末
２０１  受付部
２０２  表示制御部
２０３  画像処理部
２０４  制御部
２０５  傾き検出部
【図１】
2019057209.tif 000003
【図２】
2019057209.tif 000004
【図３Ａ】
2019057209.tif 000005
【図３Ｂ】
2019057209.tif 000006
【図４】
2019057209.tif 000007
【図５】
2019057209.tif 000008
【図６】
2019057209.tif 000009
【図７】
2019057209.tif 000010
【図８】
2019057209.tif 000011
【図９】
2019057209.tif 000012
【図１０】
2019057209.tif 000013
【図１１】
2019057209.tif 000014
【図１２】
2019057209.tif 000015
【図１３】
2019057209.tif 000016
【図１４】
2019057209.tif 000017
【図１５】
2019057209.tif 000018
【図１６】
2019057209.tif 000019
【図１７】
2019057209.tif 000020
【図１８】
2019057209.tif 000021
【図１９Ａ】
2019057209.tif 000022
【図１９Ｂ】
2019057209.tif 000023