(57)【要約】【課題】画像の一部の領域を選択するためのユーザの負担を軽減する。【解決手段】  光学的に読み取られた画像である入力画像を、入力画像のうちの少なくとも一部の領域を示す枠と共に、表示部に表示させる。そして、入力画像のうち枠に囲まれる領域を、特定の画像処理の対象として決定する。ここで、表示部上で入力画像に対して枠を相対的に移動させる。枠の入力画像に対する相対的な移動をユーザの指示に応じて停止させる。ユーザの指示に応じて枠の入力画像に対する相対的な移動が停止した後に、枠に囲まれる領域を、特定の画像処理の対象として決定する。【選択図】  図６
2016063333.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
光学的に読み取られた画像である入力画像を、前記入力画像のうちの少なくとも一部の領域を示す枠と共に、表示部に表示させる表示制御部と、
前記入力画像のうち前記枠に囲まれる領域を、特定の画像処理の対象として決定する対象決定部と、
を備え、
前記表示制御部は、
前記表示部上で前記入力画像に対して前記枠を相対的に移動させ、
前記枠の前記入力画像に対する相対的な移動をユーザの指示に応じて停止させ、
前記対象決定部は、前記ユーザの指示に応じて前記枠の前記入力画像に対する相対的な移動が停止した後に、前記枠に囲まれる領域を、前記特定の画像処理の対象として決定する、
画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記入力画像を解析することによって、前記入力画像中の複数のオブジェクトを表す複数のオブジェクト領域を決定する解析部を備え、
前記表示制御部は、
前記表示部に表示される前記枠を、前記枠に重なるオブジェクト領域の全体を含む枠に調整し、
調整前の枠が第１オブジェクト領域に重なる場合には、調整前の枠が前記第１オブジェクト領域よりも小さい第２オブジェクト領域に重なる場合よりも、前記枠を大きな枠に調整する、
画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記入力画像を解析することによって、前記入力画像中の複数のオブジェクトを表す複数のオブジェクト領域を決定する解析部を備え、
前記枠に対応付けられた基準領域に重なる前記オブジェクト領域の数をオブジェクト数とする場合に、
前記表示制御部は、前記オブジェクト数が比較的大きい場合には、前記オブジェクト数が比較的小さい場合よりも遅く、前記入力画像に対して前記枠を相対的に移動させる、
画像処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の画像処理装置であって、
前記入力画像を解析することによって、前記入力画像中の複数のオブジェクトを表す複数のオブジェクト領域を決定する解析部を備え、
前記表示制御部は、前記入力画像のうち、前記枠に囲まれる領域が前記オブジェクト領域と重ならない領域の少なくとも一部において、前記枠の相対的な移動を省略する、
画像処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置であって、
前記表示制御部は、前記入力画像に対して前記枠が相対的に移動している最中に前記入力画像上の前記枠の外の位置がユーザによって選択される場合に、前記入力画像に対する前記枠の相対的な位置を前記選択された位置に移動させる、
画像処理装置。
【請求項６】
請求項１から５のいずれか１項に記載の画像処理装置であって、
前記入力画像を解析することによって、前記入力画像中の複数のオブジェクトを表す複数のオブジェクト領域を決定する解析部と、
前記複数のオブジェクト領域を用いて、前記入力画像に対する前記枠の初期の相対位置と、前記入力画像に対する前記枠の初期の移動方向と、の少なくとも一方である初期情報を決定する初期情報決定部を備え、
前記表示制御部は、前記初期情報決定部により決定された前記初期情報に基づいて、前記表示部上で前記入力画像に対して前記枠を相対的に移動させる、
画像処理装置。
【請求項７】
請求項１から６のいずれか１項に記載の画像処理装置であって、
前記表示制御部は、前記ユーザの指示に応じて前記枠の相対的な移動が停止した後に、互いにサイズが異なる複数の枠の候補を前記表示部に表示させ、
前記画像処理装置は、さらに、前記複数の枠の候補のうちのユーザによって選択された枠の候補を前記特定の画像処理の対象を決定するための枠として決定する、枠決定部を備える、
画像処理装置。
【請求項８】
コンピュータプログラムであって、
光学的に読み取られた画像である入力画像を、前記入力画像のうちの少なくとも一部の領域を示す枠と共に、表示部に表示させる表示制御機能と、
前記入力画像のうち前記枠に囲まれる領域を、特定の画像処理の対象として決定する対象決定機能と、
をコンピュータに実現させ、
前記表示制御機能は、
前記表示部上で前記入力画像に対して前記枠を相対的に移動させ、
前記枠の前記入力画像に対する相対的な移動をユーザの指示に応じて停止させ、
前記対象決定機能は、前記ユーザの指示に応じて前記枠の前記入力画像に対する相対的な移動が停止した後に、前記枠に囲まれる領域を、前記特定の画像処理の対象として決定する、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像中の一部の領域を選択する技術に関する。
【背景技術】
【０００２】
従来から、画像中の一部の領域が選択され、選択された領域に対して印刷処理や画像データ生成処理等の種々の画像処理が実行されている。ここで、画像中の一部の領域をユーザに選択させる技術が提案されている。例えば、特許文献１に開示された技術では、トリミング枠ＴＦの四隅又は各辺中央の黒四角形状のハンドルＨ以外の箇所を掴んでドラッグする操作が、トリミング枠ＴＦの移動操作として採用され、トリミング枠ＴＦの四隅又は各辺中央の黒四角形状のハンドルＨの箇所を掴んでドラッグする操作が、トリミング枠ＴＦの拡大・縮小操作として採用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０８５２７６号公報
【特許文献２】特開２００５−１１００００号公報
【特許文献３】特開２００４−０００５２９号公報
【特許文献４】特開２００７−３１６８４５号公報
【特許文献５】特開２００１−２７４９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、ユーザにとって、画像中の一部の領域を選択することの負担は、大きかった。例えば、トリミング枠の辺の位置を移動させる場合には、ユーザは、誤って他の辺を選択しないように移動対象の辺を正確に選択し、そして、移動後の位置を正確に指定しなければならなかった。
【０００５】
本開示は、画像の一部の領域を選択するためのユーザの負担を軽減できる技術を提供する。
【課題を解決するための手段】
【０００６】
本開示の態様によれば、例えば、以下の適用例が提供される。
【０００７】
［適用例１］画像処理装置であって、光学的に読み取られた画像である入力画像を、前記入力画像のうちの少なくとも一部の領域を示す枠と共に、表示部に表示させる表示制御部と、前記入力画像のうち前記枠に囲まれる領域を、特定の画像処理の対象として決定する対象決定部と、を備え、前記表示制御部は、前記表示部上で前記入力画像に対して前記枠を相対的に移動させ、前記枠の前記入力画像に対する相対的な移動をユーザの指示に応じて停止させ、前記対象決定部は、前記ユーザの指示に応じて前記枠の前記入力画像に対する相対的な移動が停止した後に、前記枠に囲まれる領域を、前記特定の画像処理の対象として決定する、画像処理装置。
【０００８】
この構成によれば、枠が入力画像に対して相対的に移動し、そして、ユーザの指示に応じて枠の相対的な移動が停止するので、枠の位置を決定するためのユーザの負担を軽減できる。従って、入力画像の一部の領域を選択するためのユーザの負担を軽減できる。
【０００９】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施例の画像処理装置１００を示す説明図である。
【図２】画像処理の手順を示すフローチャートである。
【図３】画像処理の手順を示すフローチャートである。
【図４】画像処理の手順を示すフローチャートである。
【図５】スキャン画像の一例を示す概略図である。
【図６】表示部１４０に表示される画像の概略図である。
【図７】互いにサイズが異なる複数の枠の概略図である。
【図８】枠が選択位置に移動する様子を示す概略図である。
【図９】画像処理の別の実施例の手順の一部を示すフローチャートである。
【図１０】枠Ｆの移動経路の例を示す概略図である。
【図１１】画像処理の別の実施例の手順の一部を示すフローチャートである。
【図１２】スキャン画像ＩＭ１に対して移動する枠の概略図である。
【図１３】画像処理の別の実施例の手順の一部を示すフローチャートである。
【図１４】複数の枠の候補の例の概略図である。
【図１５】複数の枠の候補の別の例の概略図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
図１は、第１実施例の画像処理装置１００を示す説明図である。画像処理装置１００は、例えば、スキャナ装置である。画像処理装置１００は、プロセッサ１１０と、揮発性記憶装置１２０と、不揮発性記憶装置１３０と、表示部１４０と、操作部１５０と、装置インタフェース１６０と、スキャナ部１９０と、を有している。
【００１２】
プロセッサ１１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置１２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置１３０は、例えば、フラッシュメモリである。不揮発性記憶装置１３０は、プログラム１３２を格納している。プロセッサ１１０は、プログラム１３２を実行することによって、種々の機能を実現する（詳細は、後述）。また、プロセッサ１１０は、プログラム（例えば、プログラム１３２）の実行に利用される種々の中間データを、記憶装置（例えば、揮発性記憶装置１２０、または、不揮発性記憶装置１３０）に、一時的に格納する。
【００１３】
表示部１４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部１５０は、ユーザによる操作を受け取る装置であり、例えば、表示部１４０上に重ねて配置されたタッチパネルである。ユーザは、操作部１５０を操作することによって、後述する画像処理の開始指示等の種々の指示を画像処理装置１００に入力可能である。
【００１４】
スキャナ部１９０は、ＣＣＤやＣＭＯＳなどの光電変換素子を用いて光学的に原稿を読み取ることによって、読み取った画像（「スキャン画像」と呼ぶ）を表すスキャンデータを生成する。スキャンデータは、例えば、カラーのスキャン画像を表すＲＧＢのビットマップデータである。また、本実施例では、スキャン画像は、矩形状の画像である。
【００１５】
装置インタフェース１６０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。装置インタフェース１６０には、記憶装置（例えば、フラッシュメモリ）を接続可能である。
【００１６】
図２、図３、図４は、画像処理の手順を示すフローチャートである。図３は、図２の続きを示し、図４は、図３の続きを示している。この画像処理は、例えば、ユーザが、操作部１５０（図１）を通じて画像処理の開始指示を入力した場合に、プロセッサ１１０によって開始される。例えば、ユーザは、スキャナ部１９０の図示しない原稿台に原稿を載せた後に、画像処理の開始指示を入力する。プロセッサ１１０は、プログラム１３２に従って、画像処理を制御する。以下、処理を示す符号として、文字「Ｓ」と、文字「Ｓ」に続く数字と、を組み合わせた符号を用いる。
【００１７】
Ｓ１００では、プロセッサ１１０は、原稿のプレスキャンを行う。プレスキャンは、後述する本スキャンと比べて、簡略化されたスキャンである。例えば、プレスキャンの解像度（例えば、１００ｄｐｉ）は、本スキャンの解像度（例えば、３００ｄｐｉ）よりも粗い。プロセッサ１１０は、プレスキャンの設定（例えば、解像度）を含むコマンドを、スキャナ部１９０に送信する。スキャナ部１９０は、受信したコマンドに従って原稿を読み取り、スキャンデータを生成し、生成したスキャンデータを記憶装置（例えば、揮発性記憶装置１２０、または、不揮発性記憶装置１３０）に格納する。
【００１８】
図５は、スキャン画像の一例を示す概略図である。スキャン画像は、第１方向Ｄ１と、第１方向Ｄ１に垂直な第２方向Ｄ２と、に沿って格子状に配置された図示しない複数の画素の色値（例えば、ＲＧＢの色値）によって表されている。図示されたスキャン画像ＩＭ１は、背景ＢＧ上に互いに分離して配置された３個のオブジェクトＯＴ１、ＯＴ２、ＯＰを表している。第１オブジェクトＯＴ１は、文字列である（「第１文字オブジェクトＯＴ１」とも呼ぶ）。第２オブジェクトＯＴ２は、文字列である（「第２文字オブジェクトＯＴ２」とも呼ぶ）。第３オブジェクトＯＰは、写真である（「写真オブジェクトＯＰ」とも呼ぶ）。以下、このスキャン画像ＩＭ１が処理されることとして、説明を行う。
【００１９】
図２のＳ１１０では、プロセッサ１１０は、記憶装置からスキャンデータを取得し、スキャン画像ＩＭ１（図５）を表示部１４０に表示させる。図６は、表示部１４０に表示されたスキャン画像ＩＭ１を示している。図中の枠Ｆは、後述する処理で表示される。図示を省略するが、プロセッサ１１０は、さらに、「トリミング」を含む複数の画像処理の選択肢を表すメニューを、表示部１４０に表示させる。複数の選択肢は、例えば、「トリミング」、「保存」、「破棄」を含んでいる。「トリミング」は、スキャン画像の一部をトリミングで抽出し、抽出した部分の領域を本スキャンし、本スキャンした部分領域の画像を表すデータを保存する処理である。「保存」は、スキャン画像の全体を表すデータを保存する処理である。「破棄」は、データを保存せずに破棄する処理である。ユーザは、表示されたスキャン画像を観察した上で、処理を選択することができる。また、ユーザは、操作部１５０上の選択肢と重なる位置をタップすることによって、その選択肢を選択することができる。
【００２０】
「トリミング」または「保存」が選択された場合、プロセッサ１１０は、利用可能な記憶装置の一覧を表示部１４０に表示させ、ユーザによって選択された記憶装置を保存先として採用する（図示省略）。保存先の候補としては、種々の記憶装置を採用可能であり、例えば、画像処理装置１００の不揮発性記憶装置１３０、装置インタフェース１６０に接続された図示しない記憶装置、等を採用可能である。
【００２１】
以下、ユーザが「トリミング」を選択することとする（Ｓ１２０）。Ｓ１３０では、プロセッサ１１０は、スキャン画像を解析して、スキャン画像のうちのオブジェクトを表す領域であるオブジェクト領域を決定する。オブジェクトとしては、文字列、写真、グラフィック等の種々のオブジェクトが、表され得る。オブジェクト領域を決定する方法としては、公知の方法を採用可能であり、例えば、以下の方法を採用可能である。スキャン画像を複数の処理領域（例えば、矩形領域）に分割し、処理領域毎に特定の色成分の色値（例えば、輝度値）の分散を算出する。そして、分散が所定の閾値（「オブジェクト閾値」と呼ぶ）よりも小さい処理領域を「背景」に分類し、分散が所定の閾値以上の処理領域を「オブジェクト」に分類する。そして、オブジェクトに分類された処理領域が連続することによって構成される１つの連続な領域を、１つのオブジェクト領域として決定する。以下、スキャン画像のうち、オブジェクト領域を除いた残りの部分を「背景領域」と呼ぶ。なお、オブジェクト領域の決定には、分散に限らず、他の種々の情報を採用可能である。また、複数の情報を組み合わせることによって、オブジェクト領域を決定してもよい。
【００２２】
図６には、決定されるオブジェクト領域ＯＡ１、ＯＡ２、ＯＡ３が示されている。第１オブジェクト領域ＯＡ１は、第１文字オブジェクトＯＴ１を表している（「第１文字領域ＯＡ１」とも呼ぶ）。第２オブジェクト領域ＯＡ２は、第２文字オブジェクトＯＴ２を表している（「第２文字領域ＯＡ２」とも呼ぶ）。第３オブジェクト領域ＯＡ３は、写真オブジェクトＯＰを表している（「写真領域ＯＡ３」とも呼ぶ）。スキャン画像ＩＭ１の他の部分は、背景領域ＢＧＡである。
【００２３】
図２のＳ１４０では、プロセッサ１１０は、トリミング用の枠の候補（以下、単に「枠」と呼ぶ）の初期位置を決定する。この初期位置は、スキャン画像に対する相対的な位置の初期値である。本実施例では、プロセッサ１１０は、枠Ｆの初期位置として、予め決められた位置（ここでは、スキャン画像の左上の隅の位置）を採用する。Ｓ１５０では、プロセッサ１１０は、初期位置の枠を、スキャン画像上に重ねて表示する。図６の左上の隅の第１位置Ｆ１の枠Ｆは、初期位置に配置された枠Ｆを示している。本実施例では、枠Ｆは、所定サイズの正方形の枠である。この枠は、第１方向Ｄ１に平行な２辺と、第２方向Ｄ２に平行な２辺と、で構成されている。枠Ｆの一辺の長さは、スキャン画像ＩＭ１の短辺の長さの１０分の１程度の長さである。ただし、枠Ｆが、より大きくてもよく、より小さくてもよい。
【００２４】
図２のＳ１６０では、プロセッサ１１０は、枠Ｆの移動方向を決定する。本実施例では、第１方向Ｄ１と第２方向Ｄ２とのうち、文字列のオブジェクトの文字列の延びる方向に近い方向が、枠Ｆの移動方向として採用される。
【００２５】
図２のＳ１６０を示すボックスの中には、Ｓ１６０の処理の例が示されている。Ｓ１６２では、プロセッサ１１０は、スキャン画像中のオブジェクト領域を解析することによって、文字列を表すオブジェクト領域（すなわち、文字領域）を特定する。オブジェクト領域が文字列を表すか否かを判断する方法としては、公知の方法を採用可能である。例えば、オブジェクト領域内の特定の色成分の色値（例えば、輝度値）の分散が所定の閾値（「文字閾値」と呼ぶ）よりも小さい場合に、オブジェクト領域が文字列を表していると判断してもよい。文字閾値としては、上記のオブジェクト閾値よりも大きな値を採用すればよい。
【００２６】
Ｓ１６４では、プロセッサ１１０は、文字領域の画像を解析することによって、文字列の延びる方向を特定する。文字列の延びる方向を特定する方法としては、公知の方法を採用可能である。例えば、文字領域中の複数の文字を公知の文字認識処理（Optical Character Recognitionとも呼ばれる）によって特定し、隣り合う２個の文字の間の距離を、複数の文字の組合せについて算出する（「文字間距離」と呼ぶ）。文字間距離としては、第１方向Ｄ１に隣り合う文字間の距離と、第２方向Ｄ２に隣り合う文字間の距離とが、算出される。第１方向Ｄ１の文字間距離の平均値と、第２方向Ｄ２の文字間距離の平均値と、のうち小さい平均値に対応付けられた方向を、文字列の延びる方向として採用可能である。
【００２７】
Ｓ１６６では、プロセッサ１１０は、文字列の延びる方向を、移動方向として採用する。図５、図６の例では、文字領域ＯＡ１、ＯＡ２の文字列の延びる方向が第１方向Ｄ１であるので、枠Ｆの移動方向は、第１方向Ｄ１に決定される。
【００２８】
なお、複数の文字領域の間で文字列の延びる方向が異なる場合に移動方向を決定する方法としては、任意の方法を採用可能である。例えば、最大面積の文字領域の文字列の方向を採用してもよい。また、スキャン画像が文字領域を含まない場合に移動方向を決定する方法としては、任意の方法を採用可能である。例えば、所定の方向（例えば、第１方向Ｄ１）を採用してもよい。
【００２９】
図３のＳ２００〜Ｓ２７０では、プロセッサ１１０は、スキャン画像ＩＭ１上で枠Ｆを移動させ、そして、ユーザの指示に応じて枠Ｆを停止させる。具体的には、Ｓ２００では、プロセッサ１１０は、表示部１４０に表示される枠Ｆを、移動方向に移動させる。後述するように、Ｓ２００は、繰り返し実行される。１回のＳ２００による移動量（画素数）は、移動速度に対応付けられている。移動速度は、「標準速度」と「高速度」の２つから選択される。移動速度の初期値は、「標準速度」である。標準速度と高速度とは、いずれも、移動する枠Ｆのスキャン画像ＩＭ１上の位置を目で追いかけることができる程度の速度である。
【００３０】
なお、図示を省略するが、本実施例では、プロセッサ１１０は、Ｓ２００で、ユーザに操作を案内するための２つのメッセージを表示部１４０に表示させる。２つのメッセージは、具体的には、「枠Ｆが好みの位置に到着したら、枠Ｆ内をタップしてください」と「枠Ｆを大きく移動させる場合には、移動先の位置をタップしてください」とである。
【００３１】
図６には、枠Ｆの移動経路の例が矢印で示されている。この移動経路は、Ｓ２００が繰り返し実行されることによって、実現される。「Ｆ３」のように文字「Ｆ」と数値とを組み合わせた符号は、枠Ｆの位置を示している。枠Ｆは、初期位置Ｆ１から、第１方向Ｄ１に向かって移動する。この結果、枠Ｆの位置は、位置Ｆ１、Ｆ２、Ｆ３、Ｆ４を辿る。第１方向Ｄ１側の端の位置Ｆ４まで移動したら、枠Ｆの第２方向Ｄ２の位置が所定距離（例えば、１個の枠Ｆの大きさと同じ距離）だけ第２方向Ｄ２に移動し、そして、枠Ｆは、第１方向Ｄ１とは反対方向側の端の位置Ｆ５から、再び、第１方向Ｄ１に向かって移動する（Ｆ６、Ｆ７、Ｆ８）。以降、枠Ｆが第１方向Ｄ１に移動する処理が、第２方向Ｄ２の位置をずらしながら、繰り返される。枠Ｆが第２方向Ｄ２の端の位置に到達したら、枠Ｆは、再び、初期位置Ｆ１から移動する。プロセッサ１１０がこのような規則に従って枠Ｆを移動させることによって、枠Ｆは、スキャン画像ＩＭ１の全体に亘って移動可能である。
【００３２】
図３のＳ２１０では、プロセッサ１１０は、枠Ｆが、背景領域ＢＧＡ上にあるか否かを判断する。枠Ｆが背景領域ＢＧＡ上にあると判断するための条件としては、種々の条件を採用可能である。本実施例では、枠Ｆの予め決められた基準位置が背景領域ＢＧＡ内にある場合に、枠Ｆが背景領域ＢＧＡ上にあると判断される。枠Ｆの基準位置としては、枠Ｆ内の任意の位置を採用可能である。本実施例では、枠Ｆの中心位置が、基準位置として採用される。なお、判断条件としては、枠Ｆの全体が背景領域ＢＧＡ内に存在すること、または、枠Ｆの少なくとも一部が背景領域ＢＧＡ内に存在すること、を採用してもよい。いずれの場合も、枠Ｆがオブジェクト領域上にあると判断するための条件は、枠Ｆが背景領域ＢＧＡ上にあると判断するための条件が満たされないことである、ということができる。
【００３３】
枠Ｆが背景領域ＢＧＡ上にあると判断される場合（Ｓ２１０：Ｙｅｓ）、Ｓ２２０で、プロセッサ１１０は、枠Ｆの移動速度を、「高速度」に設定し、Ｓ２４０に移行する。枠Ｆが背景領域ＢＧＡ上にあると判断されない場合（Ｓ２１０：Ｎｏ）、すなわち、枠Ｆがオブジェクト領域上にあると判断される場合、Ｓ２３０で、プロセッサ１１０は、枠Ｆの移動速度を、「標準速度」に設定し、Ｓ２４０に移行する。
【００３４】
図６では、枠Ｆの移動経路を示す矢印は、白抜きの矢印と黒で塗りつぶされた矢印との２種類に区分されている。白抜きの矢印は、「高速度」での移動経路を示し、塗りつぶされた矢印は、「標準速度」での移動経路を示している。図示するように、背景領域ＢＧＡ上では、枠Ｆは「高速度」で移動する。オブジェクト領域ＯＡ１上では、枠Ｆは「標準速度」で移動する。図示を省略するが、他のオブジェクト領域ＯＡ２、ＯＡ３上でも、枠Ｆは「標準速度」で移動する。
【００３５】
図３のＳ２４０では、プロセッサ１１０は、スキャン画像ＩＭ１上の位置を選択するユーザの指示が入力されたか否かを判断する。枠Ｆが移動している最中に、ユーザは、操作部１５０をタップすることによって、スキャン画像ＩＭ１上のタップ位置に重なる位置を選択することができる。プロセッサ１１０は、操作部１５０からの信号を用いて、Ｓ２４０の判断を行う。ユーザによって位置が選択されていない場合、すなわち、ユーザの指示が入力されていない場合（Ｓ２４０：Ｎｏ）、プロセッサ１１０は、Ｓ２００に戻り、上記の処理を繰り返す。これにより、枠Ｆは、図６で説明したように、スキャン画像ＩＭ１上を順次に移動する。
【００３６】
ユーザの指示が入力された場合（Ｓ２４０：Ｙｅｓ）、Ｓ２５０で、プロセッサ１１０は、操作部１５０からタップ位置を表す情報を取得し、スキャン画像ＩＭ１上のタップ位置に重なる位置（「選択位置」と呼ぶ）を算出する。そして、プロセッサ１１０は、選択位置が枠Ｆ内か否かを判断する。選択位置が枠Ｆの外である場合については、後述する。選択位置が枠Ｆ内である場合（Ｓ２５０：Ｙｅｓ）、Ｓ２７０で、プロセッサ１１０は、枠を停止させる。停止した枠Ｆの位置を「停止位置」と呼ぶ。以下、図６のオブジェクト領域ＯＡ１上の位置Ｆｔ１が停止位置であることとして、説明を行う。図中の位置Ｔ１は、選択位置を示している。
【００３７】
図４のＳ３００〜Ｓ３２０では、プロセッサ１１０は、互いにサイズが異なる複数の枠の候補を表示部１４０に表示し、そして、ユーザによって選択された枠の候補を、トリミングに用いる枠として決定する。具体的には、Ｓ３００では、プロセッサ１１０は、表示部１４０に表示される枠Ｆのサイズを変更する。図７は、互いにサイズが異なる複数の枠の概略図である。図中には、表示部１４０に表示されるスキャン画像ＩＭ１と枠とが示されている。本実施例では、互いにサイズが異なる３個の枠Ｆａ、Ｆｂ、Ｆｃが、表示される。これらの枠Ｆａ、Ｆｂ、Ｆｃは、予め決められた枠であり、いずれも、上記の停止位置に配置されている。なお、本実施例では、第１枠Ｆａは、上記の枠Ｆと同じである。他の枠Ｆｂ、Ｆｃは、第１枠Ｆａよりも大きい。また、最も大きい枠Ｆｃとしては、枠Ｆに重なるオブジェクト領域の全体を包含する最小枠を採用してもよい。プロセッサ１１０は、これらの枠Ｆａ、Ｆｂ、Ｆｃから、表示部１４０に表示されている枠とは異なるサイズの枠を選択し、元の枠を消去し、そして、選択した枠を表示部１４０に表示させる。１回のＳ３００では、枠が１回変更される。Ｓ３００では、例えば、Ｆａ、Ｆｂ、Ｆｃの順番を繰り返すように、枠が選択される。Ｓ３００は、ユーザによって１個の枠が選択されるまで、繰り返される。なお、元の枠Ｆよりも小さい枠が、候補として表示されてもよい。
【００３８】
なお、図示を省略するが、本実施例では、プロセッサ１１０は、Ｓ３００で、ユーザに操作を案内するために、「枠の大きさが好みの大きさになったら、画面をタップしてください」というメッセージを表示部１４０に表示させる。
【００３９】
Ｓ３１０では、プロセッサ１１０は、枠を選択するユーザの指示が入力されたか否かを判断する。ユーザは、操作部１５０上の任意の位置をタップすることによって、表示部１４０に表示されている枠を選択することができる。プロセッサ１１０は、操作部１５０からの信号を用いて、Ｓ３１０の判断を行う。ユーザによって枠が選択されていない場合、すなわち、ユーザの指示が入力されていない場合（Ｓ３１０：Ｎｏ）、プロセッサ１１０は、Ｓ３００に戻って、上記の処理を繰り返す。これにより、表示部１４０上では、ユーザによって１個の枠が選択されるまで、３個の枠Ｆａ、Ｆｂ、Ｆｃは、この順番に、繰り返し、スキャン画像ＩＭ１上に重ねて表示される。
【００４０】
ユーザの指示が入力された場合（Ｓ３１０：Ｙｅｓ）、Ｓ３２０で、プロセッサ１１０は、表示部１４０に表示されている枠を、トリミング用の枠として決定する（「トリミング枠」と呼ぶ）。以下、図７の第２枠Ｆｂが選択されたこととして、説明を行う。
【００４１】
Ｓ３３０では、プロセッサ１１０は、スキャン画像のうちのトリミング枠に囲まれる領域を、本スキャンの対象として決定する。以下、スキャン画像のうちトリミング枠に囲まれる部分画像を「枠内画像」とも呼ぶ。Ｓ３４０では、プロセッサ１１０は、原稿の本スキャンを行う。プロセッサ１１０は、本スキャンの設定（例えば、トリミング枠に囲まれる領域を特定する情報と解像度）を含むコマンドを、スキャナ部１９０に送信する。スキャナ部１９０は、受信したコマンドに従って原稿のうちのトリミング枠（ここでは、第２枠Ｆｂ）に囲まれる領域を読み取り、スキャンデータを生成し、生成したスキャンデータを記憶装置（例えば、揮発性記憶装置１２０、または、不揮発性記憶装置１３０）に格納する。
【００４２】
図４のＳ３５０では、プロセッサ１１０は、Ｓ３４０で生成されたスキャンデータを用いて枠内画像を表す所定の形式の画像データを生成し、生成した画像データを、保存先の記憶装置に格納する。例えば、図７の例では、第２枠Ｆｂに囲まれる枠内画像ＩＭ２を表す画像データが、生成される。以上により、図２、図３、図４の画像処理が終了する。生成される画像データの形式としては、任意の形式（例えば、JPEG形式やPNG形式やPDF形式）を採用可能である。プロセッサ１１０は、生成される画像データの形式として、ユーザによって選択された形式を採用してもよい。また、生成される画像データの形式が、スキャンデータの形式と同じである場合、プロセッサ１１０は、スキャンデータを、そのまま、生成される画像データとして採用してもよい（この場合、プロセッサ１１０は、Ｓ３５０を省略可能である）。
【００４３】
図３のＳ２５０で、選択位置が枠Ｆの外である場合（Ｓ２５０：Ｎｏ）、Ｓ２６０で、プロセッサ１１０は、枠を選択位置に移動させる。図８は、枠が選択位置に移動する様子を示す概略図である。図中には、表示部１４０に表示されるスキャン画像ＩＭ１と枠とが示されている。図８は、枠Ｆが位置Ｆ１１に位置する状態で、枠Ｆの外の位置Ｔ２がタップされた場合を示している。プロセッサ１１０は、元の位置Ｆ１１の枠Ｆを消去し、そして、選択位置Ｔ２の枠Ｆを表示部１４０に表示させる。これにより、枠Ｆは、元の位置Ｆ１１から選択位置Ｔ２に移動する。Ｓ２６０の後、プロセッサ１１０は、Ｓ２００に戻り、上記の処理を繰り返す。これにより、枠Ｆは、選択位置Ｔ２から、図６で説明したように、移動する。
【００４４】
図８の選択位置Ｔ２は、写真領域ＯＡ３上の位置である。ユーザは、写真領域ＯＡ３のトリミングを希望しているにも拘わらずに、枠Ｆが写真領域ＯＡ３から離れた位置を移動している場合に、写真領域ＯＡ３をタップすることによって、枠Ｆを写真領域ＯＡ３上の位置に移動させることができる。これにより、ユーザは、写真領域ＯＡ３を含むトリミング枠の決定を、速やかに行うことができる。
【００４５】
以上のように、本実施例では、プロセッサ１１０は、表示部１４０上でスキャン画像ＩＭ１に対して枠Ｆを移動させ（Ｓ２００）、ユーザの指示に応じて枠Ｆを停止させ（Ｓ２７０）、枠に囲まれる領域を本スキャンと画像データ生成との対象として決定する（Ｓ３３０）。このように、ユーザは、移動する枠が希望する位置に到達した時にその枠の位置を選択すればよいので、枠の位置を決定するためのユーザの負担を軽減できる。
【００４６】
また、プロセッサ１１０は、図３のＳ２１０、Ｓ２２０、Ｓ２３０、図６で説明したように、枠Ｆがオブジェクト領域上に位置する場合には（Ｓ２１０：Ｎｏ）、枠Ｆが背景領域ＢＧＡ上に位置する場合よりも（Ｓ２１０：Ｙｅｓ）、枠Ｆの移動速度を遅くする（Ｓ２２０、Ｓ２３０）。従って、ユーザは、オブジェクト領域を含む領域のトリミングを希望する場合に、希望する位置で枠Ｆを容易に止めることができる。また、枠Ｆが背景領域ＢＧＡを移動する時間を短くすることができる。
【００４７】
また、図３のＳ２５０、Ｓ２６０、図８で説明したように、プロセッサ１１０は、枠Ｆが移動している最中に枠Ｆの外の位置がユーザによって選択される場合（Ｓ２５０：Ｎｏ）、枠Ｆを選択位置に移動させる（Ｓ２６０）。従って、ユーザは、希望する位置に枠Ｆを容易に移動させることができる。
【００４８】
また、図２のＳ１６０で説明したように、プロセッサ１１０は、スキャン画像ＩＭ１を解析し、解析結果に応じて、枠Ｆの移動方向を決定する。従って、スキャン画像ＩＭ１に適した枠Ｆの移動を実現できるので、枠Ｆの位置を決定するためのユーザの負担を軽減できる。具体的には、移動方向は、２つの方向Ｄ１、Ｄ２のうち文字列の延びる方向に近い方向が、移動方向として採用される。この移動方向は、ユーザが文字列を読む場合の視線の移動方向と平行なので、ユーザは、文字列のうちの特定の部分を含む領域のトリミングを希望する場合に、希望する位置で枠Ｆを容易に止めることができる。
【００４９】
また、図４のＳ３００、Ｓ３１０、Ｓ３２０、図７で説明したように、プロセッサ１１０は、ユーザの指示に応じて枠Ｆが停止した後に、互いにサイズが異なる複数の枠の候補Ｆａ、Ｆｂ、Ｆｃを表示部１４０に表示させ（Ｓ３００）、複数の枠の候補Ｆａ、Ｆｂ、Ｆｃのうちユーザによって選択された枠の候補を、トリミングのための枠として決定する（Ｓ３２０）。このように、ユーザは、互いにサイズが異なる複数の枠の候補から希望するサイズの枠の候補を選択すればよいので、枠のサイズを決定するためのユーザの負担を軽減できる。
【００５０】
Ｂ．第２実施例：
図９は、画像処理の別の実施例の手順の一部を示すフローチャートである。図９の処理は、図３のＳ２１０〜Ｓ２４０の代わりに適用可能である（図９のステップのうち、図３のステップと同じステップには、同じ符号が付されている）。図３の実施例との差異は、移動速度を設定するＳ２２０、Ｓ２３０が省略され、そして、Ｓ２２０の代わりに、枠Ｆをオブジェクト領域へ移動させるＳ２２２が設けられている点だけである。Ｓ２１０の判断結果が「Ｎｏ」である場合には、処理は、Ｓ２４０に移行する。画像処理の他の部分は、図２、図３、図４の第１実施例と同じである。また、画像処理の実行に利用される装置のハードウェア構成は、図１の構成と同じである。以下、第１実施例と共通する部分の説明を省略する。
【００５１】
Ｓ２１０の判断結果が「Ｙｅｓ」である場合、Ｓ２２２で、プロセッサ１１０は、枠Ｆをオブジェクト領域へ移動させる。本実施例では、枠Ｆの移動先の位置は、枠Ｆが現行の位置から所定の規則（ここでは、図６で説明した規則）に従って移動すると仮定した場合に、最初にオブジェクト領域上に到達する位置である。
【００５２】
図１０は、枠Ｆの移動経路の例を示す概略図である。図中には、表示部１４０に表示されたスキャン画像ＩＭ１と枠Ｆとが示されている。図中の矢印は、枠Ｆの移動経路を示している。塗りつぶされた矢印は、「標準速度」での移動経路を示している。点線の矢印は、Ｓ２２２による枠Ｆの移動を示している。Ｓ２２２では、プロセッサ１１０は、背景領域ＢＧＡ上での枠Ｆの移動表示を省略し、枠Ｆをオブジェクト領域上の位置（上記の移動先の位置）へ移動させる。点線の矢印は、枠Ｆが矢印に沿って順次に移動することを示しているのではなく、枠Ｆが矢印の起点から終点へジャンプすることを示している。
【００５３】
図１０に示すように、プロセッサ１１０は、オブジェクト領域上では、枠Ｆを、標準速度で移動させる。プロセッサ１１０は、背景領域ＢＧＡ上での枠Ｆの移動を、省略する。従って、ユーザは、枠Ｆが背景領域ＢＧＡを移動する時間を待たずに済むので、オブジェクト領域を含む領域を選択するためのユーザの負担を軽減できる。なお、枠の移動方法としては、図９、図１０で説明した方法に代えて、他の種々の方法を採用可能である。一般的には、プロセッサ１１０は、スキャン画像のうち、枠Ｆに囲まれる領域がオブジェクト領域と重ならない領域の少なくとも一部において、枠の移動を省略することが好ましい。
【００５４】
Ｃ．第３実施例：
図１１は、画像処理の別の実施例の手順の一部を示すフローチャートである。図１１の処理は、図３のＳ２１０〜Ｓ２４０の代わりに適用可能である（図１１のステップのうち、図３のステップと同じステップには、同じ符号が付されている）。図３の実施例との差異は、枠が背景領域ＢＧＡ上にある場合のＳ２２４と、枠が背景領域上にない場合のＳ２３４と、が追加されている点だけである。画像処理の他の部分は、図２、図３、図４の第１実施例と同じである。また、画像処理の実行に利用される装置のハードウェア構成は、図１の構成と同じである。以下、第１実施例と共通する部分の説明を省略する。
【００５５】
図１２は、スキャン画像ＩＭ１に対して移動する枠の概略図である。図中には、表示部１４０に表示されたスキャン画像ＩＭ１のうち、第１オブジェクト領域ＯＡ１を含む部分と、第３オブジェクト領域ＯＡ３を含む部分と、が示されている。図中の枠Ｆ、ＦＸ１は、枠の位置が第１位置Ｆ１から第４位置Ｆ４に移動する過程で表示される枠を示している。
【００５６】
図１１のＳ２１０の判断結果が「Ｙｅｓ」である場合、すなわち、枠が背景領域ＢＧＡ上にある場合、Ｓ２２０で移動速度が「高速度」に設定される。また、プロセッサ１１０は、Ｓ２２４で、枠のサイズと形状とを、標準のサイズと形状とに設定する。標準のサイズと形状とを有する枠Ｆは、図６で説明した第１実施例の枠Ｆと同じである（「標準枠Ｆ」と呼ぶ）。標準枠Ｆは、画像処理の初期枠としても、利用される。図１２に示すように、背景領域ＢＧＡ上では、図６の第１実施例と同様に、枠Ｆが第１方向Ｄ１に移動する。
【００５７】
Ｓ２１０の判断結果が「Ｎｏ」である場合、すなわち、枠がオブジェクト領域上にある場合、Ｓ２３０で移動速度が「標準速度」に設定される。また、プロセッサ１１０は、Ｓ２３４で、枠のサイズと形状とを、枠に重なるオブジェクト領域の全体を含むサイズと形状に、調整する。図１２の例では、第２位置Ｆ２で、枠Ｆが第１オブジェクト領域ＯＡ１上にあると判断される。すなわち、第２位置Ｆ２で、枠Ｆは、第１オブジェクト領域ＯＡ１に重なっている。そこで、プロセッサ１１０は、表示される枠を、標準枠Ｆから、第１オブジェクト領域ＯＡ１の全体を含む枠ＦＸ１に、変更する（「調整済枠ＦＸ１」と呼ぶ）。本実施例では、調整済枠ＦＸ１は、第１方向Ｄ１に平行な２辺と第２方向Ｄ２に平行な２辺とで構成される矩形状の枠であり、オブジェクト領域を包含する最小サイズの枠である。
【００５８】
本実施例では、プロセッサ１１０は、枠の移動を、枠に予め対応付けられた基準位置（ここでは、標準枠Ｆの中心位置）を移動させることによって実現する。例えば、図３のＳ２００では、プロセッサ１１０は、表示されている枠のサイズと形状とに拘わらずに、枠の基準位置を移動させる。そして、図１１のＳ２１０の判断結果は、枠の基準位置が背景領域ＢＧＡ内にあるか否かに応じて、決定される。図１２の例では、枠の基準位置が、第２位置Ｆ２位置から第１方向Ｄ１に移動して第３位置Ｆ３に到達するまでの間は、Ｓ２１０の判断結果は「Ｎｏ」である。第２位置Ｆ２と第３位置Ｆ３との間では、枠の基準位置は、第１オブジェクト領域ＯＡ１上にある。この間、プロセッサ１１０は、調整済枠ＦＸ１の表示を継続する。調整済枠ＦＸ１の表示が継続される時間は、仮に標準枠Ｆが標準速度で第２位置Ｆ２から第３位置Ｆ３へ移動する場合の標準枠Ｆの移動にかかる時間と同じである。このように、本実施例では、プロセッサ１１０は、枠の基準位置がオブジェクト領域上にある場合、そのオブジェクト領域の全体を含む枠を表示する。
【００５９】
枠の基準位置が第３位置Ｆ３に到達すると、Ｓ２１０（図１１）の判断結果は「Ｎｏ」から「Ｙｅｓ」に変更される。プロセッサ１１０は、Ｓ２２４で、表示される枠を、標準枠Ｆに変更する。以降、プロセッサ１１０は、上記の手順に従って、枠の基準位置の移動と、枠の調整とを、自動的に（すなわち、ユーザの指示を用いずに）実行する。例えば、枠の基準位置が第３オブジェクト領域ＯＡ３上にある場合、プロセッサ１１０は、第３オブジェクト領域ＯＡ３の全体を含む調整済枠ＦＸ３を表示する。
【００６０】
このように、本実施例では、プロセッサ１１０は、表示部１４０に表示される枠を、枠に重なるオブジェクト領域の全体を含む枠に調整する。従って、ユーザは、オブジェクト領域の全体を含む領域のトリミングを希望する場合に、枠のサイズを調整せずに済むので、ユーザの負担を軽減できる。また、図１２に示すように、調整前の枠Ｆが第３オブジェクト領域ＯＡ３に重なる場合の調整済枠ＦＸ３は、調整前の枠Ｆが第３オブジェクト領域ＯＡ３よりも小さい第１オブジェクト領域ＯＡ１に重なる場合の調整済枠ＦＸ１よりも、大きい。従って、オブジェクト領域の大きさに拘わらずに、ユーザは、オブジェクト領域の全体を含む枠を選択できる。
【００６１】
なお、Ｓ２２４、Ｓ２３４では、プロセッサ１１０は、枠の形状を変えずに、枠のサイズを調整してもよい。また、プロセッサ１１０は、同じ調整済枠（例えば、調整済枠ＦＸ１）が連続して表示される時間（「連続表示時間」と呼ぶ）を調整してもよい。例えば、連続表示時間の上限が、所定の時間閾値に制限されてもよい。こうすれば、スキャン画像が大きなオブジェクト領域を含む場合に、そのオブジェクト領域を含む調整済枠の連続表示時間が過剰に長くなることを抑制できる。例えば、プロセッサ１１０は、図３のＳ２００で、連続表示時間が時間閾値を超える場合に、枠の基準位置を、背景領域ＢＧＡ上の位置に移動させてもよい。ここで、移動先の位置としては、例えば、基準位置が現在の位置から所定の規則（ここでは、図６で説明した規則）に従って移動すると仮定した場合に、最初に背景領域ＢＧＡ上に到達する位置を採用可能である。例えば、図１２の例では、調整済枠ＦＸ１が表示された状態での移動先の位置として、第３位置Ｆ３を採用可能である。
【００６２】
Ｄ．第４実施例：
図１３は、画像処理の別の実施例の手順の一部を示すフローチャートである。図１３の処理は、図４のＳ３００、Ｓ３１０の代わりに適用可能である（図１３のステップのうち、図４のステップと同じステップには、同じ符号が付されている）。図４の実施例との差異は、Ｓ３００が省略され、Ｓ３０２、Ｓ３０４、Ｓ３０６が追加されている点だけである。図３の処理の後、Ｓ３０２、Ｓ３０４、Ｓ３０６、Ｓ３１０が、この順番に実行される。Ｓ３１０の判断結果が「Ｎｏ」である場合、処理は、Ｓ３０６に移行する。画像処理の他の部分は、図２、図３、図４の第１実施例と同じである。また、画像処理の実行に利用される装置のハードウェア構成は、図１の構成と同じである。以下、第１実施例と共通する部分の説明を省略する。
【００６３】
Ｓ３０２では、プロセッサ１１０は、スキャン画像のうち、図３のＳ２７０で停止した枠に重なるオブジェクト領域を解析する。Ｓ３０４では、プロセッサ１１０は、Ｓ３０２の解析結果に基づいて、位置とサイズとの少なくとも一方が互いに異なる複数の枠の候補を決定する（詳細は、後述）。Ｓ３０６、Ｓ３１０、Ｓ３２０では、プロセッサ１１０は、複数の枠の候補を表示部１４０に表示させ、ユーザによって選択された枠の候補をトリミング用の枠として決定する。Ｓ３０６では、プロセッサ１１０は、決定された複数の枠の候補から、表示部１４０に表示されている枠とは異なる枠を選択し、元の枠を消去し、そして、選択した枠を表示部１４０に表示させる。１回のＳ３０６では、枠が１回変更される。枠の変更は、ユーザによって枠が選択されるまで（ここでは、Ｓ３１０の判断結果が「Ｙｅｓ」になるまで）、繰り返される。なお、図示を省略するが、本実施例では、プロセッサ１１０は、Ｓ３０６で、ユーザに操作を案内するために、「枠の大きさが好みの大きさになったら、画面をタップしてください」というメッセージを表示部１４０に表示させる。
【００６４】
図１４は、複数の枠の候補の例の概略図である。図１４（Ａ）は、オブジェクト領域ＯＡ４の概要を示している。このオブジェクト領域ＯＡ４は、４行５列の表のオブジェクトを表している。以下、図３のＳ２７０で停止した枠Ｆが、このオブジェクト領域ＯＡ４に重なっている場合について説明する。
【００６５】
図１４（Ｂ）は、複数の枠の候補の例を示す概略図である。図１３のＳ３０２では、プロセッサ１１０は、オブジェクト領域ＯＡ４内の画像を解析することによって、オブジェクトの種類が表であると判断し、そして、表に含まれる複数のセルを特定する。プロセッサ１１０は、表を形成する複数のラインをハフ変換等の画像処理によって特定することによって、オブジェクトの種類が表であると判断可能であり、そして、複数のセルを特定可能である。そして、オブジェクトが表である場合には、Ｓ３０４で、プロセッサ１１０は、複数のセルに対応する複数の枠の候補を決定する。そして、Ｓ３０６で、プロセッサ１１０は、複数のセルを１つずつ辿るように、表示される枠Ｆｔを変更する。枠Ｆｔの形状は、１個のセルの輪郭と同じである。この構成によれば、ユーザは、表示されている枠が希望するセルの位置に到達した時にその枠を選択すればよいので、枠の位置を決定するためのユーザの負担を軽減できる。
【００６６】
図１４（Ｃ）は、複数の枠の候補の別の例を示す概略図である。図１４（Ｃ）は、図３のＳ２７０で停止した枠Ｆが図１４（Ａ）の枠Ｆである場合を示している。図中には、互いにサイズが異なる３個の枠Ｆｄ、Ｆｅ、Ｆｆが示されている。これらの枠Ｆｄ、Ｆｅ、Ｆｆは、いずれも、第１方向Ｄ１に平行な２辺と、第２方向Ｄ２に平行な２辺と、で構成されている。また、これらの枠Ｆｄ、Ｆｅ、Ｆｆは、いずれも、枠の４辺が複数のセルの境界を通るように、構成されている。これらの枠Ｆｄ、Ｆｅ、Ｆｆの間では、枠内に含まれるセルの総数が異なっている。オブジェクトの種類が表である場合、図１３のＳ３０４では、プロセッサ１１０は、枠内のセル数が互いに異なる複数の枠の候補Ｆｄ、Ｆｅ、Ｆｆを決定する。Ｓ３０６では、プロセッサ１１０は、例えば、Ｆｄ、Ｆｅ、Ｆｆの順番に枠が表示されるように、新たに表示する枠を選択する。この構成によれば、ユーザは、表示されている枠が希望するセルを包含する時にその枠を選択すればよいので、枠のサイズを決定するためのユーザの負担を軽減できる。
【００６７】
なお、プロセッサ１１０は、枠の位置とサイズとの両方を変更してもよい。この場合も、枠は、枠の４辺が複数のセルの境界を通るように、構成されることが好ましい。
【００６８】
図１５は、複数の枠の候補の別の例の概略図である。図中には、オブジェクト領域ＯＡ５が示されている。このオブジェクト領域ＯＡ５は、３つの段落Ｐ１、Ｐ２、Ｐ３で構成された文字列を表している。以下、図３のＳ２７０で停止した枠Ｆが、このオブジェクト領域ＯＡ５に重なっている場合について説明する。
【００６９】
図１３のＳ３０２では、プロセッサ１１０は、オブジェクト領域ＯＡ５内の画像を解析することによって、オブジェクトの種類が文字列であると判断し、そして、オブジェクトに含まれる複数の段落（ここでは、３個の段落Ｐ１、Ｐ２、Ｐ３）を特定する。一般に、段落間の隙間は、１つの段落に含まれる文字列間の隙間よりも、広い。そこで、プロセッサ１１０は、文字列間の隙間の広さを解析することによって、複数の文字列を、複数の段落に区分可能である。
【００７０】
図１５には、位置が異なる３個の枠Ｆｇ、Ｆｈ、Ｆｉが示されている。３個の枠Ｆｇ、Ｆｈ、Ｆｉは、３個の段落Ｐ１、Ｐ２、Ｐ３を、それぞれ囲っている。これらの枠Ｆｄ、Ｆｅ、Ｆｆは、いずれも、第１方向Ｄ１に平行な２辺と、第２方向Ｄ２に平行な２辺と、で構成されている。オブジェクトの種類が文字列である場合、図１３のＳ３０４では、プロセッサ１１０は、複数の段落Ｐ１、Ｐ２、Ｐ３に対応する複数の枠の候補Ｆｇ、Ｆｈ、Ｆｉを決定する。そして、Ｓ３０６で、プロセッサ１１０は、例えば、Ｆｇ、Ｆｈ、Ｆｉの順番に枠が表示されるように、新たに表示される枠を選択する。この構成によれば、ユーザは、表示されている枠が希望する段落を包含する時にその枠を選択すればよいので、枠の位置を決定するためのユーザの負担を軽減できる。
【００７１】
なお、枠の候補としては、１つの段落を囲む枠に加えて、複数の段落を囲む枠を採用してもよい。また、オブジェクト領域に含まれる段落の総数が１である場合には、プロセッサ１１０は、文字列を複数の文に区分し、１また複数の文を囲む枠を、枠の候補として決定してもよい。一般に、文末には、文末を示す記号（例えば、ピリオド）が配置される。プロセッサ１１０は、その記号を文字列から検索することによって、文字列を複数の文に区分可能である。また、オブジェクト領域に含まれる文の総数が１である場合には、プロセッサ１１０は、文を複数の文字に区分し、１または複数の文字を囲む枠を、枠の候補として決定してもよい。いずれの場合も、プロセッサ１１０は、枠に重なるオブジェクト領域の解析結果に基づいて、位置とサイズとの少なくとも一方が互いに異なる複数の枠の候補を決定することが好ましい。
【００７２】
Ｅ．変形例：
（１）図２のＳ１４０で、プロセッサ１１０は、スキャン画像の解析結果に応じて、枠の初期の位置を決定してもよい。例えば、スキャン画像の４つの辺のうち、オブジェクト領域との最短距離が最も短い辺の端部に接する位置が、初期の位置として採用されてもよい。また、スキャン画像中の最大面積のオブジェクト領域上の位置（例えば、オブジェクト領域の中心位置）が、初期の位置として採用されてもよい。また、Ｓ１６０で移動方向を決定する方法としては、上記の方法とは異なる種々の方法を採用可能である。例えば、スキャン画像の４つの辺のうち、オブジェクト領域との最短距離が最も短い辺に平行な方向を、移動方向として採用してもよい。また、プロセッサ１１０は、スキャン画像の解析結果に応じて、枠の初期のサイズ（例えば、標準枠Ｆのサイズ）を決定してもよい。例えば、枠の初期のサイズとして、スキャン画像に含まれる最小のオブジェクト領域を包含する最小サイズを採用してもよい。一般的には、プロセッサ１１０は、スキャン画像を解析することによって、スキャン画像中の複数のオブジェクトを表す複数のオブジェクト領域を決定し、決定された複数のオブジェクト領域に応じて、枠の初期位置と枠の初期の移動方向との少なくとも一方である初期情報を決定することが好ましい。この構成によれば、スキャン画像に適した枠の移動を実現できる
【００７３】
（２）図１１、図１２の実施例において、枠に重なるオブジェクト領域が大きい場合には、枠のサイズを調整しないこととしてもよい。例えば、スキャン画像の面積に対する、枠に重なるオブジェクト領域の面積の割合が、所定の閾値（例えば、０．８）を超える場合には、プロセッサ１１０は、枠のサイズを調整せずに、標準枠Ｆを表示してもよい。こうすれば、枠のサイズがスキャン画像のサイズとほぼ同じになり、枠の移動がわかりにくくなることを抑制できる。
【００７４】
（３）枠の移動速度を調整する方法としては、図３のＳ２１０、Ｓ２２０、Ｓ２３０で説明した方法に代えて、他の種々の方法を採用可能である。一般的には、ユーザは、オブジェクト領域の密度が高い領域では、オブジェクト領域の密度が低い領域と比べて、枠の位置を慎重に決定することを希望する。そこで、表示されている枠を含む領域におけるオブジェクト領域の密度が大きい場合に、その密度が小さい場合と比べて、移動速度を遅くする方法を採用してもよい。例えば、枠に対応付けられた基準領域（ここでは、標準枠Ｆに囲まれる領域）に重なるオブジェクト領域の数をオブジェクト数と呼ぶ。プロセッサ１１０は、オブジェクト数が比較的大きい場合には、オブジェクト数が比較的小さい場合よりも遅く、枠を移動させてもよい。基準領域としては、標準枠Ｆに囲まれる領域に限らず、枠に囲まれた領域の少なくとも一部を含む種々の領域を採用可能である。例えば、表示された枠に囲まれる領域を採用してもよい。
【００７５】
ここで、枠Ｆがオブジェクト領域上に位置することは、オブジェクト数がゼロを超えていることを示している。枠Ｆが背景領域ＢＧＡ（特に、オブジェクト領域から離れた領域）上に位置することは、オブジェクト数がゼロであることを示している。従って、図３のＳ２１０、Ｓ２２０、Ｓ２３０の処理は、以下のように言い換えることができる。プロセッサ１１０は、オブジェクト数がゼロを超える場合には（Ｓ２１０：Ｎｏ）、オブジェクト数がゼロである場合と比べて（Ｓ２１０：Ｙｅｓ）、枠Ｆの移動速度を遅くする（Ｓ２２０、Ｓ２３０）。
【００７６】
なお、移動速度は、２段階に限らず、３以上の段階で調整されてもよい。いずれの場合も、オブジェクト数が大きいほど、移動速度が遅いことが好ましい。
【００７７】
（４）図４のＳ３００、Ｓ３１０の実施例と、図１３の実施例とでは、複数の枠の候補は、１つずつ順番に表示部１４０に表示されている。複数の枠の候補を表示部１４０に表示させる方法としては、これに代えて、他の種々の方法を採用可能である。例えば、プロセッサ１１０は、複数の枠の候補の全てを同時に表示部１４０に表示させてもよい。いずれの場合も、プロセッサ１１０は、複数の枠の候補のうちユーザによって選択された枠の候補を、トリミングに用いる枠として決定すればよい。また、プロセッサ１１０は、トリミング枠の位置と大きさと形状との少なくとも１つの手動による微調整を、ユーザに許容してもよい。
【００７８】
（５）上記の各実施例では、プロセッサ１１０は、表示部１４０上で、スキャン画像を移動させずに、枠を移動させているが、これに代えて、枠を移動させずに、スキャン画像を移動させてもよく、枠とスキャン画像との両方を移動させてもよい。一般には、プロセッサ１１０は、表示部１４０上で、スキャン画像に対して枠を相対的に移動させればよい。
【００７９】
（６）図２のＳ１００（プレスキャン）を省略し、図４のＳ３４０（本スキャン）を、Ｓ１００の代わりに実行してもよい。この場合、プロセッサ１１０は、図２、図３、図４、図９、図１１、図１３の各ステップでは、本スキャンによって生成されたスキャンデータを用いて処理を進行すればよい。
【００８０】
（７）枠を移動させ、そして、枠に囲まれる領域を決定する画像処理の対象の画像である入力画像を表す画像データとしては、スキャナ部１９０によって生成されたスキャンデータに限らず、光学的に読み取られた画像を表す種々のデータを採用可能である。例えば、デジタルカメラによる撮影によって生成された画像データを採用してもよい。一般的には、光学的に対象物を読み取ることによって対象物を表す画像データを生成する読取装置によって生成された読取画像データを採用可能である。
【００８１】
（８）枠を移動させ、そして、枠に囲まれる領域を決定する画像処理としては、上記各実施例、各変形例で説明した処理に限らず、種々の処理を採用可能である。例えば、図２のＳ１４０、Ｓ１６０の少なくとも一方を省略してもよい。この場合、プロセッサ１１０は、初期の位置と移動方向としては、予め決められた位置と方向とを採用可能である。また、図３のＳ２１０、Ｓ２２０、Ｓ２３０を省略してもよい。この場合、プロセッサ１１０は、移動速度としては、予め決められた速度を採用すればよい。また、Ｓ２５０、Ｓ２６０を省略してもよい。すなわち、プロセッサ１１０は、ユーザによって操作部１５０が操作された場合に、選択位置に拘わらずに、枠の移動を停止してもよい。また、図４のＳ３００、Ｓ３１０を省略してもよい。この場合、プロセッサ１１０は、枠のサイズとしては、予め決められたサイズを採用すればよい。この代わりに、プロセッサ１１０は、枠を表示する前に複数のサイズの中からユーザによって選択されたサイズを採用してもよい。また、図１１のＳ２２０、Ｓ２２４を、図９のＳ２２２に置換してもよい。この場合、複数のオブジェクト領域を１つずつ辿るように、表示される枠が変更される。また、図１１のＳ２２０、Ｓ２３０を省略してもよい。この場合、プロセッサ１１０は、枠の基準位置が背景領域上にあるかに拘らずに、枠の基準位置を標準速度で移動させる。また、図１３の処理を、上記の他の実施例、または、変形例に、適用してもよい。また、プロセッサ１１０は、枠の移動方法が互いに異なる複数の処理モードを実現可能であり、そして、複数の処理モードからユーザによって選択された処理モードに従って枠を移動させることとしてもよい。
【００８２】
（９）枠内画像（すなわち、入力画像のうち枠に囲まれる領域の画像）を対象とする特定の画像処理としては、種々の処理を採用可能である。例えば、入力画像よりも高い解像度で読取装置（例えば、スキャナ部１９０）が原稿を読み取ることによって生成された高解像度画像データから、枠内画像を表す部分データを抽出する処理を採用してもよい。また、枠内画像を表す画像データを生成する処理を採用してもよい。また、枠内画像を印刷部に印刷させるための印刷データを生成する処理を採用してもよい。印刷データは、印刷部（インクジェット式やレーザ式等の印刷装置）によって解釈可能な形式で枠内画像を表す画像データである。また、枠内画像中の文字を認識する処理を採用してもよい。また、複数の処理を組み合わせた処理を採用してもよい。例えば、原稿のうちの枠内画像を表す部分を入力画像よりも高い解像度で読取装置に読み取らせる高解像度の読取処理と、その読取処理によって得られた読取画像データを用いて印刷データを生成する処理と、の組合せを採用してもよい。また、画像データを生成する場合には、生成した画像データを記憶装置に格納する処理を採用してもよい。また、印刷データを生成する場合には、生成した印刷データを画像処理装置に接続された印刷部に送信する処理を採用してもよい。
【００８３】
なお、枠内画像を表す画像データの生成方法としては、任意の方法を採用可能である。例えば、入力画像を表す画像データ（「入力データ」と呼ぶ）から枠内画像を表す部分を抽出し、抽出されたデータを用いて画像データを生成してもよい。また、入力データとは異なる別の画像データ（枠内画像を表すデータを含む）を用いて、枠内画像を表す画像データを生成してもよい。例えば、枠内画像を表す原稿を読取装置（例えば、スキャナ部１９０やデジタルカメラ）に読み取らせることによって上記の別の画像データとしての読取画像データを取得し、取得した読取画像データから枠内画像を表す部分を抽出し、抽出されたデータを用いて枠内画像を表す画像データを生成してもよい。一般的には、枠内画像を表すデータを含む画像データを用いて、枠内画像を表す画像データを生成可能である。
【００８４】
いずれの場合も、プロセッサ１１０は、入力画像のうちの特定の画像処理の対象として決定された部分を用いて特定の画像処理を実行する処理実行部として機能してもよい。例えば、プロセッサ１１０は、読取装置（例えば、スキャナ部１９０）に上記の高解像度の読取処理を実行させる読取処理部と、枠内画像を表す画像データを生成するデータ生成部と、枠内画像を表す印刷データを生成する印刷データ生成部と、枠内画像中の文字を認識する文字認識部と、のうちの少なくとも１つとして機能してもよい。また、プロセッサ１１０は、画像データを生成する場合には、生成した画像データを記憶装置に格納する格納処理部として機能してもよい。また、プロセッサ１１０は、印刷データを生成する場合には、生成した印刷データを画像処理装置に接続された印刷部に送信する印刷データ送信部として機能してもよい。ただし、特定の画像処理を実行する機能が、画像処理装置１００とは異なる他の装置によって実現されてもよい。この場合、プロセッサ１１０は、枠に囲まれる領域を特定する領域情報（例えば、枠の４個の頂点の位置を表す情報）を特定の画像処理を実行する装置に送信する領域情報送信部として機能してもよい。また、プロセッサ１１０は、枠内画像を表す画像データ生成し、生成した画像データを特定の画像処理を実行する装置に送信する画像データ送信部として機能してもよい。
【００８５】
（１０）枠を移動させ、そして、枠に囲まれる領域を特定の画像処理の対象として決定する画像処理を実行する装置としては、図１の画像処理装置１００に代えて、他の種々の装置を採用可能である。例えば、スキャナ部１９０と印刷部とを備える複合機、スマートフォンとも呼ばれる多機能携帯電話、デジタルカメラ、ネットワークに接続されたサーバ装置を採用してもよい。いずれの場合も、スキャナ部１９０（ひいては、読取装置）は、画像処理装置に接続された他の装置であってもよい。同様に、表示部１４０と操作部１５０とは、画像処理装置に接続された他の装置の表示部と操作部であってもよい。また、画像処理装置は、スキャナ部１９０に限らず、画像処理装置に接続された他の種々の装置（例えば、記憶装置、または、画像データを提供するサーバ装置）から、入力画像を表す画像データを取得してもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい（これらの装置を備えるシステムが画像処理装置に対応する）。
【００８６】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図１のプロセッサ１１０の機能を、論理回路を有する専用のハードウェア回路によって実現してもよい。
【００８７】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
【００８８】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００８９】
１００...画像処理装置、１１０...プロセッサ、１２０...揮発性記憶装置、１３０...不揮発性記憶装置、１３２...プログラム、１４０...表示部、１５０...操作部、１６０...装置インタフェース、１９０...スキャナ部、Ｄ１...第１方向、Ｄ２...第２方向、Ｆ、ＦＸ１、ＦＸ３、Ｆａ〜Ｆｉ...枠、ＯＴ１...第１オブジェクト（第１文字オブジェクト）、ＯＴ２...第２オブジェクト（第２文字オブジェクト）、ＯＰ...第３オブジェクト（写真オブジェクト）、ＢＧ...背景、ＯＡ１...第１オブジェクト領域（第１文字領域）、ＯＡ２...第２オブジェクト領域（第２文字領域）、ＯＡ３...第３オブジェクト領域（写真領域）、ＯＡ４...オブジェクト領域、ＯＡ５...オブジェクト領域、ＢＧＡ...背景領域、ＩＭ１...スキャン画像、ＩＭ２...部分画像
【図１】
2016063333.tif 000003
【図２】
2016063333.tif 000004
【図３】
2016063333.tif 000005
【図４】
2016063333.tif 000006
【図５】
2016063333.tif 000007
【図６】
2016063333.tif 000008
【図７】
2016063333.tif 000009
【図８】
2016063333.tif 000010
【図９】
2016063333.tif 000011
【図１０】
2016063333.tif 000012
【図１１】
2016063333.tif 000013
【図１２】
2016063333.tif 000014
【図１３】
2016063333.tif 000015
【図１４】
2016063333.tif 000016
【図１５】
2016063333.tif 000017