(57)【要約】【課題】カメラによる原稿撮影では、撮影環境に自由度が高いため、平らな原稿に対して原稿の折り加工特徴点があると誤判定することがある。そのため、折りのない原稿であっても、原稿の折り加工特徴点を含めた調整をユーザに要求してしまうことがあり、ユーザビリティが良くなかった。【解決手段】本発明の画像処理装置は、折り加工原稿を撮影することにより取得された画像から、コーナー点及び折り加工特徴点を抽出する手段と、前記コーナー点に基づく第一の歪み補正を前記画像に対して行い、第一の補正画像を取得する第一の補正手段と、前記第一の補正画像をユーザに提示し、折りを補正するための第二の歪み補正が必要か否かの指示を受信する手段とを有する。【選択図】図５
2015103916.tif 000002
【特許請求の範囲】
【請求項１】
折り加工原稿を撮影することにより取得された画像から、コーナー点及び折り加工特徴点を抽出する手段と、
前記コーナー点に基づく第一の歪み補正を前記画像に対して行い、第一の補正画像を取得する第一の補正手段と、
前記第一の補正画像をユーザに提示し、折りを補正するための第二の歪み補正が必要か否かの指示を受信する手段と
を有することを特徴とする画像処理装置。
【請求項２】
第二の歪み補正が必要である指示が受信された場合に、前記コーナー点及び前記折り加工特徴点に基づく第二の歪み補正を前記画像に対して行い、第二の補正画像を取得する第二の補正手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記折り加工特徴点を用いて折り位置で前記画像を分割し、分割した面ごとに前記第二の歪み補正を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
第二の歪み補正が必要である指示が受信された場合に、前記画像における位置調整された折り加工特徴点を取得する位置調整手段をさらに有し、
前記第二の補正手段は、前記画像における位置調整された折り加工特徴点に基づいて前記第二の歪み補正を行うことを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記位置調整手段は、前記第一の補正画像における前記折り加工特徴点の対応点の位置調整情報を受信し、受信した前記対応点の位置調整情報に基づいて、前記画像における前記位置調整された折り加工特徴点を取得することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第二の補正画像をユーザに提示し、前記コーナー点及び新たに位置調整される折り加工特徴点に基づく歪み補正が必要か否かの指示を受信する手段をさらに有することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第一の補正手段は、前記コーナー点に基づき、歪み補正を行う第一の射影変換係数を算出し、前記第一の射影変換係数を用いて射影変換を行うことにより、前記第一の補正画像を取得することを特徴とする請求項１から６のいずれかに記載の画像処理装置。
【請求項８】
前記第一の補正手段は、前記コーナー点に基づき、歪み補正を行う第一の射影変換係数を算出し、前記第一の射影変換係数を用いて射影変換を行うことにより、前記第一の補正画像を取得し、
前記位置調整手段は、前記第一の補正画像における前記折り加工特徴点の対応点の位置調整情報に基づいて、位置調整された対応点を取得し、前記位置調整された対応点から、前記第一の射影変換係数を用いて前記画像における前記位置調整された折り加工特徴点を取得することを特徴とする請求項５に記載の画像処理装置。
【請求項９】
前記射影変換がマージン領域付の射影変換となるように、前記第一の射影変換係数が算出されることを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
前記第二の補正手段は、前記コーナー点及び前記折り加工特徴点に基づき、歪み補正を行う第二の射影変換係数を算出し、前記第二の射影変換係数を用いて射影変換を行うことにより、前記第二の補正画像を取得することを特徴とする請求項２から９のいずれかに記載の画像処理装置。
【請求項１１】
前記抽出したコーナー点を前記画像と共にユーザに提示し、前記コーナー点の位置調整情報を受信し、受信したコーナー点の位置調整情報に基づいて位置調整されたコーナー点を取得する手段をさらに有し、
前記第一の補正手段は、前記位置調整されたコーナー点に基づいて前記第一の歪み補正を行うことを特徴とする請求項１から１０のいずれかに記載の画像処理装置。
【請求項１２】
折り加工原稿を撮影することにより取得された画像から、コーナー点及び折り加工特徴点を抽出するステップと、
前記コーナー点に基づく第一の歪み補正を前記画像に対して行い、第一の補正画像を取得するステップと、
前記第一の補正画像をユーザに提示し、折りを補正するための第二の歪み補正が必要か否かの指示を受信するステップと
を含むことを特徴とする画像処理方法。
【請求項１３】
コンピュータを請求項１から１１のいずれかに記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、折り加工原稿の歪み補正をより使い易く利用することを可能にする画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年、情報処理装置、特にスマートフォンやタブレット、ノートＰＣといった高度な情報処理機能と通信機能を持つ携帯端末が普及してきている。これらの携帯端末では、カメラを備え、撮影機能（カメラ機能）を有しているのが一般的になっている。そして、このような携帯端末のカメラ機能を用いて、紙媒体の原稿を撮影し、携帯端末のメモリ上に画像データとして保存して利用する機会が増えてきている。
【０００３】
このようなカメラ撮影による紙原稿の保存では、従来のスキャナによる画像取得と異なり、基本的に正面からの撮影ではなかったり、紙が抑えつけられておらず浮かんでいたりする。そのため、原稿が歪んだ画像になる。また、原稿枠外の不要領域まで撮影範囲に含めてしまう。
【０００４】
そこで、携帯端末等で手軽に原稿範囲のみ抽出して歪み補正できるように、原稿枠による歪み補正とトリミング処理を同時に行う機能を有するアプリケーションソフトが多く提供されている。
【０００５】
また、折り加工された原稿（二つ折り、外三つ折り、内三つ折り…等）を開いてカメラの撮影対象とする場合、平らな状態であれば折りのない原稿と変わらないが、紙全体が抑えつけられていない状態では、折り位置で面の歪み方が変わることが多い。このような場合、原稿全体の枠の外郭４点を用いて射影変換による歪み補正を行うと、４点が平面上に存在する関係からの誤差が大きくなり、歪み補正が不十分になる。それぞれの面で分割して枠の４点を抽出し、歪み補正を実施することで精度良く歪みを補正することができる。このような面ごとに分割して歪み補正を行うものとしては、例えば、特許文献１がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２２８７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述したように原稿をカメラ撮影するユースケースでは、撮影環境に自由度が高いため、折り加工原稿を想定に含めて自動で歪み補正を行おうとすると、平らな原稿であっても、光源の影響などで折り位置があると誤判定することがある。前述したアプリケーションソフトのように、自動抽出した特徴点を手動で位置調整してもよいが、折り加工原稿と誤判定をしてしまうと調整できる特徴点が増え、手動調整による制御が難しくなるという課題が発生してしまう。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、折り加工原稿を撮影することにより取得された画像から、コーナー点及び折り加工特徴点を抽出する手段と、前記コーナー点に基づく第一の歪み補正を前記画像に対して行い、第一の補正画像を取得する第一の補正手段と、前記第一の補正画像をユーザに提示し、折りを補正するための第二の歪み補正が必要か否かの指示を受信する手段とを有することを特徴とする。
【発明の効果】
【０００９】
折り加工原稿など面分割して歪み補正を行う方が良い場合に、手戻り感なく、容易に追加で歪み補正精度を高める処理を行うことができる。また、平らな原稿における誤判定でユーザ手番が煩雑にならないことを考慮した折り加工原稿に対する歪み補正制御フローとすることで、ユーザビリティの良い歪み補正・トリミング補正システムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】携帯端末１０１の外観の例を示す図である。
【図２】携帯端末１０１による原稿撮影形態の例を示す図である。
【図３】携帯端末１０１のシステム構成図の例を示す図である。
【図４】画像処理部３０９の構成図の例を示す図である。
【図５】射影変換の制御を示すフローチャート例を示す図である。
【図６】第一の射影変換前の原稿のコーナー点の調整画面を示す図である。
【図７】マッピング先情報の設定画面を示す図である。
【図８】原稿のコーナー点による第一の射影変換を示す図である。
【図９】マッピング先情報の設定画面を示す図である。
【図１０】第二の射影変換前の原稿の折り加工特徴点の調整画面を示す図である。
【図１１】マージン領域付の射影変換における特徴点座標の対応関係例を示す図である。
【図１２】原稿の折り加工特徴点のカウントエリアを示す図である。
【図１３】原稿の折り加工特徴点を用いた面分割と第二の射影変換を示す図である。
【図１４】原稿の折り加工特徴点を用いた面分割と第三の射影変換を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。  
［実施形態１］
本実施形態では、原稿枠から外郭の４点と、折り位置の可能性がある点を含む特徴点を抽出し記憶する。そして、原稿枠の外郭４点で第一の歪み補正・トリミング処理を行う。その後、折り加工原稿のため歪み補正が不十分とユーザが判断したとき、記憶していた折り位置の可能性がある特徴点を第一の歪み補正・トリミング処理後画像上に表示する。そして、折り位置の特徴点位置を微調整して確定し、第一の歪み補正・トリミング前の状態を逆算して面分割して、第二の歪み補正・トリミング処理を実施する。
【００１２】
このように、平らな原稿を折り加工原稿と誤判定して、無駄に手動調整する特徴点を増やすことなく、それでいて、折り加工原稿のときに、容易に追加で歪み補正精度を高める処理を行うことができる画像処理装置について、以下で説明する。
【００１３】
＜携帯端末の外観＞
図１は、本実施形態で利用する携帯端末１０１の外観例を示す図である。携帯端末１０１は様々な種類が存在し、これに限るものではない。図１（ａ）には、携帯端末１０１の表面が示されている。表面には、タッチ操作が可能な表示部１０２及び操作ボタン１０３が配置されている。図１（ｂ）には、携帯端末１０１の裏面が示されている。裏面には、カメラ１０４が配置されている。
【００１４】
なお、本実施形態は、携帯端末によらずカメラ機能を持つ装置で撮影された原稿画像に対して、歪み補正及びトリミング処理を行う装置で利用が可能である。スマートフォンや携帯電話、ノートＰＣ、デスクトップＰＣ、デジタルカメラのいずれの構成で動作するシステムであっても構わない。
【００１５】
＜携帯端末による原稿撮影システムの撮影形態例＞
図２は、携帯端末１０１による原稿撮影システムの撮影形態例を示す図である。図２（ａ）には、携帯端末１０１を手に持ち、カメラ１０４で原稿２０１を上方から撮影している例が示されている。なお、実際には、カメラ１０４は前後への傾きも持つことが多い。図２（ｂ）には、携帯端末１０１を台２０２に立て掛け、カメラ１０４で原稿２０１を撮影している例が示されている。
【００１６】
なお、これらの利用例は一例であり、黒板やホワイトボード、掲示板にカメラを向けて撮影する場合などもあり、これに限定されるものではない。
【００１７】
＜システム全体構成＞
図３は、携帯端末１０１のシステム全体構成例を示す図である。本実施形態に適用可能な画像処理装置のシステム全体構成は、これに限るものではない。例えば、クラウドサーバでもよい。図３において、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３がデータバス３１０を介してプログラムやデータを送受信する。また、データバス３１０には、記憶部３０４、無線ＬＡＮ送・受信部３０５、表示部３０６、撮影部３０７、操作部３０８、画像処理部３０９が接続されている。記憶部３０４は、画像データや各種プログラムを格納することができる。無線ＬＡＮ送・受信部３０５は、不図示の無線ルータとデータ送受信が可能である。表示部３０６は表示部１０２にＵＩを表示する。撮影部３０７は、カメラ１０４で原稿２０１を撮影する。操作部３０８は、タッチ操作可能な表示部１０２と操作ボタン１０３を介してユーザの指示を受ける。画像処理部３０９は、歪み補正やトリミング処理など画像処理を行う。なお、ＣＰＵ３０１がＲＯＭ３０３に保持するプログラムに基づき、これらの携帯端末１０１内の構成要素の制御を行う。
【００１８】
＜画像処理部の構成＞
図４は、画像処理部３０９の構成例を示す図である。画像処理部３０９は、射影変換係数算出部４０１、射影変換部４０２、解像度変換部４０３、輪郭抽出部４０４、特徴点抽出部４０５及び折り加工特徴点生成部４０６を含む。これらの処理部は、データバス３１０を介してプログラムやデータを送受信する。
【００１９】
射影変換係数算出部４０１は、射影変換前後の４点の座標データに基づいて射影変換係数を算出することができる。
【００２０】
射影変換部４０２は、射影変換係数算出部４０１で算出された射影変換係数を用いて、行列変換を行い射影変換画像を求めることができる。
【００２１】
解像度変換部４０３は、入出力の解像度やサイズ、倍率の指定を行い任意の解像度変換を行う。
【００２２】
輪郭抽出部４０４は、カメラ１０４で撮影された原稿２０１の輪郭抽出を行うことができる。
【００２３】
特徴点抽出部４０５は、輪郭抽出部４０４で抽出された輪郭情報から原稿枠の４つ角と、折り加工原稿において折り位置となる特徴点をそれぞれ分けて抽出することができる。
【００２４】
折り加工特徴点生成部４０６は、特徴点抽出部４０５で抽出された特徴点だけでは特徴点が不足する場合に、折り位置となる特徴点を追加生成することができる。例えば、撮影位置によっては、輪郭情報からは原稿枠の片側の折り位置しか特徴点を抽出できない場合がある。そのような場合に、向かいの位置に輪郭点の生成を行うことができる。
【００２５】
＜射影変換フロー＞
図５は、本実施形態における射影変換フローの一例を示す図である。本フローは、ＲＯＭ３０３に格納されたプログラムに基づいて、ＣＰＵ３０１が実行するものとする。なお、画像処理時に利用するバッファには、ＲＡＭ３０２を利用する。また、本フローによる画像処理後の出力データは、記憶部３０４に保存する、または無線ＬＡＮ送・受信部３０５を介して、不図示のプリンタやサーバー等に送信するものとする。
【００２６】
ステップＳ５０１において、撮影部３０７で原稿２０１を撮影することにより撮影画像を取得し、または記憶部３０４に格納されている原稿２０１を撮影した画像を読み込むことにより撮影画像を取得する。なお、撮影画像の解像度が高い場合は、解像度変換部４０３で撮影画像を低解像度に変換した後、ステップＳ５０２に進んでもよい。撮影画像の低解像度への変換によって、データ量が削減され、画像処理の効率化を図ることができる。
【００２７】
ステップＳ５０２において、撮影画像から輪郭抽出部４０４で原稿の輪郭情報を抽出する。原稿の輪郭情報を抽出する方法として、例えば、キャニーのエッジ検出アルゴリズムなどを用いることができる。
【００２８】
ステップＳ５０３において、ステップＳ５０２で抽出した輪郭情報から特徴点抽出部４０５で四隅の原稿枠点（角）や原稿枠点（折り）（ＯＰ１、ＯＰ２）を自動検出する。また、これらの特徴点情報をＲＡＭ３０２に格納する。以下、四隅の原稿枠点（角）を原稿のコーナー点と呼び、原稿枠点（折り）を原稿の折り加工特徴点と呼ぶ。また、自動検出した原稿のコーナー点はステップＳ５０１で取得した撮影画像とともに、表示部１０２への表示を行う。
【００２９】
なお、本実施形態はステップＳ５０２の輪郭情報を抽出する例を示すが、ステップＳ５０２を行わずにステップＳ５０３に進めても良い。すなわち、ステップＳ５０１で取得した撮影画像から原稿のコーナー点及び折り加工特徴点を検出しても良い。
【００３０】
ステップＳ５０４において、ステップ５０３でコーナー点が自動検出できなかった場合や、コーナー点の自動検出精度が不十分な場合に、ユーザが手動でコーナー点の座標を指定または調整する。より具体的に、ユーザは、タッチ操作が可能な表示部１０２を通して、表示部１０２上に表示の撮影画像に基づいてコーナー点の座標を指定または調整する。操作部３０８は、コーナー点の座標情報に関するユーザからの指示を受け、指定または調整済のコーナー点Ｐ１〜Ｐ４を決定する。なお、本ステップでは、手動によるコーナー点の座標指定または座標調整を行うこととするが、折り加工特徴点については、手動による座標調整を行わないものとする。これは、ステップＳ５０３で原稿の折り加工特徴点が誤判定で検出されている場合や、折り加工原稿であっても歪み補正の要求精度が低い場合は、折り加工特徴点に手動調整の自由度を与えると、調整の複雑度が増してユーザビリティが悪くなるためである。
【００３１】
図６は、ステップＳ５０４における表示部１０２の状態を示している。プレビューウィンドウ６０１は、ステップＳ５０１で取得した撮影画像であるプレビュー画像と、ステップＳ５０４で決定したコーナー点Ｐ１〜Ｐ４とを表示する。マッピング先設定ボタン６０２は、ここからコーナー点の射影変換後のマッピング先の情報を設定することができる。
【００３２】
ステップＳ５０５において、ユーザは、マッピング先設定ボタン６０２を押下し、ステップＳ５０４で決定したコーナー点の射影変換後のマッピング先の情報を設定する。
【００３３】
図７は、マッピング先設定ボタン６０２を押下して表示されるマッピング先設定ウィンドウ７０１である。
【００３４】
出力サイズ７０２は、リスト（Ａ０・・・Ａ４・・・，Ｂ０・・・Ｂ４・・・等）から出力サイズを選択することができる。選択された出力サイズは、原稿のコーナー点Ｐ１〜Ｐ４の基本対応点の決定に用いられる。なお、出力サイズは不図示の登録ボタンにより、不定形の任意サイズをリストに追加することもできる。
【００３５】
チェックボックス７０３は、出力サイズの中に、マージン領域を含むかどうかを指定することができる。また、マージン領域のサイズは不図示の設定により、例えば、ユーザの好みに応じて出力サイズの１０％等と設定されるものとすることができる。
【００３６】
折り加工タイプ７０４は、リスト（なし、二つ折り（縦）、三つ折り（縦）・・・、二つ折り（横）、三つ折り（横）・・・等）から、原稿の折り加工タイプを選択することができる。本実施形態では、原稿のコーナー点を一度確定した後、原稿の折り加工特徴点を調整する制御フローを持つので、ステップＳ５０５において折り加工タイプ７０４を「なし」に設定する。
【００３７】
イラスト説明エリア７０５は、イラストによる機能説明エリアで、７０２〜７０４の設定に応じて変化する。また、ＯＫボタン７０６を押下することでマッピング先設定ウィンドウ７０１内の設定を確定しウィンドウを閉じることができる。キャンセルボタン７０７を押下することで設定を反映させずにウィンドウを閉じることができる。
【００３８】
次に、ステップＳ５０６において、射影変換係数算出部４０１が、ステップＳ５０４で決定した原稿のコーナー点Ｐ１〜Ｐ４の座標情報と、ステップＳ５０５で決定したマッピング先設定とに基づき、第一の射影変換係数の算出を行う。より具体的に、ステップＳ５０５で決定したマッピング先設定に基づき、図１１に示すような、第一の射影変換画像を入れるための出力キャンパスを用意し、また、出力キャンパスにおけるコーナー点のマッピング先Ｐ１′〜Ｐ４′を決定する。そして、コーナー点Ｐ１〜Ｐ４の座標情報と決定したマッピング先Ｐ１′〜Ｐ４′の座標情報とを射影変換前後の４点の座標データとし、第一の射影変換係数を算出する。
【００３９】
なお、出力キャンパスは、原稿の折り加工特徴点の座標調整が可能なようにマージン領域を持つ。本実施形態では、第三の射影変換（最終的な射影変換）による出力が確定するまでは、原稿のコーナー点でトリミング処理せずに、マージン領域を持ってトリミング処理を実施している。これにより、途中処理の射影変換で原稿の折り加工特徴点が消失するのを防止し、射影変換後に折り加工特徴点の座標調整ができるようにしている。なお、ここでのマージン領域は、マージン領域を含むかどうかを指定するチェックボックス７０３の設定にかかわらず、途中処理に必要なものとする。言い換えれば、本実施形態の第一の射影変換及び第二の射影変換は、マージン領域付の射影変換とする。
【００４０】
ステップＳ５０７において、射影変換部４０２がステップＳ５０６で算出された第一の射影変換係数を利用して、第一の射影変換画像（第一の補正画像）を生成する。より具体的に、ステップＳ５０６で算出された第一の射影変換係数を利用して、出力キャンパスの各座標に対応する撮影画像の座標を求める。そして、対応する撮影画像の座標における画素値を、出力キャンパスに割り当てることにより、第一の射影変換画像を生成する。また、射影変換部４０２が、ステップＳ５０３で自動検出した非表示状態にある原稿の折り加工特徴点ＯＰ１、ＯＰ２の座標情報に対して第一の射影変換を行う。それによって、第一の射影変換を実施した折り加工特徴点ＯＰ１′、ＯＰ２′を取得し、それらの座標情報をＲＡＭ３０２に格納する。ステップＳ５０６及びＳ５０７の詳細は、＜第一の射影変換＞で後述するものとする。
【００４１】
ステップＳ５０８において、プレビューウィンドウ６０１に表示するプレビュー画像をステップＳ５０７で生成した第一の射影変換画像に更新する。なお、マージン領域は、不図示のボタンによって表示・非表示・半透明化等を切り替えられるようにしても良いものとする。
【００４２】
ステップＳ５０９において、ユーザが歪み補正結果の判断を行う。具体的には、ユーザは、プレビューウィンドウ６０１に表示されている第一の射影変換画像を確認し、不満がなければ、図８に示す確定ボタン８０３を押下し、処理はステップＳ５１５に進む。折り加工原稿を撮影しており、歪み補正が不十分と判断した場合に、ユーザが、図８に示す折り加工補正ボタン８０１を押下し、処理はステップＳ５１０に進む。
【００４３】
ステップＳ５１０において、図８に示す折り加工補正ボタン８０１をユーザが押下したことを受けた操作部３０８が、ステップＳ５０７で第一の射影変換を実施した折り加工特徴点ＯＰ１′、ＯＰ２′を、非表示状態から表示状態に変更する。このとき、対応する折り加工特徴点の間を補助線８０４で結ぶことで、座標調整時に折り位置と合わせ込みやすくしている。
【００４４】
また、折り位置を指定する原稿の折り加工特徴点は、２点の組み合わせになっていることが好ましい。原稿の折り加工特徴点が奇数個だった場合は、折り加工特徴点生成部４０６が、ステップＳ５０３で自動検出した原稿の折り加工特徴点の位置、数に基づいて折り加工特徴点を追加設置する。詳細は、＜折り加工補正（特徴点表示）＞で後述するものとする。なお、原稿の折り加工特徴点が存在しない場合は、図６のように折り加工補正ボタン８０１を非表示としても良い。
【００４５】
なお、第一の射影変換を実施した折り加工特徴点の座標は、コーナー点のマッピング先Ｐ１′〜Ｐ４′を結ぶ長方形エリアの外になる場合があるが、本実施形態ではマージン領域を持って射影変換を実施しているため、長方形エリア外でも対応することができる。つまり、第一の射影変換を実施した折り加工特徴点ＯＰ１′、ＯＰ２′は、長方形エリア外でもプレビューウィンドウ６０１に表示されている。
【００４６】
ステップＳ５１１において、ステップＳ５１０で表示している、第一の射影変換を実施した原稿マッピング先設定の折り加工タイプ７０４をユーザが変更する。図９は、折り加工タイプ７０４が二つ折り（縦）となったときのマッピング先設定７０１を示している。折り加工タイプ７０４の設定に基づいて折り位置が決定され、決定された折り位置は折り加工特徴点のマッピング先の決定に用いられる。なお、折り位置は、イラスト説明エリア７０５に表示されているイラストの折り線をタッチ操作することで調整可能としても良い。
【００４７】
また、折り加工タイプ７０４の設定は、ステップＳ５１０の表示によらずに、例えば予め知っている原稿の折り加工タイプに変更してもよい。この場合、ステップＳ５０３で自動検出した原稿の折り加工特徴点の数が折り加工タイプ７０４の設定に対して不足すれば、折り加工特徴点生成部４０６が折り加工タイプ７０４の設定に応じて折り加工特徴点を追加設置する。なお、自動検出した折り加工特徴点と、折り加工タイプ７０４の設定に応じて追加設置した折り加工特徴点とは区別できるように情報を保持することが好ましい。それによって、自動検出した折り加工特徴点と追加設置した折り加工特徴点とを区別できる形でユーザに提示することができる。
【００４８】
ステップＳ５１２において、ステップＳ５１０で表示状態となった、第一の射影変換を実施した原稿の折り加工特徴点に対して、ユーザが手動で位置調整を行う。より具体的に、ユーザは、タッチ操作可能な表示部１０２を通して、第一の射影変換を実施した折り加工特徴点ＯＰ１′、ＯＰ２′に対して位置調整を行う。ユーザは、第一の射影変換画像における折り位置に合わせて位置調整を行うことができる。そして、操作部３０８は、位置調整に関するユーザからの指示を受け（位置調整情報を受信し）、位置調整済の点ＯＰ１″、ＯＰ２″を決定する。図１０は、点ＯＰ１′、ＯＰ２′を点ＯＰ１″、ＯＰ２″に調整している様子を示している。
【００４９】
また、位置調整済の点ＯＰ１″、ＯＰ２″に対して、射影変換部４０２が、ステップＳ５０６で算出された第一の射影変換係数を利用して射影変換を行い、撮影画像における原稿の折り加工特徴点ＯＰ１'''、ＯＰ２'''の座標を算出する。算出したＯＰ１'''、ＯＰ２'''の座標情報をＲＡＭ３０２に格納する。算出した折り加工特徴点ＯＰ１'''、ＯＰ２'''は、ステップＳ５０３で自動検出した折り加工特徴点ＯＰ１、ＯＰ２に対して位置調整を行ったものとされる。
【００５０】
ステップＳ５１３において、射影変換係数算出部４０１が、複数の第二の射影変換係数を算出する。射影変換係数算出部４０１は、ステップＳ５０４で決定したコーナー点と、ステップＳ５１２で算出した折り加工特徴点の座標情報と、ステップＳ５１１で決定したマッピング先設定とに基づき、複数の第二の射影変換係数を算出する。より具体的に、図１３に示すように、ステップＳ５１１で決定したマッピング先設定に基づき、出力キャンパスにおけるコーナー点のマッピング先Ｐ１′〜Ｐ４′及び折り加工特徴点のマッピング先ＯＰ１＿Ｍ、ＯＰ２＿Ｍを決定する。そして、コーナー点Ｐ１〜Ｐ４及び折り加工特徴点ＯＰ１'''、ＯＰ２'''の座標情報と、決定したコーナー点のマッピング先及び折り加工特徴点のマッピング先の座標情報とを射影変換前後の座標データとし、複数の第二の射影変換係数を算出する。
【００５１】
ステップＳ５１４において、射影変換部４０２がステップＳ５１３で算出した複数の第二の射影変換係数を利用して、第二の射影変換画像（第二の補正画像）を生成する。ステップＳ５０６及びＳ５０７の詳細は、＜第二の射影変換＞で後述するものとする。
【００５２】
そしてステップＳ５０８に戻り、表示の更新、ステップＳ５０９の歪み補正結果の判断と繰り返していく。より具体的に、ステップＳ５０８で、プレビューウィンドウ６０１に表示するプレビュー画像をステップＳ５１４で生成した第二の射影変換画像に更新する。ステップＳ５０９で、ユーザが歪み補正結果の判断を行い、不満がなければ、図８に示す確定ボタン８０３を押下し、処理はステップＳ５１５に進む。歪み補正が不十分と判断した場合に、ユーザが、図８に示す戻るボタン８０２を押下し、処理はステップＳ５１０に進む。ステップＳ５１０で、プレビューウィンドウ６０１に表示するプレビュー画像を第二の射影変換画像から第一の射影変換画像に戻す。より具体的に、前回ステップＳ５１２で折り加工特徴点ＯＰ１′、ＯＰ２′が点ＯＰ１″、ＯＰ２″に調整された後の画面に戻す。そして、次のステップＳ５１１〜ステップＳ５１４の処理と繰り返していく。
【００５３】
ステップＳ５１５において、射影変換係数算出部４０１が、ステップＳ５０９で歪み補正結果の判断が行われた段階で、最終的な出力結果を得るための第三の射影変換係数の算出を行う。第一・第二の射影変換では、原稿の折り加工特徴点の座標調整が可能なようにマージン領域を持つように射影変換係数を求めていた。最終出力では、チェックボックス７０３の状態に応じて、マージン領域を含めるか否かを変えて射影変換係数を求める。
【００５４】
ステップＳ５１６において、射影変換部４０２がステップＳ５１５で求めた射影変換係数を利用して、第三の射影変換画像（最終的な出力画像結果）を生成する。ステップＳ５１５，Ｓ５１６の詳細は、＜第三の射影変換＞で後述するものとする。
【００５５】
次に、上述してきた図５の射影変換フローの説明で、詳細説明を後述するとした部分について説明していくこととする。
【００５６】
＜第一の射影変換＞
ここでは、ステップＳ５０６の第一の射影変換係数算出、ステップＳ５０７の第一の射影変換について、詳細を説明する。
【００５７】
図８は、撮影画像における原稿のコーナー点Ｐ１〜Ｐ４を、マッピング先Ｐ１′〜Ｐ４′に射影変換して歪み補正している様子を示している。ここでは、ステップＳ５０１で折り加工原稿の撮影画像を取得し、ステップＳ５０３で特徴点として原稿のコーナー点及び原稿の折り加工特徴点ＯＰ１、ＯＰ２を抽出する。ステップＳ５０４でユーザが抽出された原稿のコーナー点に対して位置調整を行い、調整済のコーナー点Ｐ１〜Ｐ４を取得する。ステップＳ５０５でマッピング設定情報に基づいてコーナー点Ｐ１〜Ｐ４のマッピング先Ｐ１′〜Ｐ４′を決定する。そして、ステップＳ５０６でコーナー点Ｐ１〜Ｐ４の座標情報と決定したマッピング先Ｐ１′〜Ｐ４′の座標情報とを射影変換前後の４点の座標データとし、第一の射影変換係数を算出する。ステップＳ５０７で、算出された第一の射影変換係数を用いて、第一の射影変換を行う。このような第一の射影変換は、図８に示すように、折り加工原稿の外郭の４つ角について歪み補正を行ったが、原稿枠や折り位置は、点線で示されるように歪みを残している。
【００５８】
まず、ステップＳ５０６の第一の射影変換係数の算出を詳細に説明する。  
第一の射影変換前後の４点の座標データ（同次座標）は下記の通りである。  
変換前（Ｐ）          →変換後（Ｐ′）
Ｐ１（ｘ１，ｙ１，１）→Ｐ１′（ｘ１′，ｙ１′，１）
Ｐ２（ｘ２，ｙ２，１）→Ｐ２′（ｘ２′，ｙ２′，１）
Ｐ３（ｘ３，ｙ３，１）→Ｐ３′（ｘ３′，ｙ３′，１）
Ｐ４（ｘ４，ｙ４，１）→Ｐ４′（ｘ４′，ｙ４′，１）
【００５９】
なお、本実施形態では、射影変換で原稿のコーナー点の外側が完全にトリミングされてしまわないように、出力キャンパスにおいてマージン領域を確保した状態でマッピング先のＰ′の座標を設定して第一の射影変換係数の計算を行うこととする。  
射影変換に用いられる式は下記の通りである。  
ｓＰ′＝Ｈ・Ｐ              式（１）
【００６０】
ここで、ｓはスケールであり、Ｐは変換前の座標であり、Ｐ′は変換後の座標であり、Ｈはホモグラフィ行列であって以下の式で表す。
【００６１】
【数１】
2015103916.tif 000003
【００６２】
式（２）を式（１）に代入すると、以下のようになる。
【００６３】
【数２】
2015103916.tif 000004
【００６４】
ここで、行列Ｈは、ｈ３３＝１に正規化したホモグラフィ行列にしている。
【００６５】
途中式を省略するが、式（３）を整理していくと、以下のようになる。
【００６６】
【数３】
2015103916.tif 000005
【００６７】
式（４）に、４組の対応点の座標情報を入れて、連立方程式を解くと、射影変換に必要なＨの係数が求まる。４組の対応点の情報を入れた状態が下記の通りである。
【００６８】
【数４】
2015103916.tif 000006
【００６９】
式（５）を各行列でまとめると、Ａ・Ｈ＝Ｂであり、Ｈが未知数となる。Ａの逆行列を両辺にかけて、Ｈ＝Ａ−１・ＢとすることでＨを求めることができる。
【００７０】
次に、ステップＳ５０７の第一の射影変換を詳細に説明する。
【００７１】
ここまで、Ｐ→Ｐ′変換の射影変換係数Ｈを求めてきたが、逆変換であるＰ′→Ｐ変換も射影変換の関係にある。つまり、ＰとＰ′の座標を入れ替えてＨを求めれば、出力画像の座標に対応する入力画像の座標を求めることができる。
【００７２】
本実施形態の射影変換では、計算上はＰ′→Ｐ変換を行うことにより出力座標から入力座標を求める。ステップＳ５０６で求まった行列Ｈを第一の射影変換係数Ｈ１としている。そして、第一の射影変換係数Ｈ１を利用して第一の射影変換（歪み補正）画像を取得する。
【００７３】
具体的には、図１１に示すように、まず歪みのない出力結果を入れるためのマージン領域を含む出力キャンパスを用意する。そして、その出力キャンパスの各座標に対して第一の射影変換係数Ｈ１で射影変換を行い、対応する入力座標を求める。その入力座標における画素値を参照して出力キャンパスに割り当てることで、第一の射影変換画像を取得することができる。
【００７４】
以下、第一の射影変換画像の取得について式で説明する。ここで、出力キャンパスの座標点はＰ′（ｘ′，ｙ′，１）とし、出力キャンパスの座標点Ｐ′における画素値はｄｓｔＶａｌｕｅ（Ｐ′）とし、Ｐ′に対応する入力座標点はＰ（ｘ，ｙ，１）とし、入力座標点Ｐにおける画素値はｓｒｃＶａｌｕｅ（Ｐ）とする。まず、下記の式（６）より、Ｐ′（ｘ′，ｙ′，１）に対応する入力座標Ｐ（ｘ，ｙ，１）を求める。
【００７５】
【数５】
2015103916.tif 000007
【００７６】
そして、Ｐ′に対応する入力座標Ｐにおける画素値を、Ｐ′における画素値とする。式で説明すると、
ｄｓｔＶａｌｕｅ（Ｐ′）＝ｄｓｔＶａｌｕｅ（ｘ′，ｙ′，１）
＝ｓｒｃＶａｌｕｅ（Ｐ）＝ｓｒｃＶａｌｕｅ（ｘ，ｙ，１）
となる。
【００７７】
＜折り加工補正（特徴点表示）＞
以下、ステップＳ５１０で説明した図８に示す折り加工補正ボタン８０１をユーザが押下したときの折り加工特徴点の表示について、詳細を説明する。
【００７８】
まず本実施形態では、原稿の折り加工特徴点は、第一の射影変換画像から新たに検出するのではなく、ステップＳ５０３の段階で原稿のコーナー点と同時に抽出していた特徴点を利用する。また、ステップＳ５０７の段階では、原稿の折り加工特徴点の座標情報に対しても第一の射影変換を行っておくこととする。これにより、ステップＳ５１０で、折り加工補正ボタン８０１の押下を受けた操作部３０８からの折り加工特徴点の表示指示に対して、スムーズに対応できるようにしている。
【００７９】
次に、折り位置を指定する原稿の折り加工特徴点は、２点の組み合わせになっていることが好ましい。そこで、折り加工特徴点生成部４０６が対応点が存在するか確認を行い、不足する場合は特徴点の追加を行う。
【００８０】
図１２は、原稿枠の各辺に存在する折り加工特徴点の数を数えるため、Ｉ〜ＩＶのエリアに分けている様子を示している。上下エリアＩ−ＩＩＩまたは、左右エリアＩＩ−ＩＶで折り加工特徴点の数を比較し、数が一致しない場合は、不足しているエリアに対して折り加工特徴点を追加設置する。なお、特徴点を追加設置したエリアでは、その特徴点数から折り数（二つ折り、三つ折りなど）を算出し、原稿のコーナー点間を結ぶ直線を折り数で分割した位置に折り加工特徴点を設置するものとする。これにより、原稿枠の向かい合う辺に存在する折り加工特徴点間を結ぶ補助線が交差することを防止する。
【００８１】
なお、図８に示す原稿の折り加工特徴点間を結ぶ補助線８０４は、タップすることで、指示を受けた操作部３０８が関連する原稿の折り加工特徴点を無効化し、歪み補正に利用しない特徴点にしてもよい。
【００８２】
また、図１２の原稿枠の向かい合う辺の上下エリアＩ−ＩＩＩと、左右ＩＩ−ＩＶの折り加工特徴点は排他関係にあり、例えば、左右ＩＩ−ＩＶの折り加工特徴点を有効化しているときは、上下エリアＩ−ＩＩＩの折り加工特徴点は無効化されるものとする。なお、初期状態では長辺エリアに存在する原稿の折り加工特徴点を有効化しておくものとする。
【００８３】
＜第二の射影変換＞
以下、ステップＳ５１３の第二の射影変換係数算出、ステップＳ５１４の第二の射影変換について、詳細を説明する。
【００８４】
図１３は、二つ折り（縦）原稿に対して、ステップＳ５１２で調整済の折り加工特徴点ＯＰ１″、ＯＰ２″を用いて折り位置で原稿領域を分割して、分割した面ごとにそれぞれの第二の射影変換係数を求めて射影変換を実施している様子を示している。
【００８５】
まず、ステップＳ５１２で位置調整済の折り加工特徴点ＯＰ１″、ＯＰ２″に対して、第一の射影変換係数Ｈ１を利用して第一の射影変換を行い、撮影画像における原稿の折り加工特徴点の座標ＯＰ１'''、ＯＰ２'''を算出する。算出した折り加工特徴点ＯＰ１'''、ＯＰ２'''は、ステップＳ５０３で自動検出した折り加工特徴点ＯＰ１、ＯＰ２に対して位置調整を行ったものとされる。
【００８６】
次に、２組の４点情報（すなわち、Ａ面用及びＢ面用の４点情報）を用いて２つの第二の射影変換係数Ｈａ２、Ｈｂ２を算出する。具体的には、ステップＳ５１１で決定したマッピング先設定に基づき、ステップＳ５１２で算出した折り加工特徴点ＯＰ１'''、ＯＰ２'''のマッピング先ＯＰ１＿Ｍ、ＯＰ２＿Ｍを決定する。そして、Ａ面用の４点情報（Ｐ１，Ｐ２，ＯＰ２'''，ＯＰ１'''）と、出力キャンパスにおけるマッピング先情報（Ｐ１′，Ｐ２′，ＯＰ２＿Ｍ，ＯＰ１＿Ｍ）とを、射影変換前後の４点の座標データとし、Ａ面用の第二の射影変換係数Ｈａ２を算出する。また、Ｂ面用の４点情報（ＯＰ１'''，ＯＰ２'''，Ｐ３，Ｐ４）と、出力キャンパスにおけるマッピング先情報（ＯＰ１＿Ｍ，ＯＰ２＿Ｍ，Ｐ４′，Ｐ３′）とを、射影変換前後の４点の座標データとし、Ｂ面用の第二の射影変換係数行列Ｈｂ２を算出する。詳細は、＜第一の射影変換＞で説明した第一の射影変換係数の算出方法と同じであるため、ここで省略する。
【００８７】
次に、図１３のＡ′面エリアの座標はＡ面用の第二の射影変換係数Ｈａ２、Ｂ′面エリアの座標はＢ面用の第二の射影変換係数Ｈｂ２を用いて射影変換を行い、対応する入力座標を求める。対応する入力座標の画素値を参照することで第二の射影変換画像を取得することができる。詳細は、＜第二の射影変換＞で説明した第一の射影変換画像の取得方法と同じであるため、ここで省略する。
【００８８】
＜第三の射影変換＞
以下、ステップＳ５１５の第三の射影変換係数算出、ステップＳ５１６の第三の射影変換について、詳細を説明する。
【００８９】
第二の射影変換では、図１３に示すようにマッピング先の座標（Ｐ１′〜Ｐ４′，ＯＰ１＿Ｍ，ＯＰ２＿Ｍ）は、マージン領域を持って定義していた。これに対して、第三の射影変換では、チェックボックス７０３の状態に応じて、マージン領域を含めるか否かを変える。つまり、マッピング先の座標を最終出力における座標（ｄＰ１〜ｄＰ４，ｄＯＰ１，ｄＯＰ２）に変更して、第三の射影変換係数を求める。
【００９０】
例えば、図９のように、出力サイズ７０２をＡ４とし、チェックボックス７０３をＯＦＦにして「マージン領域（除外）」設定とした場合、図１３のマージン領域は出力範囲から除外される。つまり、図１４に示す状態になる。不図示の解像度設定により出力画像は３００ｄｐｉ画像であるものとした場合、Ｐ１〜Ｐ４に対応するｄＰ１〜ｄＰ４の座標は以下になる。  
Ｐ１（ｘ１，ｙ１，１）→ｄＰ１（０，０，１）
Ｐ２（ｘ２，ｙ２，１）→ｄＰ２（２４８０，０，１）
Ｐ３（ｘ３，ｙ３，１）→ｄＰ３（２４８０，３５０８，１）
Ｐ４（ｘ４，ｙ４，１）→ｄＰ４（０，３５０８，１）
ここで、マージンなしなので、Ｐ１のマッピング先ｄＰ１は原点としている。
【００９１】
なお、特に詳細は記述しないが、ｄＯＰ１、ｄＯＰ２については、特徴点間の距離の比率等を用いて計算することができる。
【００９２】
このように、ｄＰ１〜ｄＰ４に囲まれた範囲が出力サイズ７０２で設定されたＡ４サイズの出力範囲となる。この最終出力用のマッピング先の座標で第三の射影変換係数Ｈ３を面ごとに求める。そして、第二の射影変換と同様に面ごとに射影変換係数を変えて入力座標の画素値を参照することで第三の射影変換画像を取得することができる。
【００９３】
以上、本実施形態では、原稿のコーナー点で撮影画像全体の歪みを一度補正した後、必要に応じて折り位置で追加の歪み補正をかけることができる。このような制御フローとすることで、誤判定により不必要な特徴点が抽出された場合にも、はじめは原稿のコーナー点のみを使って補正することになる。そのため、ユーザによる手動調整が誤判定により煩雑になることがなく、使いやすさと折り加工原稿への対応の両立を可能にしたシステムを提供することが可能になる。
【００９４】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015103916.tif 000008
【図２】
2015103916.tif 000009
【図３】
2015103916.tif 000010
【図４】
2015103916.tif 000011
【図５】
2015103916.tif 000012
【図６】
2015103916.tif 000013
【図７】
2015103916.tif 000014
【図８】
2015103916.tif 000015
【図９】
2015103916.tif 000016
【図１０】
2015103916.tif 000017
【図１１】
2015103916.tif 000018
【図１２】
2015103916.tif 000019
【図１３】
2015103916.tif 000020
【図１４】
2015103916.tif 000021