(57)【要約】【課題】画像の傾きをより精度よく補正できる情報処理装置を提供すること。【解決手段】原稿を読み取って生成される画像の傾き角を検出する情報処理装置１００であって、読取装置により読み取られた原稿の画像を取得する画像取得手段５２と、前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段５６と、を有する。【選択図】図１
2017220708.tif 000002
【特許請求の範囲】
【請求項１】
原稿を読み取って生成される画像の傾き角を検出する情報処理装置であって、
読取装置により読み取られた原稿の画像を取得する画像取得手段と、
前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段と、
を有する情報処理装置。
【請求項２】
前記傾き角検出手段は、異なる方法の少なくとも一方で前記画像の複数の傾き角を検出し、
各傾き角ごとに集計された傾き角の数に基づいて前記画像の傾き角を決定する請求項１に記載の情報処理装置。
【請求項３】
前記傾き角検出手段は、前記画像から直線を検出し直線ごとに直線の角度を求め、
更に、前記画像が傾くことで前記画像に生じる影を検出し影ごとに影と前記画像の境界線の角度を求め、
角度ごとに前記直線の数、及び、前記影の数を集計し、
前記直線の数と前記影の数の合計に基づいて決定した角度を、前記画像の傾き角に決定する請求項１又は２に記載の情報処理装置。
【請求項４】
前記傾き角検出手段は、前記直線の数と前記影の数の少なくともいずれかに重み付けを付与して、前記直線の数と前記影の数の合計に基づいて決定した角度を、前記画像の傾き角に決定する請求項３に記載の情報処理装置。
【請求項５】
前記傾き角検出手段は、前記直線の数と前記影の数の合計が最も大きい角度を、前記画像の傾き角に決定する請求項３又は４に記載の情報処理装置。
【請求項６】
前記傾き角検出手段は、前記画像と前記影の境界に生じる濃淡差を検出することで前記影を検出し、前記濃淡差が検出された場所から前記境界線を検出する請求項３〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記傾き角検出手段は、前記画像と前記影の境界に生じる直線を検出することで前記境界線を検出する請求項３〜５のいずれか１項に記載の情報処理装置。
【請求項８】
前記傾き角検出手段は、検出した前記影の前記境界線の角度の確からしさが基準を満たす場合、
前記境界線の前記角度のみに基づいて前記画像の傾き角に決定する請求項３〜７のいずれか1項に記載の情報処理装置。
【請求項９】
前記傾き角検出手段は、前記画像から直交する直交線を検出し、直交する二本の直線のそれぞれの角度が等しいと見なせる場合、前記直交線の数を角度ごとに集計する請求項３〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
原稿を読み取って生成される画像の傾き角を検出する情報処理装置を、
読取装置により読み取られた原稿の画像を取得する画像取得手段と、
前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
紙媒体による情報流出のリスクに対する関心が高まっている。例えば、JNSA2013年情報セキュリティインシデントに関する調査報告書では、情報の流出経路の67.7％が紙媒体、16.4％が可搬媒体(メール/ＵＳＢ等)と報告されている。複合機も可搬媒体の脱着が可能であり２つの流出経路を合わせると合計84.1％という高い比率を占めている。可搬媒体の脱着が可能でない複合機の場合でも67.7％の流出経路に複合機が関わるおそれがあることになる。
【０００３】
従来から、複合機においては地紋印刷という印刷媒体の背景に薄い濃度で情報を印刷する機能が知られている。地紋印刷が施された印刷媒体が複写されると社外秘などの文字が浮かび上がったり、元の文書を判読しにくくしたりすることができる。しかし、地紋印刷はユーザが肉眼で目視可能なため、改ざんしやすいことや文書のデザイン性が低下するなどの不都合がある。
【０００４】
これに対し、人間が目視しにくい情報を複合機が印刷媒体に印刷しておく技術として、電子透かしという技術が知られている。電子透かしとは、画像に関する情報を画像と共に印刷媒体に形成する技術又は形成された情報をいう。電子透かしは目視しにくい微小点を、領域に分割された印刷対象の画像の各領域に配置することで印刷媒体に形成される。このため、電子透かしが形成された原稿を複合機が読み取る際に原稿が傾くと、読み取られる画像も傾くため微小点の位置もずれ、複合機が電子透かしを正確に読み取れない場合があった。
【０００５】
このような不都合に対し、読み取った画像の傾きを補正する技術が知られている（例えば、特許文献１参照。）。特許文献１には、読み取った原稿の画像の傾き角を算出し、算出された傾き角に応じて画像の傾きを補正する方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、傾き角の補正が不十分な場合があり、電子透かしが有する微小点を正確に検出できない場合があるという問題がある。
【０００７】
本発明は、上記課題に鑑み、画像の傾きをより精度よく補正できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、原稿を読み取って生成される画像の傾き角を検出する情報処理装置であって、読取装置により読み取られた原稿の画像を取得する画像取得手段と、前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段と、を有する。
【発明の効果】
【０００９】
画像の傾きをより精度よく補正できる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】複合機が行う原稿から読み取られた画像の傾き補正の概略を説明する図の一例である。
【図２】複合機のハードウェア構成図の一例である。
【図３】複合機の一実施例のソフトウェア構成図である。
【図４】複合機を使用して原稿Ｍが読み取られて生成される画像の傾きについて説明する図の一例である。
【図５】傾き角の検出と傾きの補正を説明する図の一例である。
【図６】傾き角の検出方法を模式的に説明する図の一例である。
【図７】複合機が電子透かしの読み取りに関して有する機能ブロック図の一例である。
【図８】複合機の全体的な動作を説明するシーケンス図の一例である。
【図９】画像解析部による画像の傾き角の検出手順を説明する図の一例である。
【図１０】画像の連続点を説明する図の一例である。
【図１１】連続点から直線を検出する手順を示すフローチャート図の一例である。
【図１２】直線Ｌの角度の算出方法を説明する図の一例である。
【図１３】スキュー影の検出を説明する図の一例である。
【図１４】角度ごとにカウントされた直線の数と、スキュー影の数の一例を示す図である。
【図１５】画像解析部がスキュー影の検出結果を検証して傾き角を決定するまでの手順を示すフローチャート図の一例である。
【図１６】画像から検出される直交線について説明する図の一例である。
【図１７】複合機の動作手順を示すフローチャート図の一例である。
【図１８】元画像に対し微小点が配置される配置位置を説明する図の一例である。
【図１９】複合機が電子透かしを復号する際の動作手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら説明する。
図１は、複合機１００が行う原稿から読み取られた画像の傾き補正の概略を説明する図の一例である。
（１）複合機１００は電子透かし２００が形成された原稿Ｍを読取装置で読み取る。ユーザが原稿Ｍをコンタクトガラスに設置する際に原稿Ｍを傾かせてしまったり、ＡＤＦ（Auto Document Feeder）が原稿Ｍをコンタクトガラスに送り出す際に傾いてしまう場合がある。
（２）このため原稿Ｍを読み取って生成した画像も傾いてしまう（スキューする）。そこで、本実施形態の複合機１００は２つの方法で画像の傾き角を検出する。傾き角は主走査方向又は副走査方向などの基準となる方向に対し画像が傾いた角度をいう。
（３）複合機１００は２つの方法で検出された傾き角を統合して最終的な画像の傾き角を決定する。
（４）複合機１００は（３）の統合により決定した傾き角に基づいて画像の傾き補正を行う。傾き補正とは、画像の傾き角を少なくすること、好ましくはゼロにすることをいう。
【００１２】
このように、複数の方法で傾き角を検出し、複数の傾き角を統合して画像の傾き角を決定するので、傾き角の検出精度を向上させることができる。この結果、原稿の画像の傾きを精度よく補正でき、電子透かしが有する微小点の検出精度を向上できる。
【００１３】
＜用語について＞
複数の傾き角を統合するとは、それぞれの方法で算出された傾き角を１つに統べ合わせることをいう。あるいは、複数の傾き角を組み合わせて１つの傾き角を決定する、複数の傾き角を総合することで確からしい１つの傾き角を決定するなどと表現してもよい。
【００１４】
なお、本実施形態では画像と画像データを厳密には区別しない。しかしながら、画像とは視覚的な把握が可能な像をいい、画像データとはこの像を表すためのデータを言う。
【００１５】
＜構成例＞
図２は、複合機１００のハードウェア構成図の一例である。複合機１００はコントローラ３２０を有する。コントローラ３２０は、ＣＰＵ３０１、ＡＳＩＣ（Application Specific Integrated Circuit）３０５、ＳＤＲＡＭ３０２、フラッシュメモリ３０３、ＨＤＤ３０４、及び、ＮＩＣ３０６を有する。図２に示すように複合機１００は情報処理装置としての機能を有する。
【００１６】
ＡＳＩＣ３０５は、ＣＰＵインタフェース、ＳＤＲＡＭインタフェース、ローカルバスインタフェース、ＰＣＩバスインタフェース、ＭＡＣ（Media Access Controller）、及び、ＨＤＤインタフェースなどを備える多機能デバイスボードである。
【００１７】
ＡＳＩＣ３０５が有するＴＭＰ（Trusted Platform Module）チップ３４０は暗号キーを有しており、暗号キーがＴＭＰチップ３４０自身で管理されている。このため、外部からの攻撃にも強く、ＨＤＤ３０４のデータの盗難やデータの解析による情報流出のリスクが低い。
【００１８】
ＣＰＵ３０１は、ＡＳＩＣ３０５を介して各種プログラムをＨＤＤ３０４から読み取り実行する。ＳＤＲＡＭ３０２は、各種プログラムを記憶するプログラムメモリや、ＣＰＵ３０１が各種プログラムを実行する際に使用するワークメモリ等として機能する。なお、ＳＤＲＡＭ３０２の代わりに、ＤＲＡＭやＳＲＡＭを用いてもよい。
【００１９】
フラッシュメモリ３０３は不揮発性メモリであり、複合機１００を起動させるブートローダ（ブートプログラム）やＯＳを記憶する。また、各プログラムを記憶するアプリケーションメモリとして機能する。また、フラッシュメモリ３０３は、各サービス（コピーサービス、プリントサービス、ファクシミリサービス）のアプリケーションを記憶するサービスメモリとして機能する。更に、フラッシュメモリ３０３は、ファームウェアを記憶するファームメモリ、ネットワークアドレスや機種機番等を記憶するデータメモリとして機能する。
【００２０】
なお、フラッシュメモリ３０３の代わりに、ＲＡＭと電池を利用したバックアップ回路を集積した不揮発性ＲＡＭや、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の他の不揮発性メモリを使用してもよい。
【００２１】
ＨＤＤ３０４は、複合機１００の電源のオン、オフに関わりなくデータを記憶する不揮発性の記憶媒体である。ＨＤＤ３０４は、フラッシュメモリ３０３内に記憶されたプログラム及びデータ以外のプログラム及びデータを記録する。なお、ＨＤＤ３０４は、ファームメモリとして使用してもよい。
【００２２】
ＮＩＣ３０６は、ＬＡＮなどのネットワークを介して各種の機器と通信するための通信装置である。コントローラ３２０には、操作パネル３０７が接続されている。操作パネル３０７は、各種の操作キー、表示装置としてのＬＣＤ（Liquid crystal display）又はＣＲＴの文字表示器及びタッチパネルを有し、ユーザＵが複合機１００に各種指示を入力する際に用いられる。
【００２３】
更に、コントローラ３２０には、ＰＣＩバス３３０を介して、ファックス制御ユニット３０８、記憶媒体３０９ａが脱着可能なＵＳＢ３０９、ＩＥＥＥ１３９４（３１０）、プロッタエンジン３１１、スキャナエンジン３１２及びＢＬＥモジュール３１３が接続されている。これにより、複合機１００では、コピーサービス、プリントサービス、ファクシミリサービス等の各サービスを提供することができる。プロッタエンジン３１１は電子写真方式又はインクジェット方式のいずれの方式を採用していてもよい。
【００２４】
なお、図示する構成は一例に過ぎず、複合機１００のハードウェア構成は図２の構成には限られない。例えば、ＮＩＣ３０６はＰＣＩバス３３０に接続されていてもよい。また、ＮＩＣ３０６は有線でネットワークＮに接続される他、無線ＬＡＮなど無線で接続されていてもよい。ＮＩＣ３０６が複数あってもよい。
【００２５】
更に、ＮＩＣ３０６に代えて又はＮＩＣ３０６と共に、電話回線網に接続するＤＳＵ（Digital Service Unit）又はモデムを有していてもよい。携帯電話網に接続する通信装置を有していてもよい。
【００２６】
図３は、複合機１００の一実施例のソフトウェア構成図である。複合機１００のアプリケーション層５，サービス層６、及びハンドラ層７を有する。サービス層６とハンドラ層７をプラットフォーム８と称する。
【００２７】
複合機１００は、アプリケーション層５及びプラットフォーム８のプログラムを、ＨＤＤ３０４やフラッシュメモリ３０３などから読み出し、読み出した各プログラムをＳＤＲＡＭ３０２に転送して実行する。また、アプリケーション層５とプラットフォーム８は、ＵＮＩＸ（登録商標）などのオペレーティングシステム（以下、ＯＳという）上で実行されている。
【００２８】
アプリケーション層５は、ユーザサービスに関する処理を行う各種のアプリケーション有する。例えば、プリントアプリ１１、コピーアプリ１２、ファックスアプリ１３及びスキャナアプリ１４、ファイル管理アプリ１５など、それぞれ固有の処理を行うプログラムを有する。
【００２９】
また、プラットフォーム８のサービス層６は、アプリケーション層５からの処理要求を解釈してハードウェア資源（図２に示されたハードウェア構成のいずれか）の獲得要求を発生する。また、サービス層６は、１つ以上のハードウェア資源の管理を行ってサービス層6からの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭという）３１を有する。また、サービス層６は、ＳＲＭ３１からの獲得要求に応じてハードウェア資源の管理を行うハンドラ層７を有する。
【００３０】
サービス層6は、ネットワークコントロールサービス（以下、ＮＣＳという）２１、オペレーションパネルコントロールサービス（以下、ＯＣＳという）２２、ファックスコントロールサービス（以下、ＦＣＳという）２３、メモリコントロールサービス（以下、ＭＣＳという）２４、エンジンコントロールサービス（以下、ＥＣＳという）２５、デリバリーコントロールサービス（以下、ＤＣＳという）２６、サーティフィケイションアンドチャージコントロールサービス（以下、CCSという）２７、ログコントロールサービス（以下、LCSという）２８、ユーザインフォメーションコントロールサービス（以下、ＵＣＳという）２９、システムコントロールサービス（以下、ＳＣＳという）３０など、一つ以上のサービスモジュールを含むように構成されている。
【００３１】
なお、プラットフォーム８は予め定義されている関数により、アプリケーション層５からの処理要求を受信可能とするＡＰＩ（Application Interface）４５を有するように構成されている。ＯＳは、アプリケーション層５及びプラットフォーム８の各ソフトウェアをプロセスとして並列実行する。
【００３２】
ＮＣＳ２１のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００３３】
ＯＣＳ２２のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。ＦＣＳ２３のプロセスは、アプリケーション層５からＰＳＴＮ又はＩＳＤＮ網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録／引用、ファックス読み取り、ファックス受信印刷などを行うためのＡＰＩを提供する。
【００３４】
ＭＣＳ２４のプロセスは、メモリの取得及び開放、ＨＤＤ３０４の利用などのメモリ制御を行う。ＥＣＳ２５のプロセスは、ハードウェア資源のうちプロッタエンジン３１１、スキャナエンジン３１２などの制御を行う。
【００３５】
ＤＣＳ２６のプロセスは、蓄積文書の配信などの制御を行う。ＣＣＳ２７のプロセスは、認証と課金に関する制御を行う。ＬＣＳ２８のプロセスは、ログ情報の管理と保持を行う。ＵＣＳ２９のプロセスは、ユーザ情報の管理を行うものである。ＳＣＳ３０のプロセスは、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【００３６】
ＳＲＭ３１は、ＳＣＳ３０と共にシステムの制御及びハードウェア資源の管理を行うものである。例えばＳＲＭ３１のプロセスは、プロッタエンジンなどのハードウェア資源を利用する上位層からの獲得要求にしたがって調停を行い、実行制御する。具体的に、ＳＲＭ３１は獲得要求されたハードウェア資源が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源が利用可能である旨を上位層に通知する。また、ＳＲＭ３１は上位層からの獲得要求に対してハードウェア資源を利用するためのスケジューリングを行い、要求内容（例えば、プロッタエンジン３１１による紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００３７】
また、ハンドラ層７は、ハードウェア資源に含まれるファックス制御ユニット３０８の管理を行うファックスコントロールユニットハンドラ（以下、ＦＣＵＨという）４１と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ（以下、ＩＭＨという）４２とを有する。ＭＥＵ４３は画像変換関連の制御をおこなう。ＳＲＭ３１及びＦＣＵＨ４１は、予め定義されている関数によりハードウェア資源に対する処理要求を送信可能とするエンジンＩ／Ｆを利用して、ハードウェア資源に対する処理要求を行う。
【００３８】
一例として、原稿Ｍの読み取りは、コピーアプリ１２、ファックスアプリ１３及びスキャナアプリ１４にて要求が発生し、複合機１００は、プラットフォーム８を通じて、スキャナエンジン３１２などのハードウェア資源を使用して画像の読み取りを行う。読み取った画像は、ＳＤＲＡＭ３０２に入力され、アプリからの設定もしくは機器設定によりＴＭＰチップ３４０を通じて暗号化されＨＤＤ３０４に記録される。
【００３９】
また、本実施形態では複合機１００を例にして説明するが、複合機１００は原稿Ｍを読み取る機能を有していればよい。このような装置は、読取装置、スキャナ装置等と呼ばれる。また、複合機１００は、画像形成装置、プリンター、複写機、コピー機、又はＭＦＰ（Multifunction Peripheral）などと呼ばれてもよい。
【００４０】
＜読み取った画像の傾きについて＞
図４は、複合機１００を使用して原稿Ｍが読み取られて生成される画像の傾きについて説明する図の一例である。この原稿Ｍには複数の微小点ｄを有する電子透かし２００が形成される。
（１）ユーザＵは複合機１００に、透かし情報を指定した上で電子透かしが形成される文書の印刷を実行する。透かし情報とは符号化により電子透かし２００として形成される情報であり、例えば、文書の作成者、所有者、作成日時、作成場所、作成者の連絡先、リンク先、リンク元、アクセス権、保存期間、などであるが、これらには限られない。
（２）複合機１００はユーザＵが指定した透かし情報を符号化することで微小点ｄに変換して、文書の画像と共に電子透かし２００を原稿Ｍに形成する。複合機１００は原稿Ｍを位置が決まっている領域に分割して各領域の決まった位置に微小点ｄを配置する。
（３）電子透かし２００を読み取る際、複合機１００はＡＤＦなどで原稿Ｍに形成された画像と共に読み取る。
（４）読み取る際に原稿Ｍが傾いて、読み取った画像も傾いてしまう場合がある。図４には元の原稿Ｍと読み取られた画像Ｉが示されている。画像Ｉが傾くことで「Ｒ」という文字も傾くが、同じように微小点ｄの位置も変わってしまう。複合機１００が電子透かし２００を読み取る際も、画像を領域に分割して各領域の決まった位置から微小点ｄを検出する。このため、画像が傾くと微小点ｄも本来の位置からずれてしまうため、微小点ｄを検出できなかったり、Ａの領域の微小点ｄをＢの領域の微小点ｄとして読み取ってしまうなど、微小点ｄを正しく検出できない状況が発生し、複合機１００が透かし情報を正しく抽出（再生）できない場合がある。
【００４１】
＜本実施形態の傾き角の検出＞
図５は、本実施形態の傾き角の検出と傾きの補正を説明する図の一例である。図５（ａ）は、読み取りにより傾いた画像Ｉを示し、図５（ｂ）は傾き補正された画像Ｉを示す。図５（ａ）に示すように、複合機１００は、傾き角の検出の方法の１つとして画像に存在する直線Ｌから画像の傾き角を検出する。この傾き角の分、画像Ｉの傾きを補正することで、複合機１００は本来の位置から微小点ｄを検出でき、透かし情報を抽出することができる。
【００４２】
図６は、本実施形態の傾き角の検出方法を模式的に説明する図の一例である。複合機１００は、２つの方法で傾き角を検出する。
(i) １つめの方法は、画像Ｉの直線Ｌを検出し、角度ごとに各直線Ｌの数をカウントする方法である。
(ii) ２つめの方法は、画像の上下左右端にできるスキュー影Ｓを検出し、スキュー影Ｓの角度を求め、角度ごとに各スキュー影Ｓの数をカウントする方法である。
【００４３】
上記２つの方法を用いて検出した角度を元に、複合機１００は画像Ｉを回転補正することで、原稿Ｍの読み取り時に微小点ｄの検出精度を向上させる。
【００４４】
＜複合機１００の機能について＞
図７は、複合機１００が電子透かし２００の読み取りに関して有する機能ブロック図の一例である。複合機１００は、操作制御部５１、読取制御部５２、画像処理部５３、アプリケーション部５４、画像メモリ管理部５５、及び、画像解析部５６を有する。これら各機能部は、図２に示された各構成要素のいずれかが、ＨＤＤ３０４又はフラッシュメモリ３０３からＳＤＲＡＭ３０２に展開されたプログラムに従ったＣＰＵ３０１からの命令により動作することで実現される機能又は手段である。しかしながら、一部又は全ての機能がＩＣ、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡなどのハードウェア回路によって実現されていてもよい。
【００４５】
操作制御部５１は、図２に示したＣＰＵ３０１がプログラムの命令を実行し操作パネル３０７を制御すること等で実現され、複合機１００に対する各種の操作を受け付ける。
【００４６】
アプリケーション部５４は、図２に示したＣＰＵ３０１がプログラムの命令を実行すること等で実現され、ユーザＵが選択した複合機１００の機能（アプリケーション）に応じた処理を行う。すなわち、アプリケーション部５４は、プリントアプリ１１、コピーアプリ１２、ファックスアプリ１３及びスキャナアプリ１４等であるが、本実施形態ではスキャナアプリ１４が相当する。アプリケーション部５４は原稿Ｍの読み取りのためのスキャナ画面（ＵＩ画面）を生成し操作パネル３０７に表示したり、操作制御部５１を経由してユーザＵが設定した読取条件（解像度、濃淡、原稿Ｍ種類など）を取得する。
【００４７】
読取制御部５２は、図２に示したＣＰＵ３０１がプログラムの命令を実行しスキャナエンジン３１２を制御すること等で実現され、原稿Ｍの読み取りに関する制御を行う。具体的には、ＥＣＳ２５が相当する。読取制御部５２は原稿Ｍを読み取って画像Ｉを生成する。
【００４８】
画像処理部５３は、図２に示したＣＰＵ３０１がプログラムの命令を実行すること等で実現され、生成された画像Ｉを、画像解析部５６が検出した傾き角に基づき補正する。
【００４９】
画像解析部５６は、図２に示したＣＰＵ３０１がプログラムの命令を実行すること等で実現され、生成された画像Ｉの傾き角を検出する。
【００５０】
画像メモリ管理部５５は、図２に示したＣＰＵ３０１がプログラムの命令を実行すること等で実現され、ＨＤＤ３０４などに記憶されている画像Ｉを管理する。
【００５１】
＜動作手順＞
図８は、本実施形態の複合機１００の全体的な動作を説明するシーケンス図の一例である。
S1：ユーザＵは原稿Ｍを複合機１００にセットして、スキャナアプリ１４を選択する。そして、読取条件を設定してスタートキーを押下する。操作制御部５１はこれらの操作を受け付け、アプリケーション部５４に原稿Ｍの読み取りを要求する。この原稿Ｍには電子透かし２００が形成されている。
S2：次に、アプリケーション部５４は、原稿Ｍの読み取りの要求を読取条件などと共に読取制御部５２に要求する。この読み取りの際、原稿Ｍの傾きが発生する。
S3：読取制御部５２は原稿Ｍを読み取って、画像メモリ管理部５５に読み取った画像データを送出する。
【００５２】
S4：画像メモリ管理部５５は、ＨＤＤ３０４などに画像データを記憶させ、また、画像データが蓄積（記憶）されたことを画像処理部５３に通知する。例えば、画像データが記憶されているアドレスなどを通知する。
S5：画像処理部５３は、画像Ｉの補正に必要な傾き角を得るために、画像解析部５６に傾き角の解析を要求する。
S6：画像解析部５６は、画像Ｉを解析し傾き角を検出する。傾き角の検出方法は、図９で説明する。
【００５３】
S7：画像解析部５６は傾き角を画像処理部５３に通知する。
S8：画像処理部５３は、傾き角を元に画像Ｉを補正する。画像Ｉが傾くことは画像Ｉが回転したことを意味するので、画像処理部５３は傾き角だけ画像Ｉを回転させる。回転軸は画像の中心であるため、画像Ｉの中心を軸にして画像Ｉを回転させる。画像Ｉの回転には、例えばアフィン変換などを用いればよい。
S9：画像処理部５３は、補正された画像ＩをＨＤＤ３０４などに記憶させ、処理完了を画像メモリ管理部５５に通知する。
S10〜S12：画像メモリ管理部５５は読み取り結果を操作制御部５１に送信する。複合機１００は以上の処理を、原稿Ｍのページ数分繰り返す。
【００５４】
＜画像解析部による傾き角の検出＞
図９は、画像解析部５６による画像の傾き角の検出手順を説明する図の一例である。以下では、この検出手順にしたがって説明する。
【００５５】
<< 画像上の直線を検出し、角度ごとに直線の数をカウントする方法 >>
ステップＳ１−１〜Ｓ１−３は画像Ｉから１つ以上の直線Ｌを検出して、角度ごとに直線Ｌの数をカウントする方法に関する処理である。
【００５６】
・S1-1
画像解析部５６は、画像Ｉから連続点を探し出す。図１０は画像Ｉの連続点４０２を説明する図の一例である。図１０（ａ）は画像Ｉに現れる直線Ｌの一例を示し、図１０（ｂ）は直線Ｌの拡大図を示す。
【００５７】
図１０（ａ）のような直線Ｌは微小なトナーが定着して形成されているが、スキャナエンジン３１２のラインセンサが読み取ると画素ごとの輝度情報（濃度）として検出される。すなわち、１つの画素に相当するマス目４０１ごとに輝度情報が得られる。連続点４０２とは、画素と画素が繋がっていることを意味するので、画像解析部５６は濃度がゼロでない（白画素でない）画素から8方向を検索し、濃度がゼロでない隣り合った画素を検出する。あるいは、エッジ検出を行ってもよい。エッジを検出することで直線Ｌの輪郭が得られるが、画像に直線Ｌがあるとすれば直線Ｌは輪郭に現れる。
【００５８】
・S1-2
画像解析部５６は図１０（ｂ）のような連続点４０２に特徴的な画素値のパターンを検出することで直線Ｌを検出する。具体的には、一例として以下のような方法が考えられる。
【００５９】
図１１は連続点から直線Ｌを検出する手順を示すフローチャート図の一例である。画像解析部５６は任意の基準点から以下の処理を開始する（Ｓ１０）。基準点とは、連続点の一部の点であればよい。例えば、連続点のうち最もｘ座標とｙ座標が小さい点である。
【００６０】
画像解析部５６は、基準点の周囲の８点（上下左右、上左、上右、下左、下右）を検索し、基準点と同じ色の点を検出する（Ｓ２０）。同じ色とは、カラーで原稿Ｍが読み取られた場合は、ＲＧＢの各画像の濃度が同じことをいい、白黒で原稿Ｍが読み取られた場合は、輝度値が同じことをいう。
【００６１】
基準点の右上と左又は左下が同じ色で他は違う色の場合、画像解析部５６は右上がりの直線と判定する（Ｓ３０）。そして、基準点より右上方向に検索を続ける（Ｓ４０）。
【００６２】
基準点の右下と左又は左上が同じ色で他は違う色の場合、画像解析部５６は右下がりの直線と判定する（Ｓ５０）。そして、基準点より右下方向に検索を続ける（Ｓ６０）。
【００６３】
ステップＳ３０とＳ５０に続いて、閾値よりも連続点が長く続く場合、画像解析部５６は斜め線と見なす（Ｓ７０）。
【００６４】
基準点の右と左が同じ色で他は違う色の場合、画像解析部５６は水平な直線と判定する（Ｓ８０）。この場合、画像Ｉが傾いていない可能性があるか、又は、画像Ｉが傾いていても水平な直線では傾き角を検出できないので、画像解析部５６は処理を終了する（Ｓ１００）。
【００６５】
基準点の周囲に同じ色がない場合、画像解析部５６は直線ではないと判定する（Ｓ９０）。この場合、直線ではないので画像解析部５６は処理を終了する（Ｓ１００）。
【００６６】
ステップＳ７０で斜め線と見なされた連続点４０２が求める直線Ｌである。画像解析部５６は、全ての連続点について図１１の処理を行い、画像Ｉから全ての直線Ｌを検出する。
【００６７】
・S1-3
次に、画像解析部５６は直線Ｌの角度を算出する。図１２は、直線Ｌの角度の算出方法を説明する図の一例である。画像解析部５６は、斜め線と判定された直線Ｌの始点、終点の座標から、Ｘ方向とＹ方向の長さをそれぞれ求める。図１２（ａ）で始点は（１，３）、終点は（１０，７）である。Ｘ方向の長さＬxは１０−１＝９（画素）、Ｙ方向の長さＬｙは７−４＝３（画素）である。
【００６８】
したがって、この直線Ｌの副走査方向（水平方向）に対する角度θと、Ｘ方向の長さＬxと、Ｙ方向の長さＬｙは、図１２（ｂ）に示す関係にある。tanθ＝Ｌｙ/Ｌｘなので、角度θは以下のようにして求められる。
θ＝arctan（Ｌｙ/Ｌｘ）
<<画像の上下左右端にできるスキュー影を検出し、角度ごとにスキュー影の数をカウントする方法>>
図８のステップＳ２−１とＳ２−２は画像Ｉのスキュー影の角度を検出し、角度ごとにスキュー影の数をカウントする方法に関する処理である。
【００６９】
・S2-1
画像解析部５６は、画像Ｉからスキュー影Ｓを検出する。図１３はスキュー影Ｓの検出を説明する図の一例である。図１３（ａ）はスキュー影の検出範囲４１０を示す図の一例である。スキュー影Ｓとは、原稿Ｍの読み取り時に、原稿Ｍの傾きにより原稿Ｍがない部分をスキャナエンジン３１２が読み取ることで形成される領域である。原稿Ｍがないためスキャナエンジン３１２はコンタクトガラス越しに天板の背面に設置されている白板を読み取るが、白板と原稿Ｍの色の違い（双方が白でも同じ白ではない）、原稿Ｍの端部が読み取られることによる境界線、スキャナエンジン３１２が露光のために照射する光源から白板までの距離と原稿Ｍまでの距離との違いなどにより、原稿Ｍがない領域は原稿Ｍとは異なる画素値で読み取られる場合が多い。よって、原稿Ｍの画像部分と原稿Ｍがない部分には濃淡差が生じる。このような濃淡差が現れる領域をスキュー影Ｓという。
【００７０】
図１３（ａ）に示すように、スキュー影Ｓは、画像Ｉの上下左右の端にできることが経験的に知られている。したがって、画像Ｉの上下左右の端部から所定範囲をスキュー影の検出範囲４１０とする。スキュー影の検出範囲４１０は例えば画像Ｉの上下左右の端部から１０〔ｍｍ〕程度などでよい。
【００７１】
図１３（ｂ）は、原稿Ｍが右斜め上に傾いて読み取られた場合に、画像Ｉの上部にできるスキュー影Ｓの例を示す図である。画像解析部５６は、スキュー影の検出範囲４１０から図１３（ｂ）のスキュー影Ｓを検出する。
【００７２】
図１３（ｃ）はスキュー影Ｓの検出方法を説明する図の一例である。画像解析部５６は、スキュー影Ｓによって生じる、画像部分Ｉｐとスキュー影Ｓとの濃淡差を検出する。具体的には、以下の２つの方法のいずれか又は両方を使用する。
・濃淡差を直接検出し、濃淡差のある場所Ｐをいくつか決定してスキュー影Ｓと画像部分Ｉｐとの境界を検出する。
・直線の検出（スキュー影Ｓと原稿Ｍの画像部分Ｉｐとの境界４２０に生じる直線を検出する）。
【００７３】
濃淡差の検出について説明する。画像解析部５６は、スキュー影の検出範囲４１０において画像Ｉの辺に垂直な方向（図１３（ｃ）のＹ方向）に画素値を抽出する。原稿Ｍの画像部分Ｉｐが白でありスキュー影Ｓが白でないとすると、図１３（ｄ）に示すように急に濃度が上がる場所Ｐがある。急に濃度が上がる場所Ｐはスキュー影Ｓの始まりである。画像解析部５６は、Ｙ方向の一定の画素数で濃度の傾きを求める処理をＹ方向に１画素ずつずらしながら繰り返す。傾きが閾値以上になったＹ方向の場所Ｐをスキュー影Ｓの始まりに決定する。
【００７４】
場所Ｐを画像データの辺の方向（図１３（ｃ）のＸ方向）でいくつか行うと複数の場所Ｐが求められるので、複数の場所Ｐに対し回帰直線を求めることなどで境界４２０を検出する。この回帰直線の傾きがスキュー影Ｓの角度である。
【００７５】
次に、直線の検出について説明する。画像解析部５６は、例えば、図９のステップＳ１−２と同様に連続点を探すことで直線を検出する。直線を求めた後の角度の求め方はＳ１−３と同様でよい。あるいは、スキュー影の検出範囲４１０においてエッジ検出を行う。そして、ハフ変換を行い直線を検出する。この直線の角度がスキュー影Ｓの角度である。
【００７６】
<<角度ごとの直線の数とスキュー影の数の統合>>
・S3
次に、画像解析部５６は上記(i)(ii)の方法でそれぞれ検出された直線Ｌの角度及びスキュー影Ｓの角度を角度ごとにカウントする。そして、それぞれの方法でカウントされた角度の数を統合する。具体的には、最も多い角度を画像Ｉの傾き角として決定する。
【００７７】
図１４は、角度ごとにカウントされた直線Ｌの数と、スキュー影Ｓの数の一例を示す図である。画像解析部５６は、例えば直線Ｌとスキュー影Ｓの角度を小数第４位まで算出し、各角度ごとに直線Ｌとスキュー影の数をカウントする。角度の最大値としては１０度程度まであれば十分である。図１４の例では０．７８００度において、直線Ｌの数が５８、スキュー影Ｓの数が２なので、合計すると６０になる。この６０という数値が全ての角度において最大なので、画像解析部５６は画像Ｉの傾き角を０．７８００度に決定する。
【００７８】
なお、角度の有効桁数を小数第２位や小数第３位としてもよい。これにより、１つの角度に直線Ｌとスキュー影Ｓの数が集中しやすくなる。すなわち、画像Ｉの傾き角を決定しやすくなる。あるいは、角度の有効桁数を小数第５位以上としてもよい。この場合は、より高い分解能で画像Ｉの傾き角を決定できる。
【００７９】
また、画像解析部５６は、直線Ｌの数とスキュー影Ｓの数に重み付けを付与してもよい。まず、直線Ｌの数とスキュー影Ｓの数は検出される数が大きく異なる。また、検出される直線Ｌは原稿Ｍにおいて水平線又は垂直線であった線ばかりではないのに対し、検出されたスキュー影Ｓは原稿Ｍの辺（水平又は垂直）の傾きを表す。このため、例えば、スキュー影Ｓの数を５０倍し、直線Ｌの数を１倍する。図１４の例だと、0.7800度のポイントが158、0.7801度のポイントが92となるため、決定される傾き角に変更はない。しかし、直線Ｌの数とスキュー影Ｓの数の分布によっては、重み付けを付与することでより正確な傾き角を決定できる。
【００８０】
＜変形例＞
いくつかの変形例を説明する。
【００８１】
<<スキュー影の検証>>
スキュー影Ｓは原稿Ｍの辺（水平又は垂直）の傾きを表すので画像Ｉの傾き角を正確に表すと期待できる。一方、画像Ｉにスキュー影Ｓがはっきりと映っていない場合がある。このため、スキュー影Ｓがはっきりと映っている場合は、スキュー影に基づいて画像Ｉの傾き角を決定することが有効になると考えられる。
【００８２】
図１５は、画像解析部５６がスキュー影Ｓの検出結果を検証して傾き角を決定するまでの手順を示すフローチャート図の一例である。
【００８３】
画像解析部５６は、スキュー影Ｓを検出する（Ｓ１０）。また、画像解析部５６は、スキュー影Ｓの角度を算出する（Ｓ２０）。
【００８４】
そして、スキュー影Ｓの角度を画像Ｉの傾き角の決定に使用してよいか否かを判定する（Ｓ３０）。この判定は、スキュー影Ｓの角度の確からしさに着目して行う。判定の基準として、例えば、画像Ｉの上下左右のスキュー影の検出範囲４１０から求めたスキュー影Ｓの角度がほぼ一致している、濃淡差により検出できた場所Ｐの数が閾値以上である、複数の場所Ｐを直線近似した場合の相関係数が閾値以上である、又は、スキュー影Ｓの角度が想定される範囲内の値となっている、などが挙げられる。これらの基準を満たす場合、スキュー影Ｓの角度を画像Ｉの傾き角の決定に使用してよいと判定する。
【００８５】
ステップＳ３０の判定がＹｅｓの場合、画像解析部５６はスキュー影Ｓの角度だけから傾き角を決定する（Ｓ４０）。すなわち、画像Ｉの直線を検出しないので、画像Ｉの傾き角の決定に要する時間を短縮することが可能である。
【００８６】
ステップＳ３０の判定がＮｏの場合、画像解析部５６は画像Ｉから直線Ｌを検出する処理を行う（Ｓ５０〜Ｓ８０）。このステップＳ５０〜Ｓ８０の処理はステップＳ１−１〜Ｓ１−３、Ｓ３と同様でよい。ステップＳ８０で、確からしくないスキュー影Ｓの角度が統合に使用されるが、スキュー影Ｓの角度の数は少ないので適切な重み付けを設定することで、確からしくないスキュー影Ｓの角度が用いられることの影響を低減できる。例えば、スキュー影Ｓの角度が確からしくない場合は、スキュー影Ｓの数の重み付けを直線Ｌの数の重み付けと同じにする。
【００８７】
このように、図１５の処理によれば、スキュー影Ｓの検出結果が確からしい場合（スキュー影が明瞭な場合）、画像Ｉの傾き角の決定に要する時間を短縮することが可能である。また、スキュー影Ｓがはっきり映っていない場合は、画像Ｉの直線Ｌから傾き角を決定できる。
【００８８】
<<傾き角の決定方法の別の例>>
図１６は、画像から検出される直交線について説明する図の一例である。図１６に示すように、画像から直交線を検出しその傾きを検出することで画像Ｉの直線Ｌの角度を算出してもよい。直交する二本の直線の角度が同じ場合、直交線の傾きを正しく検出できた可能性が高く、画像Ｉの傾き角の検出精度を向上しやすい。
【００８９】
図１６（ａ）に示すように、原稿Ｍには「Ｔ」という文字が形成されている。図１６（ｂ）は原稿Ｍが傾かずに読み取られた画像Ｉの拡大図である。原稿Ｍの二本の直線Ｌ１，Ｌ２が直交している場合は、原稿Ｍが傾いた場合に直線Ｌ１，Ｌ２も同じだけ傾くはずであり、直線Ｌ１，Ｌ２の角度は９０度だけ異なるはずである。
【００９０】
図１６（ｃ）に示すように原稿Ｍが傾いて読み取られる。図１６（ｄ）は原稿Ｍが傾かいて読み取られた画像Ｉの拡大図である。画像解析部５６は以下のようにして直線Ｌ１，Ｌ２の角度を検出する。
a) 画像解析部５６は、交差する二本の直線Ｌ１，Ｌ２を検出し、二本の直線Ｌ１，Ｌ２が直交していることを確認する。直線の検出方法は上記のとおりである。直交しているかどうかは、以下のように判定する。
(i) 直線Ｌ１の始点Ｓ１（xs1、ys1）と終点Ｅ１（xe1、ye1）を結んだ直線を９０度回転させ、仮の縦線を求める。
(ii) 直線Ｌ２の始点Ｓ２（xs2、ys2）、終点Ｅ２（xe2、ye2）を結んだ直線と、仮の縦線の傾きが一致した場合、二本の直線Ｌ１，Ｌ２が直交していると判定できる。
【００９１】
これを、画像上の各直交線に対し行う。なお、一致とは小数点以下の所定桁数が一致すればよく、完全に一致しなくてもよい。
【００９２】
画像Ｉの複数の直交線ごとに角度が得られるので、画像解析部５６は角度ごとに直交線の数を集計できる。以降は図９のステップＳ３と同様に傾き角を決定できる。
【００９３】
＜微小点の配置と微小点の検出について＞
図１７は、複合機１００の動作手順を示すフローチャート図の一例である。図１７のフローチャート図は、例えば、電子透かしを形成した印刷をユーザが行うことでスタートする。
【００９４】
まず、元画像が入力される（Ｓ１０）。元画像とは、原稿Ｍに形成される画像である。すなわち、ＰＣなどから送信された印刷データから元画像が作成されるか、又は、元画像を保持する原稿からスキャンして読み取られる。
【００９５】
次に、複合機１００は、透かし情報を符号化する（Ｓ２０）。
【００９６】
そして、複合機１００は元画像のサイズや解像度により予め定められている座標を元に、配置位置を決定する（Ｓ３０）。例えば、符号化後の透かし情報のサイズが３０バイト(＝240ビット)の場合は、２４０個の配置位置４５１を決める。
【００９７】
次に、複合機１００は、配置位置４５１を中心として矩形領域４５０を生成する（Ｓ４０）。矩形領域４５０の一例を図１８に示す。
【００９８】
次に、複合機１００は、矩形領域４５０の画像に対して二値化処理を行う（Ｓ５０）。これにより、複合機１００は矩形領域４５０ごとに黒画素の割合を求めることができる（Ｓ６０）。黒画素の割合によって黒画素と白画素の配置を変更するためである。黒画素の割合は以下の式で求めることができる。
【００９９】
黒画素の割合  ＝  矩形領域内の黒画素数／矩形領域の画素数
黒画素の割合が黒画素最小閾値thMIN以下の場合、複合機１００は矩形領域４５０がほぼ白色の画像であると判定して、符号化された透かし情報が１の場合、矩形領域４５０の中心に黒色の微小点ｄを配置する（Ｓ７０）。符号化された透かし情報が０の場合は何も配置しない。
【０１００】
黒画素の割合が黒画素最大閾値thMAX以上の場合、複合機１００は矩形領域４５０がほぼ黒画像であると判定して、符号化された透かし情報が１の場合、矩形領域４５０の中心に白色の微小点ｄを配置する（Ｓ８０）。符号化された透かし情報が０の場合は何も配置しない。すなわち、矩形領域４５０がほぼ黒画像の場合、微小点ｄとして黒点が配置されると、画像の黒画素と判定できず、微小点ｄの検出が困難になる。このため、複合機１００はほぼ黒画像の矩形領域４５０に白点を配置する。
【０１０１】
黒画素の割合が、黒画素最小閾値thMINよりも大きく、かつ、黒画素最大閾値thMAXよりも小さい場合、複合機１００は、配置位置４５１に透かし情報を配置しない。
【０１０２】
以上の処理を各矩形領域で行う。複合機１００は各矩形領域４５０に微小点ｄが配置された画像を原稿Ｍとして印刷する（Ｓ９０）。
【０１０３】
図１８は、元画像に対し微小点ｄが配置される配置位置４５１を説明する図の一例である。図１８は元画像又は元画像が印刷される用紙の全体を示す。複合機１００は元画像のサイズや解像度などから微小点ｄの配置位置４５１を決める。例えば、縦方向の解像度を６分割する各分割位置において横方向の解像度を三分割又は四分割する位置が配置位置４５１である。図１８では、元画像の上方から３，２，３，２，３個の配置位置が図示されている。
【０１０４】
この配置位置４５１は一例に過ぎず、元画像又は用紙の全体を正方形に区切ってもよいし、長方形に区切ってもよく、また、円形に区切ってもよい。また、縦又は横の分割数も３や２に限られるものではない。
【０１０５】
このように矩形領域４５０の決定方法が決まっていることで、同じサイズ又は解像度の画像では同じ場所に矩形領域４５０が生成される。したがって、複合機１００は画像Ｉから微小点ｄを読み取ることができる。
【０１０６】
図１９は、複合機１００が電子透かしを復号する際の動作手順を示すフローチャート図の一例である。図１９のフローチャート図は、例えば、画像Ｉの傾きが補正されることでスタートする。なお、図１９の説明では主に図１７との相違を説明する。
【０１０７】
まず、複合機１００は傾きが補正された画像Ｉを取得する（Ｓ１０）。すなわち、画像メモリ管理部５５が管理する画像Ｉを読み出す。
【０１０８】
次に、複合機１００は画像Ｉのサイズや解像度により予め定められている座標を元に、配置位置４５１を決定する（Ｓ３０）。
【０１０９】
次に、複合機１００は、配置位置４５１を中心として矩形領域４５０を作成する（Ｓ４０）。
【０１１０】
次に、複合機１００は、各矩形領域４５０の画像に対して、二値化処理を行う（Ｓ５０）。これにより、矩形領域４５０ごとに黒画素の割合を求めることができる。
【０１１１】
複合機１００は、黒画素の割合を判定する（Ｓ６０）。黒画素の割合が黒画素最小閾値thMIN以下（最小黒画素閾値以下）の場合、複合機１００は矩形領域がほぼ白画像であると判定して、矩形領域４５０の中心の微小点ｄを読み取る（Ｓ７０）。微小点ｄが黒画素なら１と判定し、微小点ｄが白画素なら０と判定する。
【０１１２】
黒画素の割合が黒画素最大閾値thMAX以上（最大黒画素閾値以上）の場合、複合機１００は矩形領域がほぼ黒画像であると判定して、中心の微小点ｄを読み取る（Ｓ８０）。微小点ｄが白画素なら１と判定し、微小点ｄが黒画素なら０と判定する。
【０１１３】
黒画素の割合が、黒画素最小閾値thMINよりも大きく、かつ、黒画素最大閾値thMAXよりも小さい場合、複合機１００は微小点ｄを読み取らない。
【０１１４】
複合機は各矩形領域４５０から読み取った微小点ｄを復号して、透かし情報を取得する（Ｓ９０）。このように、微小点ｄの配置とほぼ同様の手順で電子透かしを読み取ることができる。
【０１１５】
＜まとめ＞
以上説明したように本実施形態の複合機１００は、複数の方法で画像Ｉの傾き角を検出し、複数の傾き角を統合して画像Ｉの傾き角を決定するので、傾き角の検出精度を向上させることができる。この結果、原稿の画像の傾きを精度よく補正でき、電子透かしが有する微小点の検出精度を向上できる。
【０１１６】
<<その他の適用例>>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１１７】
例えば、本実施形態では、２つの方法でそれぞれ検出された角度を統合したが、３つ以上の方法で検出された角度を統合してもよい。３つめの方法として、トンボ線のように予め決まった場所に形成されている水平又は垂直であることが分かっている画像を検出する方法がある。
【０１１８】
また、本実施形態では複合機１００が原稿の読み取り、傾き角の検出、傾き角の補正を行ったが、別々の装置が原稿の読み取り、傾き角の検出、傾き角の補正を行うことをも可能である。例えば、装置１が原稿を読み取り画像を装置２に送信し、装置２が傾き角を検出して装置１に送信し、装置１が傾きを補正するシステム形式が考えられる。また、例えば、装置１が原稿を読み取り画像を装置２に送信し、装置２が傾き角を検出して画像の傾きを補正するシステム形式が考えられる。更に、例えば、装置１が原稿を読み取り画像を装置２に送信し、装置２が傾き角を検出して装置３に送信し、装置３が傾きを補正するシステム形式が考えられる。具体的には、複合機１００の他、ＰＣ（Personal Computer）、サーバ、電子黒板、プロジェクタ、テレビ会議端末などが画像Iの傾き角を検出してよい。
【０１１９】
また、本実施形態では電子透かしの読み取りのために傾き角を補正すると説明したが、傾き補正は複合機１００で一般に行われており、電子透かしの読み取りのため以外に適用可能であることは言うまでもない。
【０１２０】
また、図７などの構成例は、複合機１００による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。複合機１００の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１２１】
なお、読取制御部５２は画像取得手段の一例であり、画像解析部５６は傾き角検出手段の一例である。
【符号の説明】
【０１２２】
５１      操作制御部
５２      読取制御部
５３      画像処理部
５４      アプリケーション部
５５      画像メモリ管理部
５６      画像解析部
１００    複合機
２００    電子透かし
【先行技術文献】
【特許文献】
【０１２３】
【特許文献１】特開平５−２７４４７５号公報
【図１】
2017220708.tif 000003
【図２】
2017220708.tif 000004
【図３】
2017220708.tif 000005
【図４】
2017220708.tif 000006
【図５】
2017220708.tif 000007
【図６】
2017220708.tif 000008
【図７】
2017220708.tif 000009
【図８】
2017220708.tif 000010
【図９】
2017220708.tif 000011
【図１０】
2017220708.tif 000012
【図１１】
2017220708.tif 000013
【図１２】
2017220708.tif 000014
【図１３】
2017220708.tif 000015
【図１４】
2017220708.tif 000016
【図１５】
2017220708.tif 000017
【図１６】
2017220708.tif 000018
【図１７】
2017220708.tif 000019
【図１８】
2017220708.tif 000020
【図１９】
2017220708.tif 000021