(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-17
(45)【発行日】2022-01-17
(54)【発明の名称】プログラム、情報処理方法、及び情報処理装置
(51)【国際特許分類】
G06T 11/80 20060101AFI20220107BHJP
H04N 1/387 20060101ALI20220107BHJP
G06F 3/0484 20220101ALI20220107BHJP
G06F 3/0488 20220101ALI20220107BHJP
【FI】
G06T11/80 A
H04N1/387 200
G06F3/0484
G06F3/0488
(21)【出願番号】P 2019542940
(86)(22)【出願日】2017-09-25
(86)【国際出願番号】 JP2017034438
(87)【国際公開番号】W WO2019058539
(87)【国際公開日】2019-03-28
【審査請求日】2020-09-11
(73)【特許権者】
【識別番号】321003371
【氏名又は名称】LINE株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】特許業務法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】フォゲル フレデリック
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開平09-147131(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 3/00
G06T 11/80
H04N 1/387
G06F 3/048 - 3/0488
(57)【特許請求の範囲】
【請求項1】
情報処理装置に、
第1画像を表示させる第1表示ステップと、
前記第1画像において切り抜く領域の輪郭を取得するステップと、
前記輪郭を修正するための複数の編集点を、前記輪郭上にそれぞれ表示させる第2表示ステップと、
ユーザの操作に応答して、前記第1画像を拡大して表示させるとともに、前記複数の編集点の数を増加させて表示させる第3表示ステップと、
前記複数の編集点により指定される輪郭内の第2画像を切り抜くステップと、
を実行させるプログラム。
【請求項2】
前記第2表示ステップは、第1編集点と第2編集点とを表示させ、
前記第3表示ステップは、前記第1編集点から前記第2編集点までの前記輪郭上の長さが第1閾値以上の場合、前記第1編集点から前記第2編集点までの前記輪郭上に、第3編集点を表示させる、
請求項1に記載のプログラム。
【請求項3】
前記第3表示ステップは、前記第1編集点から前記第2編集点までの前記輪郭上で、前記第1編集点と前記第2編集点とからそれぞれ前記輪郭上の長さが第2閾値以上離れた位置に、前記第3編集点を表示させる、
請求項2に記載のプログラム。
【請求項4】
前記第3表示ステップは、前記第1編集点から前記第2編集点までの前記輪郭上の特徴点に、前記第3編集点を表示させる、
請求項2または3に記載のプログラム。
【請求項5】
前記第3表示ステップは、前記第1編集点から前記第2編集点までの前記輪郭上の中間の点に、前記第3編集点を表示させる、
請求項2または3に記載のプログラム。
【請求項6】
ユーザの操作に応答して、前記第3表示ステップにより表示された前記複数の編集点のうち、1以上の編集点の位置を変更するステップと、
ユーザの操作に応答して、前記第3表示ステップにより拡大して表示された前記第1画像を縮小して表示させるとともに、前記変更するステップにより位置が変更された編集点は表示を継続し、前記変更するステップにより位置が変更されていない編集点の数を減少させて表示させる第4表示ステップと、
を実行する請求項1から5のいずれか一項に記載のプログラム。
【請求項7】
情報処理装置が、
第1画像を表示させる第1表示ステップと、
前記第1画像において切り抜く領域の輪郭を取得するステップと、
前記輪郭を修正するための複数の編集点を、前記輪郭上にそれぞれ表示させる第2表示ステップと、
ユーザの操作に応答して、前記第1画像を拡大して表示させるとともに、前記複数の編集点の数を増加させて表示させる第3表示ステップと、
前記第1画像における前記複数の編集点により指定される輪郭内の第2画像を切り抜くステップと、
を実行する情報処理方法。
【請求項8】
表示されている第1画像において切り抜く領域の輪郭を取得する取得部と、
前記輪郭を修正するための複数の編集点を、前記輪郭上にそれぞれ表示させ、ユーザの操作に応答して、前記第1画像を拡大して表示させるとともに、前記複数の編集点の数を増加させて表示させる表示制御部と、
前記第1画像における前記複数の編集点により指定される輪郭内の第2画像を切り抜く切り抜き部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【0002】
従来、ユーザの操作により、画像の一部分を切り抜き(切り取り、トリミング)できるツール(プログラム)が知られている(例えば、特許文献1、非特許文献1を参照)。このツールにおいて、例えば、切り抜く領域は、ユーザにより指やマウスカーソル等で当該領域の輪郭をなぞる操作により指定される。
【0003】
なお、切り抜いた画像は、例えば、SNS(Social Networking Service)のインスタントメッセージングサービス等で送信するスタンプ等に利用できる。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】GIMP、 ”2.7. Intelligent Scissors”、[online]、[平成29年9月13日検索]、インターネット<URL: https://docs.gimp.org/en/gimp-tool-iscissors.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、例えば、写真等の画像に含まれる被写体等のオブジェクトの輪郭を、指やマウスカーソル等によりなぞる操作により指定する場合、当該輪郭を正確に指定することは難しい場合があるという問題がある。
【0007】
本開示は、上記問題に鑑みてなされたものであり、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の一実施形態に係るプログラムは、情報処理装置に、第1画像を表示させる第1表示ステップと、前記第1画像において切り抜く領域の輪郭を取得するステップと、前記輪郭を修正するための複数の編集点を、前記輪郭上にそれぞれ表示させる第2表示ステップと、ユーザの操作に応答して、前記第1画像を拡大して表示させるとともに、前記複数の編集点の数を増加させて表示させる第3表示ステップと、前記複数の編集点により指定される輪郭内の第2画像を切り抜くステップと、を実行させる。
【図面の簡単な説明】
【0009】
【
図1】本開示の一実施形態における通信システムの構成を示す図である。
【
図2】画像の一部分を切り抜く際の処理の一例を示すフローチャートである。
【
図3A】端末における原画像の表示例について説明する図である。
【
図3B】端末における切り抜き範囲の確認画面の表示例について説明する図である。
【
図4】第1実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【
図5】画像が拡大表示される前の編集点を表示させる方法の一例について説明する図である。
【
図6】画像が拡大表示された際の編集点の数を増加させて表示させる方法の一例について説明する図である。
【
図7】画像が拡大表示された後に縮小表示された際の編集点の数を減少させて表示させる方法の一例について説明する図である。
【
図8】第2の実施形態における通信システムの構成を示す図である。
【
図9】第2実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【
図10】第1の移動点群の表示画面の一例を説明する図である。
【
図11】元画像をエッジ検出されたデータの一例を説明する図である。
【
図12】端末の筐体を傾けた際の移動点の移動について説明する図である。
【
図13】端末の筐体を傾けた際の移動点の移動について説明する図である。
【
図14】ユーザ操作による移動点の位置が固定された表示画面の一例を示す図である。
【
図15】第2の移動点群の表示画面の一例を説明する図である。
【
図16】大まかに指定された領域内のエッジを検出した結果のデータの一例を示す図である。
【
図17】第3実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
【
図18】フリック操作により編集点を移動させて表示させる処理について説明する図である。
【
図19A】エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【
図19B】エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【発明を実施するための形態】
【0010】
<法的事項の遵守>
本明細書に記載の開示を実施する場合は、通信の秘密等、本開示を実施に関する実施国の法的事項を遵守の上で実施されるものであることに留意されたい。
【0011】
本開示に係るプログラム、情報処理方法、及び情報処理装置を実施するための実施形態について、図面を参照して説明する。
【0012】
<システム構成>
図1は、本開示の一実施形態における通信システムの構成を示す図である。
図1に開示されるように、通信システムでは、ネットワーク30を介してサーバ10と、端末20(端末20A,端末20B,端末20C)とが接続される。サーバ10は、ネットワーク30を介してユーザが所有する端末20に、端末20間でのメッセージの送受信を実現するサービスを提供する。なお、ネットワーク30に接続される端末20の数は限定されない。
【0013】
ネットワーク30は、1以上の端末20と、1以上のサーバ10とを接続する役割を担う。すなわち、ネットワーク30は、端末20がサーバ10に接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。
【0014】
ネットワーク30のうちの1つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよい。ネットワーク30は、限定でなく例として、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、ISDNs(integrated service digital networks)、無線LANs、LTE(long term evolution)CDMA(code division multiple access)、ブルートゥース(Bluetooth(登録商標))、衛星通信など、または、これらの2つ以上の組合せを含むことができる。ネットワーク30は、1つまたは複数のネットワーク30を含むことができる。
【0015】
端末20(端末20A,端末20B,端末20C)は、各実施形態において記載する機能を実現できる情報処理端末であればどのような端末であってもよい。端末20は、限定ではなく例として、スマートフォン、携帯電話(フィーチャーフォン)、コンピュータ(限定でなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定でなく例として、PDA・(personal digital assistant)、電子メールクライアントなど)、ウェアラブル端末(メガネ型デバイス、時計型デバイスなど)、または他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、端末20は情報処理端末と表現されても良い。
【0016】
端末20A、端末20Bおよび端末20Cの構成は基本的には同一であるため、以下の説明においては、端末20について説明する。また、必要に応じて、ユーザXが利用する端末を端末20Xと表現し、ユーザXまたは端末20Xに対応づけられた、所定のサービスにおけるユーザ情報をユーザ情報Xと表現する。なお、ユーザ情報とは、所定のサービスにおいてユーザが利用するアカウントに対応付けられたユーザの情報である。ユーザ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、ユーザの識別子などのユーザに対応づけられた情報を含み、これらのいずれか一つまたは、組み合わせであってもよい。
【0017】
サーバ10は、端末20に対して、所定のサービスを提供する機能を備える。サーバ10は、各実施形態において記載する機能を実現できる情報処理装置であればどのような装置であってもよい。サーバ10は、限定でなく例として、サーバ装置、コンピュータ(限定でなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定でなく例として、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、サーバ10は情報処理装置と表現されても良い。
【0018】
<ハードウェア(HW)構成>
図1を用いて、通信システムに含まれる各装置のHW構成について説明する。
【0019】
(1)端末のHW構成
【0020】
端末20は、制御装置21(CPU:central processing unit(中央処理装置))、記憶装置28、通信I/F22(インタフェース)、入出力装置23、表示装置24、マイク25、スピーカ26、カメラ27を備える。端末20のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。
【0021】
通信I/F22は、ネットワーク30を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F22は、ネットワーク30を介して、サーバ10との通信を実行する機能を有する。通信I/F22は、各種データを制御装置21からの指示に従って、サーバ10に送信する。また、通信I/F22は、サーバ10から送信された各種データを受信し、制御装置21に伝達する。
【0022】
入出力装置23は、端末20に対する各種操作を入力する装置、および、端末20で処理された処理結果を出力する装置を含む。入出力装置23は、入力装置と出力装置が一体化していても良いし、入力装置と出力装置に分離していてもよい。
【0023】
入力装置は、ユーザからの入力を受け付けて、当該入力に係る情報を制御装置21に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ(動画像を介した操作入力)、マイク(音声による操作入力)を含む。
【0024】
出力装置は、制御装置21で処理された処理結果を出力することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力装置は、限定でなく例として、 タッチパネル、タッチディスプレイ、スピーカ(音声出力)、レンズ(限定でなく例として3D(three dimensions)出力や、ホログラム出力)、プリンターなどを含む。
【0025】
表示装置24は、フレームバッファに書き込まれた表示データに従って、表示することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。表示装置24は、限定でなく例として、タッチパネル、タッチディスプレイ、モニタ(限定でなく例として、液晶ディスプレイやOELD(organic electroluminescence display))、ヘッドマウントディスプレイ(HDM:Head Mounted Display)、プロジェクションマッピング、ホログラム、空気中など(真空であってもよい)に画像やテキスト情報等を表示可能な装置を含む。なお、これらの表示装置24は、3Dで表示データを表示可能であってもよい。
【0026】
入出力装置23がタッチパネルの場合、入出力装置23と表示装置24とは、略同一の大きさおよび形状で対向して配置されていても良い。
【0027】
制御装置21は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。
【0028】
制御装置21は、限定でなく例として、中央処理装置(CPU)、マイクロプロセッサ(microprocessor)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(application-specific integrated circuit)、FPGA(field programmable gate array)を含む。
【0029】
記憶装置28は、端末20が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶装置28は、限定でなく例として、HDD(hard disk drive)、SSD(solid state drive)、フラッシュメモリ、RAM(random access memory)、ROM(read only memory)など各種の記憶媒体を含む。
【0030】
端末20は、プログラムPを記憶装置28に記憶し、このプログラムPを実行することで、制御装置21が、制御装置21に含まれる各部としての処理を実行する。つまり、記憶装置28に記憶されるプログラムPは、端末20に、制御装置21が実行する各機能を実現させる。
【0031】
マイク25は、音声データの入力に利用される。スピーカ26は、音声データの出力に利用される。カメラ27は、動画像データの取得に利用される。
【0032】
(2)サーバのHW構成
サーバ10は、制御装置11(CPU)、記憶装置15、通信I/F14(インタフェース)、入出力装置12、ディスプレイ13を備える。サーバ10のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。
【0033】
制御装置11は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。
【0034】
制御装置11は、代表的には中央処理装置(CPU)、であり、その他にマイクロプロセッサ、プロセッサコア、マルチプロセッサ、ASIC、FPGAであってもよい。ただし、本開示において、制御装置11は、これらに限定されない。
【0035】
記憶装置15は、サーバ10が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶装置15は、HDD、SSD、フラッシュメモリなど各種の記憶媒体により実現される。ただし、本開示において、記憶装置15は、これらに限定されない。
【0036】
通信I/F14は、ネットワーク30を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F14は、ネットワーク30を介して、端末20との通信を実行する機能を有する。通信I/F14は、各種データを制御装置11からの指示に従って、端末20に送信する。また、通信I/F14は、端末20から送信された各種データを受信し、制御装置11に伝達する。
【0037】
入出力装置12は、サーバ10に対する各種操作を入力する装置により実現される。入出力装置12は、ユーザからの入力を受け付けて、当該入力に係る情報を制御装置11に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入出力装置12は、代表的にはキーボード等に代表されるハードウェアキーや、マウス等のポインティングデバイスで実現される。なお、入出力装置12、限定でなく例として、タッチパネルやカメラ(動画像を介した操作入力)、マイク(音声による操作入力)を含んでいてもよい。ただし、本開示において、入出力装置12は、これらに限定されない。
【0038】
ディスプレイ13は、代表的にはモニタ(限定でなく例として、液晶ディスプレイやOELD(organic electroluminescence display))で実現される。なお、ディスプレイ13は、ヘッドマウントディスプレイ(HDM)などであってもよい。なお、これらのディスプレイ13は、3Dで表示データを表示可能であってもよい。ただし、本開示において、ディスプレイ13は、これらに限定されない。
【0039】
サーバ10は、プログラムPを記憶装置15に記憶し、このプログラムPを実行することで、制御装置11が、制御装置11に含まれる各部としての処理を実行する。つまり、記憶装置15に記憶されるプログラムPは、サーバ10に、制御装置11が実行する各機能を実現させる。
【0040】
本開示の各実施形態においては、端末20および/またはサーバ10のCPUがプログラムPを実行することにより、実現するものとして説明する。
【0041】
なお、端末20の制御装置21、および/または、サーバ10の制御装置11は、CPUだけでなく、集積回路(IC(Integrated Circuit)チップ、LSI(Large Scale Integration))等に形成された論理回路(ハードウェア)や専用回路によって各処理を実現してもよい。また、これらの回路は、1または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を1つの集積回路により実現されることとしてもよい。また、LSIは、集積度の違いにより、VLSI、スーパーLSI、ウルトラLSIなどと呼称されることもある。
【0042】
また、本開示の各実施形態のプログラムP(ソフトウェアプログラム/コンピュータプログラム)は、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。
【0043】
記憶媒体は適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(限定でなく例として、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切な記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。なお、記憶媒体はこれらの例に限られず、プログラムPを記憶可能であれば、どのようなデバイスまたは媒体であってもよい。
【0044】
サーバ10および/または端末20は、記憶媒体に記憶されたプログラムPを読み出し、読み出したプログラムPを実行することによって、各実施形態に示す複数の機能部の機能を実現することができる。
【0045】
また、本開示のプログラムPは、当該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して、サーバ10および/または端末20に提供されてもよい。サーバ10および/または端末20は、限定でなく例として、インターネット等を介してダウンロードしたプログラムPを実行することにより、各実施形態に示す複数の機能部の機能を実現する。
【0046】
また、本開示の各実施形態は、プログラムPが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
サーバ10および/または端末20における処理の少なくとも一部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【0047】
端末20における処理の少なくとも一部を、サーバ10により行う構成としてもよい。この場合、端末20の制御装置21の各機能部の処理のうち少なくとも一部の処理を、サーバ10で行う構成としてもよい。
【0048】
サーバ10における処理の少なくとも一部を、端末20により行う構成としてもよい。この場合、サーバ10の制御装置11の各機能部の処理のうち少なくとも一部の処理を、端末20で行う構成としてもよい。
【0049】
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよい。
【0050】
なお、本開示のプログラムは、限定でなく例として、ActionScript、JavaScript(登録商標)などのスクリプト言語、Objective-C、Java(登録商標)などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装される。
【0051】
<第1の実施形態>
第1の実施形態は、原画像において切り抜く領域(範囲)の輪郭を修正するための点であって、当該輪郭上の点である編集点の数を、画像を拡大表示した際に、増加させて表示させる形態である。第1の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第1の実施形態に記載の内容は、後述する他の各実施形態のいずれにも適用可能である。
【0052】
<機能構成>
(1)端末の機能構成
【0053】
図1に示すように、端末20は、制御装置21により実現される機能として、受付部201、表示制御部202、画像処理部203、及び制御部204を有する。
【0054】
受付部201は、ユーザからの操作を受け付ける。受付部201は、例えば、表示されている原画像において切り抜く領域の輪郭を指定する操作等を受け付ける。
【0055】
表示制御部202は、画像処理部203またはサーバ10からの指示に従い、画像をトリミングする際の表示画面を、端末20の画面に表示させる。表示制御部202は、例えば、画像において切り抜く領域(範囲)の輪郭を修正するための点であって、当該輪郭上の点である編集点を複数表示させる。また、表示制御部202は、ユーザの操作に応答して、当該画像の少なくとも一部を拡大して表示させるとともに、編集点の数を増加させて表示させる。
【0056】
画像処理部203は、複数の編集点により指定される輪郭内の画像を切り抜く画像処理を行う。
【0057】
制御部204は、画像処理部203により切り抜かれた画像を含むコンテンツを生成し、サーバ10に送信する。
(2)サーバの機能構成
図1に示すように、サーバ10は、制御装置11により実現される機能として、取得部101、表示制御部102、及び制御部103を有する。
【0058】
取得部101は、端末20からのデータを取得する。
【0059】
表示制御部102は、端末20の画面の表示を制御する。
【0060】
制御部103は、端末20から受信したコンテンツを、例えば、SNSのインスタントメッセージングサービス等で利用可能なスタンプ等として、各端末20のユーザに販売する。
<処理>
次に、
図2を参照し、端末20において画像の一部分を切り抜く際の処理の一例について説明する。
図2は、画像の一部分を切り抜く際の処理の一例を示すフローチャートである。
図3Aは、端末20における原画像の表示例について説明する図である。
図3Bは、端末20における切り抜き範囲の確認画面の表示例について説明する図である。
【0061】
ステップS1において、端末20の受付部201は、ユーザから、画像を選択する操作を受け付ける。
【0062】
続いて、端末20の表示制御部202は、選択された画像(「第1画像」)を画面に表示させる(ステップS2)。ここで、
図3Aに示すように、例えば、端末20において予め保存されている画像、または端末20にて撮影した画像が表示される。
図3Aの例では、犬301の画像がユーザに選択され、表示されている。
【0063】
続いて、端末20の受付部201、及び表示制御部202は、ユーザからの操作により、当該選択された画像における切り抜き範囲を編集する(ステップS3)。
【0064】
続いて、端末20の画像処理部203は、ユーザの操作により、編集された切り抜き範囲内の画像(「第2画像」)をトリミングする(ステップS4)。
図3Bの例では、編集された切り抜き範囲外の領域の輝度を下げることにより、編集された切り抜き範囲内である犬301の顔の部分301Aが強調されて表示されている。
図3Bの例では、確認ボタン302がタップされると、編集された切り抜き範囲内である部分301Aの画像が、切り抜かれて保存される。
【0065】
≪第1実施形態のトリミング処理≫
次に、
図4乃至
図7を参照し、ステップS3の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。
図4は、切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
図5は、画像が拡大表示される前の編集点を表示させる方法の一例について説明する図である。
図6は、画像が拡大表示された際の編集点の数を増加させて表示させる方法の一例について説明する図である。
図7は、画像が拡大表示された後に縮小表示された際の編集点の数を減少させて表示させる方法の一例について説明する図である。
【0066】
ステップS101において、受付部201は、ユーザの操作に応答して、表示されている原画像において切り抜く領域の輪郭を取得する。
【0067】
続いて、表示制御部202は、当該輪郭上に、複数の編集点を表示させる(ステップS102)。ここで、表示制御部202は、例えば、ユーザが画面を指またはマウスカーソルでなぞる操作を行うと、ユーザによりなぞられた各画素を通る線を当該輪郭とする。
図5の例では、互いに隣り合う編集点401及び編集点402等が輪郭400上に表示されている。ここで、表示制御部202は、例えば、輪郭上に、当該輪郭上における所定の間隔で編集点を表示してもよい。または、表示制御部202は、例えば、隣り合う2つの編集点の間の当該輪郭上の長さが第1閾値(例えば、6mm)以上離れた位置となり、かつ各編集点が当該輪郭上の特徴点の位置となる位置に編集点をそれぞれ表示してもよい。なお、輪郭上の特徴点については後述する。
【0068】
続いて、受付部201は、表示されている原画像を拡大するための操作をユーザから受け付ける(ステップS103)。ここで、受付部201は、例えば、タッチパネル画面上に親指、及び人差し指等を乗せ、二本の指で押し広げるピンチアウト操作等を受け付ける。
【0069】
続いて、表示制御部202は、表示されている原画像を拡大して表示させるとともに、編集点の数を増加させて表示させる(ステップS104)。
【0070】
図6の例では、表示制御部202は、
図5の画像が拡大表示され、編集点401と編集点402との間の輪郭上の長さが上述した第1閾値以上となっている場合、編集点401と編集点402との間の輪郭上に、編集点403を追加して表示させている。また、
図6の例では、表示制御部202は、編集点401と編集点402との間の輪郭上で、編集点401と編集点402とからそれぞれ輪郭上の長さが第2閾値(例えば、3mm)以上離れた所定の位置に、編集点403を追加して表示させている。
【0071】
表示制御部202は、編集点403を、編集点401から編集点402までの輪郭上の中間に追加してもよい。または、表示制御部202は、編集点403を、編集点401から編集点402までの輪郭上の特徴点に追加してもよい。ここで、輪郭上の特徴点とは、当該輪郭の曲がり具合の特徴を表す点であり、例えば、当該輪郭を代数曲線にて表した場合の尖点等の特異点、及び当該代数曲線における曲率の極値点等を、輪郭上の特徴点として用いてもよい。
【0072】
続いて、受付部201は、編集点の位置を画面上の任意の位置に移動させる操作をユーザから受け付ける(ステップS105)。ここで、受付部201は、例えば、タッチパネル画面上の編集点に指で触れた状態で当該指を滑らせるスライド操作等を受け付ける。
【0073】
続いて、表示制御部202は、当該操作に応答して、操作された編集点の位置を移動させる(ステップS106)。ここで、表示制御部202は、例えば、操作された編集点を、スライド操作等により指が移動された位置まで移動させるとともに、当該操作された編集点から、輪郭上の長さが第3閾値(例えば、1cm)以下である1以上の他の編集点(以下で「周辺の編集点」との称する。)も、当該操作された編集点の移動方向に従った方向に移動させてもよい。この場合、表示制御部202は、例えば、周辺の編集点の移動距離は、当該操作された編集点の移動距離に比例し、当該操作された編集点から当該周辺の編集点までの輪郭上の長さに反比例するようにしてもよい。
【0074】
続いて、表示制御部202は、移動後の編集点を通る輪郭を算出し、算出した変更後の輪郭を表示させる(ステップS107)。ここで、表示制御部202は、移動後の編集点を通る輪郭を、現在表示されている各編集点を通る代数曲線として算出してもよい。または、表示制御部202は、移動後の編集点を通る輪郭を、現在表示されている各編集点を通る直線等として算出してもよい。
【0075】
続いて、表示制御部202は、現在表示されている編集点、及び変更後の輪郭に基づいて、表示させる編集点の追加、または削除を行う(ステップS108)。ここで、表示制御部202は、例えば、編集点の移動により、隣り合う2つの編集点の間の当該輪郭上の長さが第4閾値(例えば、1cm)以上離れた位置となる場合、各編集点が当該輪郭上の特徴点の位置となる位置に編集点を追加する。また、表示制御部202は、編集点の移動により、隣り合う2つの編集点の間の当該輪郭上の長さが上述した第2閾値未満の位置となる場合、当該隣り合う2つの編集点のうちの一方を削除する(非表示とする)。
【0076】
続いて、受付部201は、表示されている原画像を縮小するための操作をユーザから受け付ける(ステップS109)。ここで、受付部201は、例えば、タッチパネル画面上に親指、及び人差し指等を乗せ、二本の指でつまむような動作をするピンチイン操作等を受け付ける。
【0077】
続いて、表示制御部202は、拡大して表示されている原画像を縮小して表示させるとともに、編集点の数を減少させて表示させる(ステップS110)。
【0078】
ここで、表示制御部202は、ステップS105の編集点の位置を移動させる操作に基づいて位置が変更された編集点は表示を継続し、ステップS105の編集点の位置を移動させる操作によっては位置が変更されていない編集点のみ数を減少させて表示させてもよい。これにより、画像を縮小した場合でも、変更後の輪郭の特徴点等となっている、ユーザ操作により位置が変更された編集点の表示が継続されるため、輪郭の形状をより明確にユーザに表示することができる。
【0079】
なお、この場合、表示制御部202は、例えば、ステップS105の編集点の位置を移動させる操作に基づいて位置が変更された編集点としては、例えば、ユーザにより操作をされた一の編集点のみとしてもよい。または、表示制御部202は、当該一の編集点に加え、ステップS106において当該一の編集点の移動に合わせて自動で移動させた当該一の編集点の周辺の編集点、及びステップS108で追加された編集点等を含むようにしてもよい。表示制御部202は、
図7の例では、編集点601、及び編集点602等に加え、拡大表示された際に追加された後、ユーザの操作により位置が変更された編集点603も、縮小表示された際にも継続して表示させている。
【0080】
または、表示制御部202は、ステップS105の編集点の位置を移動させる操作に基づいて位置が変更された編集点についても、数を減少させて表示させてもよい。この場合、表示制御部202は、例えば、青丸等で表示される編集点は表示しないようにしても、白線等で表示される輪郭の線は、位置が変更された編集点を通る輪郭を表示してもよい。この場合、表示制御部202は、例えば、ステップS107にて移動後の編集点を通る輪郭を代数曲線として算出して記憶しておいてもよい。そして、表示制御部202は、縮小表示された際に編集点の表示を消し、再度拡大表示された際に、記憶されている代数曲線の特徴点等となっている、ステップS105のユーザ操作により位置が変更された編集点を再度表示させる。これにより、縮小表示された際に消された編集点を、再度拡大表示であれた際に復元することができる。
<第1実施形態の効果>
上述した第1の実施形態によれば、画像が拡大表示された際に、自動で編集点の数を増加させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末20の処理負荷を軽減できるという効果も奏する。
【0081】
<第2の実施形態>
第2の実施形態は、ユーザによる端末20の筐体を傾ける操作に応答して、原画像において切り抜く領域を指定する点を移動させて表示させる形態である。第2の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第2の実施形態は一部を除いて第1の実施形態と同様であるため、適宜説明を省略する。以下では、第1の実施形態と共通する部分については説明を省略し、異なる部分についてのみ説明する。なお、第2の実施形態に記載の内容は、他の各実施形態のいずれにも適用可能である。
<ハードウェア(HW)構成>
図8は、第2の実施形態における通信システムの構成を示す図である。
図8に示すように、第2の実施形態に係る端末20は、傾きセンサ29をさらに備える。傾きセンサ29は、例えば、加速度センサ、及び角速度センサ等であり、端末20の筐体の傾きを検出するためのセンサである。
<機能構成>
図8に示すように、第2の実施形態に係る端末20は、制御装置21により実現される機能として、傾き検出部205を有する。
【0082】
傾き検出部205は、傾きセンサ29からの出力に基づいて、端末20の筐体の傾きを検出する。
<処理>
≪第2実施形態のトリミング処理≫
次に、
図9乃至
図13を参照し、ステップS3の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。
図9は、第2実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
図10は、第1の移動点群の表示画面の一例を説明する図である。
図11は、元画像をエッジ検出されたデータの一例を説明する図である。
図12、及び
図13は、端末20の筐体を傾けた際の移動点の移動について説明する図である。
図14は、ユーザ操作による移動点の位置が固定された表示画面の一例を示す図である。
図15は、第2の移動点群の表示画面の一例を説明する図である。
【0083】
ステップS201において、表示制御部202は、受付部201により受け付けられたユーザの操作に応答して、表示されている原画像において切り抜く領域を指定するための1以上の移動点である第1の移動点群(「第1の複数の点」)を画面の一方の側から表示させる。
図10の例では、表示制御部202は、端末20の画面の上辺付近から、横方向に並べられた複数の移動点1001-1、1001-2、乃至1001-Nと、各移動点を結ぶ線1002(トリミング線)を表示させている。
【0084】
続いて、表示制御部202は、表示されている原画像のエッジを検出する(ステップS202)。ここで、表示制御部202は、例えば、画像を1次微分して勾配の大きさ(エッジの強さ)を計算し、勾配の方向からエッジの局所的方向を予測し、その方向の勾配が局所的に極大となる箇所を探す手法を用いてもよい。または、表示制御部202は、例えば、画像から求めた2次微分式でのゼロ交差を探す手法等を用いてもよい。または、その他の公知の手法を用いてもよい。
図11では、
図10に示す元画像をエッジ検出した結果のデータ1101の一例が示されている。
図11の例では、検出されたエッジの強さが所定の閾値以上である画素が黒で示されている。表示制御部202は、検出されたエッジの強さのうち、所定の閾値以上の値のみを用いるようにしてもよい。
【0085】
続いて、表示制御部202は、ユーザによる端末20の筐体を任意の方向に傾ける操作に応答して、複数の移動点1001-1、1001-2、乃至1001-Nと、各移動点を結ぶ線1002を、傾けられた方向に移動させて表示させる(ステップS203)。ここで、ユーザにより、筐体の画面が所定位置(例えば、水平位置)から大きく傾けられるほど、より速い速度で各移動点を移動させて表示させてもよい。
【0086】
続いて、表示制御部202は、元画像のエッジの強さに応じた仮想的な力(粘着力または摩擦力)により、当該各移動点を当該エッジの各部分で一旦停止させて表示させる(ステップS204)。ここで、表示制御部202は、各移動点が現在位置する
図10に示すような元画像上の画素の位置に対応する、
図11に示すようなエッジのデータ上の画素の位置におけるエッジの強さの値を抽出する。そして、表示制御部202は、抽出したエッジの強さに応じた仮想的な力により、各移動点を一旦停止させる。
【0087】
また、表示制御部202は、例えば、隣り合う各移動点を通る、原画像から検出したエッジに沿った曲線又は直線により、各移動点を結ぶトリミング線を表示する。
【0088】
なお、一旦停止された移動点は、筐体をさらに傾けることにより、再度移動される。この場合、表示制御部202は、例えば、ユーザにより筐体を傾けられた際、移動点に仮想的にかかる重力により当該移動点が滑り落ちる方向の力と、エッジの強さに応じた仮想的な力であるエッジ上の粘着力または摩擦力により当該移動点が当該エッジ上の位置に止まろうとする仮想的な慣性力とを算出する。そして、表示制御部202は、滑り落ちる方向の力の方が、エッジ上の位置に止まろうとする慣性力よりも大きくなった場合に、当該移動点を当該滑り落ちる方向に移動するように表示させてもよい。
【0089】
また、滑り落ちる方向の力の方が、各エッジ上の位置に止まろうとする慣性力よりも大きくなる程度に、筐体が十分に大きく傾けられている場合、移動点は当該各エッジ上で一旦停止されずに、端末20の画面の端まで移動されて表示されてもよい。
【0090】
なお、ステップS203の移動点を移動させる処理、及びステップS204のエッジの強さに応じた仮想的な力により各移動点を一旦停止させる処理は、ユーザによる筐体を傾ける操作により、交互に繰り返して行われる。
【0091】
図12の例では、
図10に示す元画像上の画素の位置に対応する、
図11に示す元画像がエッジ検出されたデータ上の画素の位置におけるエッジの強さの値に応じた仮想的な力により、各移動点が一旦停止されている。
図12に示す、犬301の耳の部分のエッジ上で一旦停止された移動点1201と、犬301の胴体の部分のエッジ上で一旦停止された移動点1202とでは、
図11に示すように、移動点1201の方が、移動点1202よりも高い仮想的な力により一旦停止される。そのため、
図12の画面が表示されている際に、さらに画面の上部を起こす姿勢となるように筐体を一定程度傾けると、移動点1201は停止されたまま、移動点1202は画面の下部方向に移動される。そして、移動点1202は、
図13に示す移動点1302のように、
図11に示すようなエッジの強さに従い、犬301の顔の下部の位置に移動して一旦停止される。
【0092】
図12、及び
図13の例では、表示制御部202は、例えば、ユーザにより筐体を傾けられた際に各移動点に仮想的にかかる重力により移動点が滑り落ちるように表示させる。そして、表示制御部202は、各移動点を結ぶ線1002上で隣り合う移動点間のエッジ上の長さが上述した第1閾値以上となっている場合、当該各移動点間のエッジ上の特徴点等の位置に、移動点を追加して表示させている。また、
図12、及び
図13の例では、表示制御部202は、ユーザにより、画面の上下方向に傾けられることにより、各移動点を結ぶ直線が、オブジェクトに上または下から垂れかかるように停止されて表示させる。そして、表示制御部202は、ユーザにより、画面の左右方向等に傾けられることにより、各移動点を結ぶ直線が、オブジェクトに左右から垂れかかるように停止されて表示させる。
【0093】
続いて、表示制御部202は、受付部201により当該各移動点に含まれる一の移動点がユーザによりタッチ(押下)操作されたことを検知すると(ステップS205)、タッチ操作された移動点の位置を固定する(ステップS206)。
図14の例では、表示制御部202は、位置が固定された移動点を、位置が固定されていない移動点と区別できる態様で表示させている。例えば、位置が固定されていない移動点が緑の丸の場合、位置が固定された移動点を、中黒の二重丸(丸中黒)、青の丸等で表示させる。
【0094】
続いて、表示制御部202は、受付部201により受け付けられたユーザの操作に応答して、表示されている原画像において切り抜く領域を指定するための第2の移動点群(「第2の複数の点」)を、上述した第1の移動点群表示した画面の一方の側と向かい合う他方の側から表示させる(ステップS207)。
図15の例では、第1の移動点群のうち、ステップS206の処理で位置が固定された移動点のみを表示させている。そして、端末20の画面の下辺付近から、横方向に並べられた複数の移動点1501-1、1501-2、乃至1501-Nと、各移動点を結ぶ線1502(トリミング線)を表示させている。
【0095】
続いて、第2の移動点群についても、第1の移動点群と同様に、ステップS203乃至ステップS206と同様の処理を行う(ステップS208乃至ステップS211)。これにより、上述した第1の移動点群のうち、ユーザの操作により位置が固定された移動点と、上述した第2の移動点群のうち、ユーザの操作により位置が固定された移動点とにより、切り抜く領域の輪郭が指定される。この場合、表示制御部202は、隣り合う各移動点を通る、原画像から検出したエッジに沿った曲線又は直線により、当該輪郭を算出してもよい。
<第2の実施形態の第1変形例>
次に、
図16を参照して、変形例について説明する。
図16は、大まかに指定された領域内のエッジを検出した結果のデータの一例を示す図である。上述した第1の実施形態における編集点により切り抜く領域を指定する処理と、第2の実施形態による筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する処理を組み合わせてもよい。
【0096】
この場合、例えば、
図4に示す第1の実施形態の処理により、
図7に示すように切り抜く領域を大まかに指定する。そして、
図9に示す第2の実施形態のステップS202の処理において、
図14に示すように、元画像において当該指定された領域内1401についてのみエッジを検出する。これにより、
図9に示すステップS203以降の処理において、より容易に、エッジ上に移動させて切り抜く領域を指定する操作が可能となる。なお、この場合、
図9のステップS205等の、ユーザのタッチ操作により移動点の位置を固定する処理を省略してもよい。また、2つ目のトリミング線を用いる
図9のステップS207乃至ステップS211の処理を省略してもよい。
<第2の実施形態の第2変形例>
上述した第2の実施形態による筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する処理をした後、上述した第1の実施形態における編集点により切り抜く領域を指定する処理を実行できるようにしてもよい。この場合、上述した移動点は、以下に説明するように、第1の実施形態における編集点として用いられる。
【0097】
まず、表示制御部202は、第2の実施形態の
図9に示す処理により、筐体の傾きに応じて移動点をエッジ上に移動させて切り抜く領域を指定する。そして、表示制御部202は、例えば、上述した第1実施形態の
図4に示すステップS103乃至ステップS110の処理により、原画像を拡大表示させるとともに、移動点を編集点とし、編集点の数を増加させて表示させる。そして、編集点を指で移動させる操作、または筐体を傾ける操作により、当該編集点を移動させる。
<第2実施形態の効果>
上述した第2の実施形態によれば、筐体の傾きに応じて、原画像において切り抜く領域を指定する点を移動させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末20の処理負荷を軽減できるという効果も奏する。
<第3の実施形態>
第3の実施形態は、ユーザのフリック操作やスワイプ操作等の操作に応答して、原画像において切り抜く領域を指定する点を、原画像におけるエッジの位置まで移動させて表示させる形態である。第3の実施形態によれば、画像から切り抜くオブジェクトの領域を比較的高精度かつ容易に指定できる。なお、第3の実施形態は一部を除いて第1の実施形態、または第2の実施形態と同様であるため、適宜説明を省略する。以下では、第1の実施形態、または第2の実施形態と共通する部分については説明を省略し、異なる部分についてのみ説明する。なお、第3の実施形態に記載の内容は、他の各実施形態のいずれにも適用可能である。
<処理>
≪第3実施形態のトリミング処理≫
次に、
図17乃至
図19を参照し、ステップS3の、ユーザからの操作により切り抜き範囲を編集する際の処理について説明する。
図17は、第3実施形態に係る切り抜き範囲を編集する際の処理の一例を示すフローチャートである。
図18は、フリック操作により編集点を移動させて表示させる処理について説明する図である。
図19A、及び
図19Bは、エッジの強さに応じて編集点の移動速度が減衰され、停止させて表示させる処理について説明する図である。
【0098】
ステップS301において、受付部201は、ユーザの操作に応答して、表示されている原画像において切り抜く領域の輪郭を取得する。続いて、表示制御部202は、当該輪郭上に、複数の編集点を表示させる(ステップS302)。
【0099】
ここで、ステップS301、及びステップS302の処理において、上述した第1実施形態の
図4に示すステップS101、及びステップS102の処理と同様に、ユーザにより指等でなぞられた輪郭を取得してもよい。または、上述した第1実施形態の
図4に示すステップS103乃至ステップS110のいずれかの処理段階における、拡大表示に伴い数が増加された編集点等を表示させてもよい。または、上述した第2実施形態の
図9に示すステップS201乃至ステップS211のいずれかの処理段階における移動点を、編集点として用いるようにしてもよい。
【0100】
続いて、受付部201は、複数の編集点に含まれる一の編集点(以下で「第1編集点」と称する。)に対するユーザのフリック操作(またはスワイプ操作)を受け付ける(ステップS303)。ここで、フリック操作とは、例えば、タッチパネルを有する画面上で、指を素早く動かしたり、弾いたりするような操作である。また、スワイプ操作とは、タッチパネルを有する画面上で、指を滑らせるような操作である。
【0101】
続いて、表示制御部202は、第1編集点と、第1編集点の周辺の編集点(以下で「第2編集点」と称する。)とを、フリック操作の方向に移動させる(ステップS304)。ここで、表示制御部202は、フリック操作の速さに応じた速さで第1編集点を移動させ、フリック操作の速さと、第1編集点と第2編集点との輪郭上の距離とに応じた速さで、第2編集点を移動させる。なお、フリック操作の方向とは、例えば、フリック操作にて指を動かした方向である。また、フリック操作の速さとは、例えば、フリック操作にて指を動かした速さである。
【0102】
図18の例では、表示制御部202は、フリック操作された第1編集点1801からの輪郭上の距離が所定の閾値以下、または第1編集点1801からの隣り合う編集点の数が所定の閾値以下である編集点1802、編集点1803、及び編集点1804を選択する。ここで、所定の閾値としては、少なくとも第1編集点と隣り合う他の編集点が含まれる値としてもよい。
【0103】
そして、表示制御部202は、第1編集点1801と、選択した編集点1802との輪郭上の距離を算出し、フリック操作の速さと、算出した距離とに応じた速さを大きさとし、フリック操作の方向を向きとする速度ベクトル1802Aを算出する。ここで、表示制御部202は、当該大きさを、例えば、フリック操作の速さに比例し、算出した距離に反比例した大きさとしてもよい。
【0104】
また、表示制御部202は、選択した編集点1803、及び編集点1804についても、同様にして速度ベクトル1803A、及び速度ベクトル1804Aをそれぞれ算出する。
【0105】
そして、表示制御部202は、第1編集点1801を、フリック操作の速さに応じた速さ、及びフリック操作の方向を有する速度ベクトル1801Aで移動させるとともに、編集点1802、編集点1803、及び編集点1804を、速度ベクトル1803A、及び速度ベクトル1804Aで移動させる。
【0106】
図18の例では、第1編集点1801からの輪郭上の距離は、編集点1802、編集点1803、及び編集点1804の順に長くなっている。この場合、速度ベクトル1802A、速度ベクトル1803A、速度ベクトル1804Aは、方向はそれぞれ同一であり、速さは、速度ベクトル1802A、速度ベクトル1803A、速度ベクトル1804Aの順に小さくなっている。
【0107】
続いて、表示制御部202は、移動された各編集点が表示されている原画像のエッジの位置に移動すると、元画像のエッジの強さに応じた仮想的な力(粘着力または摩擦力)により、各編集点をエッジ上の位置で停止させて表示させる(ステップS305)。ここで、表示制御部202は、原画像におけるエッジを予め検出しておいてもよい。または、表示制御部202は、移動された各編集点の移動元の位置から移動方向に沿った原画像におけるエッジのみを検出してもよい。これにより、端末20における処理負荷を軽減できる。
【0108】
ここで、表示制御部202は、例えば、フリック操作の速さと、フリック操作に応答して各編集点が移動する経路上のエッジの強さとに応じて、各編集点の移動の速さを減衰させて停止させてもよい。この場合、表示制御部202は、移動している各編集点について、
図19Aに示すように、編集点1901を速度ベクトル1901Aで移動させる。そして、表示制御部202は、移動方向1902上のエッジ1903を通過する際、エッジ1903の強さに応じた仮想的な力により、編集点1901の移動の速さを減衰させる。そして、表示制御部202は、
図19Bに示すように、編集点1901を、移動方向は不変であり、速度ベクトル1901Aから速さが減衰された速度ベクトル1901Bで移動させる。そして、表示制御部202は、移動方向1902上のエッジ1904の強さに応じた仮想的な力により、移動方向1902上のエッジ1904の位置で編集点1901を停止させる。
【0109】
続いて、表示制御部202は、移動後の編集点を通る輪郭を算出し、算出した変更後の輪郭を表示させる(ステップS306)。続いて、表示制御部202は、現在表示されている編集点、及び変更後の輪郭に基づいて、表示させる編集点の追加、または削除を行う(ステップS307)。なお、ステップS306乃至ステップS307の処理は、上述した第1実施形態の
図4のステップS107乃至ステップS108の処理と同様でもよい。
<第3の実施形態の第1変形例>
表示制御部202は、フリック操作等に応答して、編集点をエッジの位置まで移動させた後、ピンチアウト操作等を受け付けると、上述した第1実施形態の
図4に示すステップS103乃至ステップS110の処理を行うようにしてもよい。すなわち、原画像を拡大表示させるとともに、移動点を編集点とし、編集点の数を増加させて表示させる等の処理を行う。そして、拡大表示された状態で、編集点を指で移動させるスライド操作により、当該編集点を指が離された位置まで移動させる。
<第3実施形態の効果>
上述した第3の実施形態によれば、ユーザのフリック操作やスワイプ操作等の操作に応答して、原画像において切り抜く領域を指定する点を、原画像におけるエッジの位置まで移動させて表示させる。これにより、原画像中から切り抜く対象のオブジェクトの輪郭を、より容易な操作で、より精度良く指定することができる。また、操作がより容易となるため、結果的に端末20の処理負荷を軽減できるという効果も奏する。
【0110】
<その他>
なお、上述した実施形態では、端末20にインストールされたアプリケーション等において画像処理を行う例について説明したが、サーバ10において画像処理を行うようにしてもよい。この場合、例えば、端末20の受付部201は、ユーザによる操作内容をサーバ10に通知し、サーバ10の表示制御部102により端末20の表示画面の制御を行い、サーバ10の制御部103がトリミング等の画像処理を行うようにしてもよい。
【0111】
受付部201は、「取得部」の一例である。画像処理部203は、「切り取り部」の一例である。サーバ10、及び端末20は、それぞれ、「情報処理装置」の一例である。
【0112】
本開示の実施形態を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本開示の範囲に含まれることに留意されたい。限定でなく例として、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。また、各実施形態に示す構成を適宜組み合わせることとしてもよい。
【符号の説明】
【0113】
10 サーバ
101 取得部
102 表示制御部
103 制御部
20 端末
201 受付部
202 表示制御部
203 画像処理部
204 制御部
205 傾き検出部