(57)【要約】【課題】カメラに生成させた撮影画像内において、台形補正すべき領域をユーザに適切に指定させることが可能な携帯端末のプログラムを提供する。【解決手段】端末プログラムは、対象物を撮影したカメラによって生成された撮影画像データを取得する取得処理（Ｓ１２：Ｙｅｓ）と、撮影画像の外縁に追加画素を付加した拡張画像を生成する拡張処理（Ｓ１３）と、拡張画像を表示させる第１表示処理（Ｓ１４）と、拡張画像内で台形画像の形状を指定するタッチ操作を受け付ける第１受付処理（Ｓ１５）と、指定された形状の台形画像を台形補正して長方形の補正画像を生成する補正処理（Ｓ１７）と、補正画像データを出力する出力指示処理（Ｓ２０／Ｓ２１）とを携帯端末に実行させる。【選択図】図２
2020102235.tif 000002
【特許請求の範囲】
【請求項１】
カメラと、ディスプレイと、タッチセンサを有する入力インタフェースとを備える携帯端末によって読み取り可能なプログラムであって、
該プログラムは、
対象物を撮影した前記カメラによって生成された撮影画像データを取得する取得処理と、
前記撮影画像データで示される撮影画像の外縁に追加画素を付加することによって、前記撮影画像を拡張した拡張画像を示す拡張画像データを生成する拡張処理と、
前記拡張画像を前記ディスプレイに表示させる第１表示処理と、
前記第１表示処理で表示された前記拡張画像内において、台形画像の形状を指定するタッチ操作を、前記入力インタフェースを通じて受け付ける第１受付処理とを前記携帯端末に実行させ、前記台形画像は、長方形の前記対象物が斜めから撮影されたことによって、前記拡張画像内で台形に表された前記対象物を示す画像であり、
該プログラムは、
前記第１受付処理で指定された形状の前記台形画像を台形補正することによって、長方形の補正画像を示す補正画像データを生成する補正処理と、
前記補正画像データを出力する出力指示処理とを前記携帯端末に実行させるプログラム。
【請求項２】
該プログラムは、
前記撮影画像に含まれる前記台形画像の頂点の位置を推定する推定処理を前記携帯端末に実行させ、
前記第１表示処理において、前記推定処理で推定した頂点の位置を示すガイド画像を、前記拡張画像に重ねて前記ディスプレイに表示させ、
前記第１受付処理において、前記追加画素に重ねて表示された前記ガイド画像の位置を変更するタッチ操作を、前記入力インタフェースを通じて少なくとも受け付けることが可能であり、
前記補正処理において、前記第１受付処理で変更された前記ガイド画像の位置を頂点とする前記台形画像を台形補正する請求項１に記載のプログラム。
【請求項３】
該プログラムは、前記第１受付処理において、前記追加画素に重ねて表示された前記ガイド画像の位置に対するドラッグ操作を、当該ガイド画像に対応する頂点の位置を前記ドラッグ操作の終了位置に変更するタッチ操作として受け付ける請求項２に記載のプログラム。
【請求項４】
該プログラムは、
前記撮影画像に含まれる所定の長さ以上の直線を検出する検出処理と、
前記検出処理で検出した直線の数を判断する第１判断処理とを前記携帯端末に実行させ、
４つの直線を検出したと前記第１判断処理で判断した場合の前記推定処理において、前記検出処理で検出した直線の各交点の位置を、前記台形画像の頂点の位置として推定する請求項２又は３に記載のプログラム。
【請求項５】
該プログラムは、
３つの直線を検出したと前記第１判断処理で判断したことに応じて、前記撮影画像の輪郭線の１つを第４の直線に決定する決定処理を前記携帯端末に実行させ、
前記推定処理において、前記検出処理で検出した直線及び前記決定処理で決定した直線の各交点の位置を、前記台形画像の頂点の位置として推定する請求項４に記載のプログラム。
【請求項６】
該プログラムは、
前記推定処理で推定した全ての頂点の位置が前記撮影画像内か否かを判断する第２判断処理を前記携帯端末に実行させ、
全ての頂点の位置が前記撮影画像内だと前記第２判断処理で判断したことに応じて、前記拡張処理を前記携帯端末に実行させず、且つ前記第１表示処理で前記撮影画像を前記ディスプレイに表示させ、
少なくとも１つの頂点の位置が前記撮影画像外だと前記第２判断処理で判断したことに応じて、当該頂点が前記拡張画像に含まれるように、前記撮影画像に前記追加画素を付加する前記拡張処理を前記携帯端末に実行させる請求項４又は５に記載のプログラム。
【請求項７】
２つ以下の直線を検出したと前記第１判断処理で判断したことに応じて、前記推定処理を前記携帯端末に実行させず、且つ前記撮影画像の周囲を囲むように、前記撮影画像に前記追加画素を付加する前記拡張処理を前記携帯端末に実行させる請求項４から６のいずれかに記載のプログラム。
【請求項８】
該プログラムは、前記第１表示処理において、前記追加画素に非背景画素値が設定された前記拡張画像を前記ディスプレイに表示させ、前記非背景画素値は、前記撮影画像の背景画素の画素値と異なる画素値である請求項１から７のいずれかに記載のプログラム。
【請求項９】
該プログラムは、前記出力指示処理において、前記追加画素に背景画素値が設定された前記補正画像データを出力し、前記背景画素値は、前記撮影画像の背景画素の画素値である請求項１から８のいずれかに記載のプログラム。
【請求項１０】
該プログラムは、
前記補正画像を前記ディスプレイに表示させる第２表示処理と、
前記補正画像データの出力を指示する指示操作を、前記入力インタフェースを通じて受け付ける第２受付処理と、
前記第２受付処理で前記指示操作を受け付けたことに応じて、前記出力指示処理とを前記携帯端末に実行させる請求項１から９のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラに生成させた画像を台形補正する携帯端末のプログラムに関する。
【背景技術】
【０００２】
引用文献１には、カメラに生成させた撮影画像を台形補正する携帯端末のプログラムが記載されている。より詳細には、引用文献１に記載のプログラムは、被写体を撮影したカメラに生成させた撮影画像をディスプレイに表示させ、撮影画像内で被写体を囲む略四角形領域の頂点の位置をユーザに指定させ、指定された略四角形領域の画像をトリミングし、トリミングした画像を台形補正する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２１８５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、カメラに被写体をズームして撮影させた場合において、撮影画像に被写体の一部が含まれない場合がある。そして、このような撮影画像内で略四角形領域の頂点の位置をユーザに指定させようとすると、本来の位置より略四角形領域の内側の位置が頂点として指定される可能性がある。その結果、このような略四角形領域の画像がトリミング及び台形補正されると、撮影画像に含まれていた被写体の一部がさらに欠けてしまう可能性がある。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、カメラに生成させた撮影画像内において、台形補正すべき領域をユーザに適切に指定させることが可能な携帯端末のプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本明細書に記載のプログラムは、カメラと、ディスプレイと、タッチセンサを有する入力インタフェースとを備える携帯端末によって読み取り可能である。該プログラムは、対象物を撮影した前記カメラによって生成された撮影画像データを取得する取得処理と、前記撮影画像データで示される撮影画像の外縁に追加画素を付加することによって、前記撮影画像を拡張した拡張画像を示す拡張画像データを生成する拡張処理と、前記拡張画像を前記ディスプレイに表示させる第１表示処理と、前記第１表示処理で表示された前記拡張画像内において、台形画像の形状を指定するタッチ操作を、前記入力インタフェースを通じて受け付ける第１受付処理とを前記携帯端末に実行させる。前記台形画像は、長方形の前記対象物が斜めから撮影されたことによって、前記拡張画像内で台形に表された前記対象物を示す画像である。該プログラムは、前記第１受付処理で指定された形状の前記台形画像を台形補正することによって、長方形の補正画像を示す補正画像データを生成する補正処理と、前記補正画像データを出力する出力指示処理とを前記携帯端末に実行させる。
【０００７】
上記構成によれば、撮影画像の外縁に追加画素を付加した拡張画像内において、台形補正の対象となる台形画像をユーザに指定させることができる。すなわち、撮影画像に被写体の一部が含まれていない場合であっても、台形補正の対象となる領域をユーザに適切に指定させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態に係るシステム１００の概略図である。
【図２】図２は、プリント指示処理のフローチャートである。
【図３】図３は、台形拡張処理のフローチャートである。
【図４】図４は、撮影画像の例であって、（Ａ）は４つの直線が検出された例を、（Ｂ）は３つの直線が検出された例を示す。
【図５】図５は、拡張画像の例であって、（Ａ）は撮影画像８０に追加画素８５を付加した例を、（Ｂ）は撮影画像９０に追加画素９５を付加した例を示す。
【図６】図６は、ディスプレイ５３の表示例であって、（Ａ）は台形指定画面を、（Ｂ）はプレビュー画面を示す。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１０】
図１は、本実施形態に係るシステム１００の概略図である。図１に示されるシステム１００は、複合機１０と、携帯端末５０とで構成されている。また、システム１００は、複合機１０に代えて、プリンタ単能機を含んでもよい。複合機１０及び携帯端末５０は、通信ネットワーク１０１を通じて相互に通信可能に構成されている。通信ネットワーク１０１の具体例は特に限定されないが、例えば、インターネット、有線ＬＡＮ、無線ＬＡＮ、或いはこれらの組み合わせであってもよい。
【００１１】
複合機１０は、図１に示されるように、プリンタ１１と、スキャナ１２と、ディスプレイ２３と、入力Ｉ／Ｆ２４と、通信Ｉ／Ｆ２５と、ＣＰＵ３１と、メモリ３２と、通信バス３３とを主に備える。複合機１０を構成する各構成要素は、通信バス３３を通じて相互に接続されている。
【００１２】
プリンタ１１は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ１１の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ１２は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行する。
【００１３】
ディスプレイ２３は、液晶ディスプレイ、有機ＥＬディスプレイ等であり、各種情報を表示する表示面を備える。
【００１４】
入力Ｉ／Ｆ２４は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力Ｉ／Ｆ２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、入力Ｉ／Ｆ２４は、ディスプレイ２３の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ２３の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ２３に表示された文字列、アイコン、ボタン、リンク等である。
【００１５】
タッチセンサとして実現される入力Ｉ／Ｆ２４は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ２３に表示されたアイコンの位置のタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
【００１６】
通信Ｉ／Ｆ２５は、通信ネットワーク１０１を通じて外部装置と通信可能なインタフェースである。すなわち、複合機１０は、通信Ｉ／Ｆ２５を通じて外部装置に各種情報を出力し、通信Ｉ／Ｆ２５を通じて外部装置から各種情報を受信する。通信Ｉ／Ｆ２５の具体的な通信手順は特に限定されないが、例えば、Ｗｉ−Ｆｉ（Wi-Fi Allianceの登録商標）を採用することができる。
【００１７】
ＣＰＵ３１は、複合機１０の全体動作を制御するものである。ＣＰＵ３１は、入力Ｉ／Ｆ２４から出力される各種情報、通信Ｉ／Ｆ２５を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ３２から取得して実行する。ＣＰＵ３１及びメモリ３２は、制御部の一例を構成する。
【００１８】
メモリ３２は、プログラム記憶領域３２Ａと、データ記憶領域３２Ｂとを有する。領域３２Ａには、ＯＳ３４と、装置プログラム３５とが格納される。なお、装置プログラム３５は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。領域３２Ｂには、装置プログラム３５の実行に必要なデータ或いは情報が記憶される。メモリ３２は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、複合機１０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ３１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００１９】
メモリ３２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する携帯端末５０のメモリ６２についても同様である。
【００２０】
携帯端末５０は、図１に示されるように、カメラ５２と、ディスプレイ５３と、入力Ｉ／Ｆ５４と、通信Ｉ／Ｆ５５と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。携帯端末５０に含まれるディスプレイ５３、入力Ｉ／Ｆ５４、通信Ｉ／Ｆ５５、ＣＰＵ６１、メモリ６２、及び通信バス６３は、複合機１０に含まれるディスプレイ２３、入力Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、ＣＰＵ３１、メモリ３２、及び通信バス３３と同様の構成であるので、説明は省略する。ＣＰＵ６１及びメモリ６２は、制御部の一例である。
【００２１】
携帯端末５０は、例えば、携帯電話、スマートフォン、或いはタブレット端末等である。より詳細には、携帯端末５０のディスプレイ５３は、表示画面のサイズが１２インチ以下、より好ましくは８インチ以下であるのが望ましい。また、携帯端末５０の入力Ｉ／Ｆ５４は、ディスプレイ５３の表示画面に重ねられたタッチセンサであるのが望ましい。メモリ６２の領域６２Ａには、ＯＳ６４と、端末プログラム６５とが格納されている。
【００２２】
カメラ５２は、被写体を撮影して画像データ（以下、「撮影画像データ」と表記することがある。）を生成する。カメラ５２の動作は、例えば、領域６２Ａに記憶される不図示のカメラプログラムによって制御される。すなわち、カメラプログラムは、撮影画像データで示される画像と、［撮影］アイコンとをディスプレイ５３に表示させる。また、ディスプレイ５３に表示される画像は、カメラ５２の向きが変更されるのに追従して変更される。そして、カメラプログラムは、［撮影］アイコンを指定するユーザ操作を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、撮影画像データを領域６２Ｂに記憶させる。
【００２３】
［システム１００の動作］
図２及び図３を参照して、本実施形態に係るシステム１００の動作を説明する。
【００２４】
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ３１、６１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「制御」等の処理は、ＣＰＵ３１、６１の処理を表している。ＣＰＵ６１による処理は、ＯＳ６４を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００２５】
まず、携帯端末５０の端末プログラム６５は、不図示のカメラプログラムを起動させる（Ｓ１１）。次に、カメラプログラムは、［撮影］アイコンを指定するユーザ操作を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、撮影画像データを領域６２Ｂに記憶させ、記憶させた撮影画像データを端末プログラム６５に提供する。端末プログラム６５は、例えば、カメラプログラムを所謂プラグインとして起動するためのＡＰＩを実行すればよい。また、カメラプログラムは、領域６２Ｂに記憶させた撮影画像データのパスを当該ＡＰＩの戻り値に含めればよい。そして、端末プログラム６５は、戻り値に含まれるパスに基づいて撮影画像データを読み出せばよい（Ｓ１２：Ｙｅｓ）。
【００２６】
本実施形態において、携帯端末５０のユーザは、長方形のホワイトボードをカメラ５２によって斜めから撮影したものとする。その結果、端末プログラム６５は、例えばＳ１２において、図４（Ａ）に示される撮影画像８０を示す撮影画像データ、或いは図４（Ｂ）に示される撮影画像９０を示す撮影画像データを取得したものとする。ホワイトボードは、対象物の一例である。但し、対象物の具体例はホワイトボードに限定されず、黒板、ポスター、ディスプレイ等の概ね長方形或いは正方形の物であればよく、表面に文字或いは図柄等が描かれているのが望ましい。
【００２７】
撮影画像８０は、図４（Ａ）に示されるように、輪郭線８１Ａ、８１Ｂ、８１Ｃ、８１Ｄで囲まれた長方形の画像である。撮影画像９０は、図４（Ｂ）に示されるように、輪郭線９１Ａ、９１Ｂ、９１Ｃ、９１Ｄで囲まれた長方形の画像である。また、撮影画像８０、９０は、台形画像８４、９４の少なくとも一部を含む。台形画像８４、９４は、ホワイトボードが斜めから撮影されたことによって、撮影画像８０、９０内で台形に表されたホワイトボードを示す画像である。
【００２８】
次に、端末プログラム６５は、画像拡張処理を実行する（Ｓ１３）。画像拡張処理は、撮影画像データで示される撮影画像に画素を追加することによって、拡張画像を生成する処理である。すなわち、拡張画像は、撮影画像を拡張した画像である。図３を参照して、画像拡張処理の詳細を説明する。
【００２９】
まず、端末プログラム６５は、ハフ変換等の周知のアルゴリズムを用いて、撮影画像に含まれる所定の長さ以上の直線を検出する（Ｓ３１）。また、端末プログラム６５は、Ｓ３１で検出した直線の数を判断する（Ｓ３２）。Ｓ３１の処理は検出処理の一例であり、Ｓ３２の処理は、第１判断処理の一例である。
【００３０】
一例として、端末プログラム６５は、図４（Ａ）に示される撮影画像８０内において、４つの直線８２Ａ、８２Ｂ、８２Ｃ、８２Ｄを検出する。他の例として、端末プログラム６５は、図４（Ｂ）に示される撮影画像９０内において、３つの直線９２Ａ、９２Ｂ、９２Ｃを検出する。但し、Ｓ３１で検出される直線の数は図４の例に限定されず、２つ以下の場合もあり得る。
【００３１】
次に、端末プログラム６５は、例えば図４（Ｂ）に示されるように、３つの直線９２Ａ〜９２Ｃを検出したと判断したことに応じて（Ｓ３２：３）、撮影画像９０の４つの輪郭線９１Ａ〜９１Ｄの１つを、第４の直線に決定する（Ｓ３３）。Ｓ３３の処理は、決定処理の一例である。一方、端末プログラム６５は、図４（Ａ）に示されるように、４つの直線８２Ａ〜８２Ｄを検出したと判断したことに応じて（Ｓ３２：４）、Ｓ３３の処理をスキップする。
【００３２】
端末プログラム６５は、例えばＳ３３において、Ｓ３１で検出した３つの直線９２Ａ〜９２Ｃのうち、平行に近い２つの直線９２Ａ、９２Ｃを対となる直線と判断する。対となる直線９２Ａ、９２Ｃは、台形画像９４の対辺を構成し得る直線である。そして、端末プログラム６５は、撮影画像９０の４つの輪郭線９１Ａ〜９１Ｄのうち、対となる直線が存在しない直線９２Ｂから最も離れた輪郭線９１Ｄを、第４の直線に決定する。
【００３３】
次に、端末プログラム６５は、Ｓ３１で検出した４つの直線の交点の位置、或いはＳ３１で検出した３つの直線及びＳ３３で決定した１つの直線の交点の位置を特定する。そして、端末プログラム６５は、特定した交点の位置を台形画像８４、９４の頂点の位置と推定する（Ｓ３４）。Ｓ３４の処理は、推定処理の一例である。一例として、端末プログラム６５は、図４（Ａ）に示される撮影画像８０において、各直線の交点の位置を、台形画像８４の頂点８３Ａ、８３Ｂ、８３Ｃ、８３Ｄと推定する。他の例として、端末プログラム６５は、図４（Ｂ）に示される撮影画像９０において、各直線の交点の位置を、台形画像９４の頂点９３Ａ、９３Ｂ、９３Ｃ、９３Ｄと推定する。なお、図４に示されるように、Ｓ３４で推定される頂点の一部は、撮影画像８０、９０外に位置してもよい。
【００３４】
次に、端末プログラム６５は、Ｓ３４で推定した４つの頂点の位置が撮影画像内か否かを判断する（Ｓ３５）。そして、端末プログラム６５は、少なくとも１つの頂点の位置が撮影画像外だと判断したことに応じて（Ｓ３５：Ｎｏ）、拡張画像を示す拡張画像データを生成する（Ｓ３６）。一方、端末プログラム６５は、全ての頂点の位置が撮影画像内だと判断したことに応じて（Ｓ３５：Ｙｅｓ）、Ｓ３６の処理をスキップする。Ｓ３５の処理は第２判断処理の一例であり、Ｓ３６の処理は拡張処理の一例である。
【００３５】
端末プログラム６５は、Ｓ３６において、撮影画像の外縁に追加画素を付加することによって、拡張画像データを生成する。一例として、端末プログラム６５は、図４（Ａ）に示される撮影画像８０の外縁に、図５（Ａ）に示される追加画素８５を輪郭線８１Ｃに沿って付加した拡張画像８６を生成する。他の例として、端末プログラム６５は、図４（Ｂ）に示される撮影画像９０の外縁に、図５（Ａ）に示されるＬ字型の追加画素９５を輪郭線９１Ｃ、９１Ｄに沿って付加した拡張画像９６を生成する。拡張画像８６、９６は、台形画像８４、９４の全体を含む。
【００３６】
すなわち、追加画素８５、９５は、撮影画像８０、９０の外に位置する頂点８３Ｃ、９３Ｃに最も近い輪郭線８１Ｃ、９１Ｃに沿って設けられるのが望ましい。また、追加画素９５は、Ｓ３３で直線に決定した輪郭線９１Ｄに沿って設けられるのが望ましい。但し、追加画素８５、９５の形状は、図５の例に限定されない。一例として、追加画素８５、９５は、輪郭線８１Ｃ、９１Ｃ、９１Ｄの全域に設けられていなくてもよい。すなわち、拡張画像８６、９６は、長方形でなくてもよい。他の例として、端末プログラム６５は、図６（Ａ）に示されるように、撮影画像８０を囲む枠型の追加画素８７を付加した拡張画像８８を生成してもよい。
【００３７】
また、追加画素８５、９５の幅は、例えば、撮影画像８０、９０の外に位置する頂点８３Ｃ、９３Ｃの位置と、Ｓ３１で検出した直線の数とによって、適宜設定される。まず、端末プログラム６５は、撮影画像８０、９０の外に位置する頂点８３Ｃ、９３Ｃが、拡張画像８６、９６の輪郭線より内側に位置するように、追加画素８５、９５の幅を設定すればよい。また、端末プログラム６５は、Ｓ３１で検出した直線の数が少ない程、追加画素８５、９５の幅を大きくすればよい。
【００３８】
一方、端末プログラム６５は、Ｓ３１で２つ以下の直線を検出したと判断したことに応じて（Ｓ３２：２以下）、Ｓ３３〜Ｓ３６に代えて、例えば図６（Ａ）に示されるように、撮影画像８０の周囲を囲む枠型の追加画素８７を付加することによって、拡張画像８８を示す拡張画像データを生成する（Ｓ３７）。Ｓ３７の処理は、拡張処理の一例である。本実施形態では、Ｓ３６で撮影画像８０に枠型の追加画素８７が付加されたものとして、以下の処理の説明する。また、Ｓ３６の処理がスキップされた場合（Ｓ３５：Ｙｅｓ）、以下の処理において、拡張画像８８に代えて撮影画像８０が用いられる。
【００３９】
図２に戻って、端末プログラム６５は、図６（Ａ）に示される台形指定画面をディスプレイ５３に表示させる（Ｓ１４）。台形指定画面は、拡張画像８８と、ガイド画像１１１、１１２、１１３、１１４と、［補正］アイコン１１５とを含む。ガイド画像１１１〜１１４は、Ｓ３４で推定した頂点８３Ａ〜８３Ｄの位置を示す画像であって、拡張画像８８に重ねて表示される。［補正］アイコン１１５は、台形画像を台形補正する指示に対応する。そして、端末プログラム６５は、台形指定画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ１５）。Ｓ１４の処理は第１表示処理の一例であり、Ｓ１５の処理は第１受付処理の一例である。
【００４０】
なお、端末プログラム６５は、Ｓ１４において、追加画素８７に非背景画素値が設定された拡張画像８８を、台形指定画面に表示させてもよい。端末プログラム６５は、例えば、Ｓ３６、Ｓ３７で生成した拡張画像データをコピーし、コピーした拡張画像データに含まれる追加画素８７に非背景画素値を設定し、当該拡張画像データで示される拡張画像８８を、台形指定画面に表示させればよい。非背景画素値は、撮影画像の背景画素の画素値と異なる画素値である。背景画素の画素値は、例えば、撮影画像に含まれる画素値のヒストグラムの最頻値を指す。また、端末プログラム６５は、Ｓ３１で２つ以下の直線を検出した場合に（Ｓ３２：２以下）、拡張画像８８上の予め定められた位置にガイド画像１１１〜１１４を表示してもよい。
【００４１】
次に、端末プログラム６５は、例えばガイド画像１１３の位置に対するドラッグ操作を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１５：ガイド画像）、台形指定画面上でガイド画像１１３の位置を変更する（Ｓ１６＆Ｓ１４）。より詳細には、端末プログラム６５は、ガイド画像１１３の位置にタッチされた入力媒体が表示面上で移動されたことに応じて、当該入力媒体に追随してガイド画像１１３の位置を変更する。そして、端末プログラム６５は、入力媒体が離間された位置、すなわちドラッグ操作の終了位置を、ガイド画像１１３の新たな位置に決定する。
【００４２】
ガイド画像１１３は、台形指定画面の拡張画像８８内の任意の位置、すなわち、撮影画像８０及び追加画素８７内の任意の位置に移動させることができる。一方、ガイド画像１１３は、台形指定画面の拡張画像８８外に移動させることができない。ガイド画像１１１、１１２、１１４に対するドラッグ操作についても同様である。ドラッグ操作は、ガイド画像１１１〜１１４の位置を変更するタッチ操作、及び台形画像８４の形状を指定するタッチ操作の一例である。なお、台形画像の形状を指定するタッチ操作は、ガイド画像１１１〜１１４に対するドラッグ操作に限定されない。例えば、端末プログラム６５は、台形画像８４を構成する辺の位置に対するドラッグ操作を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、当該辺の位置及び角度を変更してもよい。
【００４３】
次に、端末プログラム６５は、［補正］アイコン１１５の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１５：補正アイコン）、ガイド画像１１１〜１１４の位置を頂点とする台形画像８４を、拡張画像８８から抽出する。そして、端末プログラム６５は、抽出した台形画像８４を台形補正して、長方形の補正画像を示す補正画像データを生成する（Ｓ１７）。Ｓ１７の処理は、補正処理の一例である。
【００４４】
ガイド画像１１１〜１１４の少なくとも１つが追加画素８７の位置に配置されている場合、端末プログラム６５は、撮影画像８０の画素と、追加画素８７とを含む台形画像８４を抽出する。また、端末プログラム６５は、例えば、ガイド画像１１１〜１１４の位置を頂点とする台形画像８４に対して、上辺及び短辺が平行になるように画素を補間することによって、補正画像データを生成する。台形補正は、例えば、射影変換等の周知のアルゴリズムによって実現される。
【００４５】
次に、端末プログラム６５は、図６（Ｂ）に示されるプレビュー画面をディスプレイ５３に表示させる（Ｓ１８）。プレビュー画面は、Ｓ１７で生成された補正画像１２１と、［プリント］アイコン１２２と、［保存］アイコン１２３とを含む。［プリント］アイコン１２２は、補正画像データに対するプリント動作を複合機１０に実行させる指示に対応する。［保存］アイコン１２３は、補正画像データを領域６２Ｂに記憶させる指示に対応する。そして、端末プログラム６５は、プレビュー画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ１９）。Ｓ１８の処理は第２表示処理の一例であり、Ｓ１９の処理は第２受付処理の一例である。
【００４６】
そして、端末プログラム６５は、［プリント］アイコン１２２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１９：プリントアイコン）、通信Ｉ／Ｆ５５を通じて複合機１０にプリント指示情報を送信する（Ｓ２０）。プリント指示情報は、補正画像データに対するプリント動作を指示するための情報であって、補正画像データを含む。一方図示は省略するが、複合機１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて携帯端末５０からプリント指示情報を受信する。そして、装置プログラム３５は、受信したプリント指示情報に従ったプリント動作をプリンタ１１に実行させる。
【００４７】
一方、端末プログラム６５は、［保存］アイコン１２３の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１９：保存アイコン）、補正画像データを領域６２Ｂに記憶させる（Ｓ２１）。なお、端末プログラム６５は、Ｓ２０、Ｓ２１で出力する補正画像データが追加画素を含む場合に、当該追加画素に撮影画像の背景画素値を設定してもよい。［プリント］アイコン１２２或いは［保存］アイコン１２３の指定は、指示操作の一例である。Ｓ２０、Ｓ２１の処理は、出力指示処理の一例である。
【００４８】
［実施形態の作用効果］
上記の実施形態によれば、撮影画像の外縁に追加画素を付加した拡張画像内において、台形補正の対象となる台形画像をユーザに指定させることができる。すなわち、撮影画像に被写体の一部が含まれていない場合であっても、台形補正の対象となる領域をユーザに適切に指定させることができる。
【００４９】
なお、図５の例のように、追加画素８５、９５を必要な箇所に選択的に付加することによって、台形指定画面において撮影画像８０、９０を相対的に大きく表示させることができる。一方、図６（Ａ）に示されるように、枠型の追加画素８７を撮影画像８０に付加することによって、撮影画像８０及び拡張画像８８の中心が一致するので、撮影時のアングルに近い拡張画像８８を台形指定画面に表示させることができる。また、撮影画像８０、９０の外側に台形画像８４、９４の頂点８３Ｃ、９３Ｃが位置する場合にのみ撮影画像８０、９０が拡張されるので、不必要な追加画素の付加が抑制される。
【００５０】
また、上記の実施形態によれば、台形画像８４の頂点８３Ａ〜８３Ｄの位置を推定し、推定された頂点８３Ａ〜８３Ｄの位置を示すガイド画像１１１〜１１４を拡張画像８８に重ねて表示し、表示されたガイド画像１１１〜１１４の位置を必要に応じてユーザに変更させる。これにより、台形画像８４を指定するユーザ操作を簡略化することができる。また、適切な補正画像１２１が生成されたか否かを、プレビュー画面を通じてユーザに確認させてから、補正画像データを出力することができる。
【００５１】
また、上記の実施形態によれば、台形指定画面において、追加画素８７に非背景画素値を設定することによって、撮影画像８０に含まれる画素と追加画素８７とをユーザに区別させることができる。これにより、追加画素８７に重ねられたガイド画像１１３が適切な位置に表示されているか否かの確認を、ユーザに促すことができる。一方、補正画像データに含まれる追加画素に背景画素値を設定することにより、出力された補正画像データで示される補正画像内において、追加画素を目立たなくすることができる。
【００５２】
また、上記の実施形態の複合機１０及び携帯端末５０において、メモリ３２、６２の領域３２Ａ、６２Ａに記憶された各種プログラムがＣＰＵ３１、６１によって実行されることによって、本発明の制御部が実行する各処理が実現される例を説明した。しかしながら、制御部の構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
【００５３】
さらに、本発明は、複合機１０及び携帯端末５０として実現できるだけでなく、複合機１０及び携帯端末５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワーク１０１を通じて複合機１０及び携帯端末５０に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク１０１を通じて配信されてもよい。
【符号の説明】
【００５４】
１０・・・複合機
１１・・・プリンタ
２３，５３・・・ディスプレイ
２４，５４・・・入力Ｉ／Ｆ
２５，５５・・・通信Ｉ／Ｆ
３１，６１・・・ＣＰＵ
３２，６２・・・メモリ
３５・・・装置プログラム
５０・・・携帯端末
６５・・・端末プログラム
【図１】
2020102235.tif 000003
【図２】
2020102235.tif 000004
【図３】
2020102235.tif 000005
【図４】
2020102235.tif 000006
【図５】
2020102235.tif 000007
【図６】
2020102235.tif 000008
【手続補正書】
【提出日】令和2年3月5日(2020.3.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
カメラと、ディスプレイと、タッチセンサを有する入力インタフェースとを備える携帯端末によって読み取り可能なプログラムであって、
該プログラムは、
対象物を撮影した前記カメラによって生成された撮影画像データを取得する取得処理と、
前記取得処理によって取得された前記撮影画像データが、長方形の対象物を斜めから撮影した前記カメラによって生成された前記撮影画像データであって、当該対象物を示す台形画像の一部を含み他部を含まない当該撮影画像データである場合に、前記撮影画像データが示す前記台形画像の一部に基づいて、当該一部に含まれる前記台形画像の頂点と、前記他部に含まれる前記台形画像の頂点とを推定する推定処理と、
推定した前記頂点からなる前記台形画像を台形補正することによって、長方形の補正画像を示す補正画像データを生成する補正処理と、
前記補正画像データを出力する出力指示処理と、を前記携帯端末に実行させるプログラム。
【請求項２】
前記他部に含まれる頂点であって、推定した頂点を含む追加画素を前記撮影画像データが示す撮影画像に追加することによって、当該撮影画像を拡張した拡張画像であって、前記台形画像を含む当該拡張画像を示す拡張画像データを生成する拡張処理と、
前記拡張画像を前記ディスプレイに表示させる第１表示処理と、
前記第１表示処理で表示された前記拡張画像内において、前記台形画像の形状を調整するタッチ操作を、前記入力インタフェースを通じて受け付ける第１受付処理と、を前記携帯端末に実行させ、
該プログラムは、
前記補正処理において、前記第１受付処理で受け付けた調整を反映した前記台形画像を台形補正して前記補正画像データを生成する、請求項１に記載のプログラム。
【請求項３】
該プログラムは、
前記第１表示処理において、前記推定処理で推定した頂点の位置を示すガイド画像を、前記拡張画像に重ねて前記ディスプレイに表示させ、
前記第１受付処理において、前記追加画素に重ねて表示された前記ガイド画像の位置を変更するタッチ操作を、前記入力インタフェースを通じて少なくとも受け付けることが可能であり、
前記補正処理において、前記第１受付処理で変更された前記ガイド画像の位置を頂点とする前記台形画像を台形補正する請求項２に記載のプログラム。
【請求項４】
該プログラムは、前記第１受付処理において、前記追加画素に重ねて表示された前記ガイド画像の位置に対するドラッグ操作を、当該ガイド画像に対応する頂点の位置を前記ドラッグ操作の終了位置に変更するタッチ操作として受け付ける請求項３に記載のプログラム。
【請求項５】
該プログラムは、
前記撮影画像に含まれる所定の長さ以上の直線を検出する検出処理と、
前記検出処理で検出した直線の数を判断する第１判断処理と、を前記携帯端末に実行させ、
４つの直線を検出したと前記第１判断処理で判断した場合の前記推定処理において、前記検出処理で検出した直線の各交点の位置を、前記台形画像の頂点の位置として推定する請求項３又は４に記載のプログラム。
【請求項６】
該プログラムは、
３つの直線を検出したと前記第１判断処理で判断したことに応じて、前記撮影画像の輪郭線の１つを第４の直線に決定する決定処理を前記携帯端末に実行させ、
前記推定処理において、前記検出処理で検出した直線及び前記決定処理で決定した直線の各交点の位置を、前記台形画像の頂点の位置として推定する請求項５に記載のプログラム。
【請求項７】
２つ以下の直線を検出したと前記第１判断処理で判断したことに応じて、前記推定処理を前記携帯端末に実行させず、且つ前記撮影画像の周囲を囲むように、前記撮影画像に前記追加画素を付加する前記拡張処理を前記携帯端末に実行させる請求項５又は６に記載のプログラム。
【請求項８】
該プログラムは、前記第１表示処理において、前記追加画素に非背景画素値が設定された前記拡張画像を前記ディスプレイに表示させ、前記非背景画素値は、前記撮影画像の背景画素の画素値と異なる画素値である請求項２から７のいずれかに記載のプログラム。
【請求項９】
該プログラムは、前記出力指示処理において、前記追加画素に背景画素値が設定された前記補正画像データを出力し、前記背景画素値は、前記撮影画像の背景画素の画素値である請求項２から８のいずれかに記載のプログラム。
【請求項１０】
該プログラムは、
前記補正画像を前記ディスプレイに表示させる第２表示処理と、
前記補正画像データの出力を指示する指示操作を、前記入力インタフェースを通じて受け付ける第２受付処理と、
前記第２受付処理で前記指示操作を受け付けたことに応じて、前記出力指示処理と、を前記携帯端末に実行させる請求項１から９のいずれかに記載のプログラム。