JP2017220708A - 情報処理装置、プログラム - Google Patents

情報処理装置、プログラム Download PDF

Info

Publication number
JP2017220708A
JP2017220708A JP2016111735A JP2016111735A JP2017220708A JP 2017220708 A JP2017220708 A JP 2017220708A JP 2016111735 A JP2016111735 A JP 2016111735A JP 2016111735 A JP2016111735 A JP 2016111735A JP 2017220708 A JP2017220708 A JP 2017220708A
Authority
JP
Japan
Prior art keywords
image
angle
inclination angle
information processing
shadow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016111735A
Other languages
English (en)
Inventor
慧 中林
Satoshi Nakabayashi
慧 中林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2016111735A priority Critical patent/JP2017220708A/ja
Publication of JP2017220708A publication Critical patent/JP2017220708A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】画像の傾きをより精度よく補正できる情報処理装置を提供すること。【解決手段】原稿を読み取って生成される画像の傾き角を検出する情報処理装置100であって、読取装置により読み取られた原稿の画像を取得する画像取得手段52と、前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段56と、を有する。【選択図】図1

Description

本発明は、情報処理装置及びプログラムに関する。
紙媒体による情報流出のリスクに対する関心が高まっている。例えば、JNSA2013年情報セキュリティインシデントに関する調査報告書では、情報の流出経路の67.7%が紙媒体、16.4%が可搬媒体(メール/USB等)と報告されている。複合機も可搬媒体の脱着が可能であり2つの流出経路を合わせると合計84.1%という高い比率を占めている。可搬媒体の脱着が可能でない複合機の場合でも67.7%の流出経路に複合機が関わるおそれがあることになる。
従来から、複合機においては地紋印刷という印刷媒体の背景に薄い濃度で情報を印刷する機能が知られている。地紋印刷が施された印刷媒体が複写されると社外秘などの文字が浮かび上がったり、元の文書を判読しにくくしたりすることができる。しかし、地紋印刷はユーザが肉眼で目視可能なため、改ざんしやすいことや文書のデザイン性が低下するなどの不都合がある。
これに対し、人間が目視しにくい情報を複合機が印刷媒体に印刷しておく技術として、電子透かしという技術が知られている。電子透かしとは、画像に関する情報を画像と共に印刷媒体に形成する技術又は形成された情報をいう。電子透かしは目視しにくい微小点を、領域に分割された印刷対象の画像の各領域に配置することで印刷媒体に形成される。このため、電子透かしが形成された原稿を複合機が読み取る際に原稿が傾くと、読み取られる画像も傾くため微小点の位置もずれ、複合機が電子透かしを正確に読み取れない場合があった。
このような不都合に対し、読み取った画像の傾きを補正する技術が知られている(例えば、特許文献1参照。)。特許文献1には、読み取った原稿の画像の傾き角を算出し、算出された傾き角に応じて画像の傾きを補正する方法が開示されている。
しかしながら、特許文献1に開示された技術では、傾き角の補正が不十分な場合があり、電子透かしが有する微小点を正確に検出できない場合があるという問題がある。
本発明は、上記課題に鑑み、画像の傾きをより精度よく補正できる情報処理装置を提供することを目的とする。
本発明は、原稿を読み取って生成される画像の傾き角を検出する情報処理装置であって、読取装置により読み取られた原稿の画像を取得する画像取得手段と、前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段と、を有する。
画像の傾きをより精度よく補正できる情報処理装置を提供することができる。
複合機が行う原稿から読み取られた画像の傾き補正の概略を説明する図の一例である。 複合機のハードウェア構成図の一例である。 複合機の一実施例のソフトウェア構成図である。 複合機を使用して原稿Mが読み取られて生成される画像の傾きについて説明する図の一例である。 傾き角の検出と傾きの補正を説明する図の一例である。 傾き角の検出方法を模式的に説明する図の一例である。 複合機が電子透かしの読み取りに関して有する機能ブロック図の一例である。 複合機の全体的な動作を説明するシーケンス図の一例である。 画像解析部による画像の傾き角の検出手順を説明する図の一例である。 画像の連続点を説明する図の一例である。 連続点から直線を検出する手順を示すフローチャート図の一例である。 直線Lの角度の算出方法を説明する図の一例である。 スキュー影の検出を説明する図の一例である。 角度ごとにカウントされた直線の数と、スキュー影の数の一例を示す図である。 画像解析部がスキュー影の検出結果を検証して傾き角を決定するまでの手順を示すフローチャート図の一例である。 画像から検出される直交線について説明する図の一例である。 複合機の動作手順を示すフローチャート図の一例である。 元画像に対し微小点が配置される配置位置を説明する図の一例である。 複合機が電子透かしを復号する際の動作手順を示すフローチャート図の一例である。
以下、本発明を実施するための形態について図面を参照しながら説明する。
図1は、複合機100が行う原稿から読み取られた画像の傾き補正の概略を説明する図の一例である。
(1)複合機100は電子透かし200が形成された原稿Mを読取装置で読み取る。ユーザが原稿Mをコンタクトガラスに設置する際に原稿Mを傾かせてしまったり、ADF(Auto Document Feeder)が原稿Mをコンタクトガラスに送り出す際に傾いてしまう場合がある。
(2)このため原稿Mを読み取って生成した画像も傾いてしまう(スキューする)。そこで、本実施形態の複合機100は2つの方法で画像の傾き角を検出する。傾き角は主走査方向又は副走査方向などの基準となる方向に対し画像が傾いた角度をいう。
(3)複合機100は2つの方法で検出された傾き角を統合して最終的な画像の傾き角を決定する。
(4)複合機100は(3)の統合により決定した傾き角に基づいて画像の傾き補正を行う。傾き補正とは、画像の傾き角を少なくすること、好ましくはゼロにすることをいう。
このように、複数の方法で傾き角を検出し、複数の傾き角を統合して画像の傾き角を決定するので、傾き角の検出精度を向上させることができる。この結果、原稿の画像の傾きを精度よく補正でき、電子透かしが有する微小点の検出精度を向上できる。
<用語について>
複数の傾き角を統合するとは、それぞれの方法で算出された傾き角を1つに統べ合わせることをいう。あるいは、複数の傾き角を組み合わせて1つの傾き角を決定する、複数の傾き角を総合することで確からしい1つの傾き角を決定するなどと表現してもよい。
なお、本実施形態では画像と画像データを厳密には区別しない。しかしながら、画像とは視覚的な把握が可能な像をいい、画像データとはこの像を表すためのデータを言う。
<構成例>
図2は、複合機100のハードウェア構成図の一例である。複合機100はコントローラ320を有する。コントローラ320は、CPU301、ASIC(Application Specific Integrated Circuit)305、SDRAM302、フラッシュメモリ303、HDD304、及び、NIC306を有する。図2に示すように複合機100は情報処理装置としての機能を有する。
ASIC305は、CPUインタフェース、SDRAMインタフェース、ローカルバスインタフェース、PCIバスインタフェース、MAC(Media Access Controller)、及び、HDDインタフェースなどを備える多機能デバイスボードである。
ASIC305が有するTMP(Trusted Platform Module)チップ340は暗号キーを有しており、暗号キーがTMPチップ340自身で管理されている。このため、外部からの攻撃にも強く、HDD304のデータの盗難やデータの解析による情報流出のリスクが低い。
CPU301は、ASIC305を介して各種プログラムをHDD304から読み取り実行する。SDRAM302は、各種プログラムを記憶するプログラムメモリや、CPU301が各種プログラムを実行する際に使用するワークメモリ等として機能する。なお、SDRAM302の代わりに、DRAMやSRAMを用いてもよい。
フラッシュメモリ303は不揮発性メモリであり、複合機100を起動させるブートローダ(ブートプログラム)やOSを記憶する。また、各プログラムを記憶するアプリケーションメモリとして機能する。また、フラッシュメモリ303は、各サービス(コピーサービス、プリントサービス、ファクシミリサービス)のアプリケーションを記憶するサービスメモリとして機能する。更に、フラッシュメモリ303は、ファームウェアを記憶するファームメモリ、ネットワークアドレスや機種機番等を記憶するデータメモリとして機能する。
なお、フラッシュメモリ303の代わりに、RAMと電池を利用したバックアップ回路を集積した不揮発性RAMや、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の他の不揮発性メモリを使用してもよい。
HDD304は、複合機100の電源のオン、オフに関わりなくデータを記憶する不揮発性の記憶媒体である。HDD304は、フラッシュメモリ303内に記憶されたプログラム及びデータ以外のプログラム及びデータを記録する。なお、HDD304は、ファームメモリとして使用してもよい。
NIC306は、LANなどのネットワークを介して各種の機器と通信するための通信装置である。コントローラ320には、操作パネル307が接続されている。操作パネル307は、各種の操作キー、表示装置としてのLCD(Liquid crystal display)又はCRTの文字表示器及びタッチパネルを有し、ユーザUが複合機100に各種指示を入力する際に用いられる。
更に、コントローラ320には、PCIバス330を介して、ファックス制御ユニット308、記憶媒体309aが脱着可能なUSB309、IEEE1394(310)、プロッタエンジン311、スキャナエンジン312及びBLEモジュール313が接続されている。これにより、複合機100では、コピーサービス、プリントサービス、ファクシミリサービス等の各サービスを提供することができる。プロッタエンジン311は電子写真方式又はインクジェット方式のいずれの方式を採用していてもよい。
なお、図示する構成は一例に過ぎず、複合機100のハードウェア構成は図2の構成には限られない。例えば、NIC306はPCIバス330に接続されていてもよい。また、NIC306は有線でネットワークNに接続される他、無線LANなど無線で接続されていてもよい。NIC306が複数あってもよい。
更に、NIC306に代えて又はNIC306と共に、電話回線網に接続するDSU(Digital Service Unit)又はモデムを有していてもよい。携帯電話網に接続する通信装置を有していてもよい。
図3は、複合機100の一実施例のソフトウェア構成図である。複合機100のアプリケーション層5,サービス層6、及びハンドラ層7を有する。サービス層6とハンドラ層7をプラットフォーム8と称する。
複合機100は、アプリケーション層5及びプラットフォーム8のプログラムを、HDD304やフラッシュメモリ303などから読み出し、読み出した各プログラムをSDRAM302に転送して実行する。また、アプリケーション層5とプラットフォーム8は、UNIX(登録商標)などのオペレーティングシステム(以下、OSという)上で実行されている。
アプリケーション層5は、ユーザサービスに関する処理を行う各種のアプリケーション有する。例えば、プリントアプリ11、コピーアプリ12、ファックスアプリ13及びスキャナアプリ14、ファイル管理アプリ15など、それぞれ固有の処理を行うプログラムを有する。
また、プラットフォーム8のサービス層6は、アプリケーション層5からの処理要求を解釈してハードウェア資源(図2に示されたハードウェア構成のいずれか)の獲得要求を発生する。また、サービス層6は、1つ以上のハードウェア資源の管理を行ってサービス層6からの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)31を有する。また、サービス層6は、SRM31からの獲得要求に応じてハードウェア資源の管理を行うハンドラ層7を有する。
サービス層6は、ネットワークコントロールサービス(以下、NCSという)21、オペレーションパネルコントロールサービス(以下、OCSという)22、ファックスコントロールサービス(以下、FCSという)23、メモリコントロールサービス(以下、MCSという)24、エンジンコントロールサービス(以下、ECSという)25、デリバリーコントロールサービス(以下、DCSという)26、サーティフィケイションアンドチャージコントロールサービス(以下、CCSという)27、ログコントロールサービス(以下、LCSという)28、ユーザインフォメーションコントロールサービス(以下、UCSという)29、システムコントロールサービス(以下、SCSという)30など、一つ以上のサービスモジュールを含むように構成されている。
なお、プラットフォーム8は予め定義されている関数により、アプリケーション層5からの処理要求を受信可能とするAPI(Application Interface)45を有するように構成されている。OSは、アプリケーション層5及びプラットフォーム8の各ソフトウェアをプロセスとして並列実行する。
NCS21のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
OCS22のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。FCS23のプロセスは、アプリケーション層5からPSTN又はISDN網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録/引用、ファックス読み取り、ファックス受信印刷などを行うためのAPIを提供する。
MCS24のプロセスは、メモリの取得及び開放、HDD304の利用などのメモリ制御を行う。ECS25のプロセスは、ハードウェア資源のうちプロッタエンジン311、スキャナエンジン312などの制御を行う。
DCS26のプロセスは、蓄積文書の配信などの制御を行う。CCS27のプロセスは、認証と課金に関する制御を行う。LCS28のプロセスは、ログ情報の管理と保持を行う。UCS29のプロセスは、ユーザ情報の管理を行うものである。SCS30のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
SRM31は、SCS30と共にシステムの制御及びハードウェア資源の管理を行うものである。例えばSRM31のプロセスは、プロッタエンジンなどのハードウェア資源を利用する上位層からの獲得要求にしたがって調停を行い、実行制御する。具体的に、SRM31は獲得要求されたハードウェア資源が利用可能であるか(他の獲得要求により利用されていないかどうか)を判定し、利用可能であれば獲得要求されたハードウェア資源が利用可能である旨を上位層に通知する。また、SRM31は上位層からの獲得要求に対してハードウェア資源を利用するためのスケジューリングを行い、要求内容(例えば、プロッタエンジン311による紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
また、ハンドラ層7は、ハードウェア資源に含まれるファックス制御ユニット308の管理を行うファックスコントロールユニットハンドラ(以下、FCUHという)41と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ(以下、IMHという)42とを有する。MEU43は画像変換関連の制御をおこなう。SRM31及びFCUH41は、予め定義されている関数によりハードウェア資源に対する処理要求を送信可能とするエンジンI/Fを利用して、ハードウェア資源に対する処理要求を行う。
一例として、原稿Mの読み取りは、コピーアプリ12、ファックスアプリ13及びスキャナアプリ14にて要求が発生し、複合機100は、プラットフォーム8を通じて、スキャナエンジン312などのハードウェア資源を使用して画像の読み取りを行う。読み取った画像は、SDRAM302に入力され、アプリからの設定もしくは機器設定によりTMPチップ340を通じて暗号化されHDD304に記録される。
また、本実施形態では複合機100を例にして説明するが、複合機100は原稿Mを読み取る機能を有していればよい。このような装置は、読取装置、スキャナ装置等と呼ばれる。また、複合機100は、画像形成装置、プリンター、複写機、コピー機、又はMFP(Multifunction Peripheral)などと呼ばれてもよい。
<読み取った画像の傾きについて>
図4は、複合機100を使用して原稿Mが読み取られて生成される画像の傾きについて説明する図の一例である。この原稿Mには複数の微小点dを有する電子透かし200が形成される。
(1)ユーザUは複合機100に、透かし情報を指定した上で電子透かしが形成される文書の印刷を実行する。透かし情報とは符号化により電子透かし200として形成される情報であり、例えば、文書の作成者、所有者、作成日時、作成場所、作成者の連絡先、リンク先、リンク元、アクセス権、保存期間、などであるが、これらには限られない。
(2)複合機100はユーザUが指定した透かし情報を符号化することで微小点dに変換して、文書の画像と共に電子透かし200を原稿Mに形成する。複合機100は原稿Mを位置が決まっている領域に分割して各領域の決まった位置に微小点dを配置する。
(3)電子透かし200を読み取る際、複合機100はADFなどで原稿Mに形成された画像と共に読み取る。
(4)読み取る際に原稿Mが傾いて、読み取った画像も傾いてしまう場合がある。図4には元の原稿Mと読み取られた画像Iが示されている。画像Iが傾くことで「R」という文字も傾くが、同じように微小点dの位置も変わってしまう。複合機100が電子透かし200を読み取る際も、画像を領域に分割して各領域の決まった位置から微小点dを検出する。このため、画像が傾くと微小点dも本来の位置からずれてしまうため、微小点dを検出できなかったり、Aの領域の微小点dをBの領域の微小点dとして読み取ってしまうなど、微小点dを正しく検出できない状況が発生し、複合機100が透かし情報を正しく抽出(再生)できない場合がある。
<本実施形態の傾き角の検出>
図5は、本実施形態の傾き角の検出と傾きの補正を説明する図の一例である。図5(a)は、読み取りにより傾いた画像Iを示し、図5(b)は傾き補正された画像Iを示す。図5(a)に示すように、複合機100は、傾き角の検出の方法の1つとして画像に存在する直線Lから画像の傾き角を検出する。この傾き角の分、画像Iの傾きを補正することで、複合機100は本来の位置から微小点dを検出でき、透かし情報を抽出することができる。
図6は、本実施形態の傾き角の検出方法を模式的に説明する図の一例である。複合機100は、2つの方法で傾き角を検出する。
(i) 1つめの方法は、画像Iの直線Lを検出し、角度ごとに各直線Lの数をカウントする方法である。
(ii) 2つめの方法は、画像の上下左右端にできるスキュー影Sを検出し、スキュー影Sの角度を求め、角度ごとに各スキュー影Sの数をカウントする方法である。
上記2つの方法を用いて検出した角度を元に、複合機100は画像Iを回転補正することで、原稿Mの読み取り時に微小点dの検出精度を向上させる。
<複合機100の機能について>
図7は、複合機100が電子透かし200の読み取りに関して有する機能ブロック図の一例である。複合機100は、操作制御部51、読取制御部52、画像処理部53、アプリケーション部54、画像メモリ管理部55、及び、画像解析部56を有する。これら各機能部は、図2に示された各構成要素のいずれかが、HDD304又はフラッシュメモリ303からSDRAM302に展開されたプログラムに従ったCPU301からの命令により動作することで実現される機能又は手段である。しかしながら、一部又は全ての機能がIC、LSI、ASIC、FPGAなどのハードウェア回路によって実現されていてもよい。
操作制御部51は、図2に示したCPU301がプログラムの命令を実行し操作パネル307を制御すること等で実現され、複合機100に対する各種の操作を受け付ける。
アプリケーション部54は、図2に示したCPU301がプログラムの命令を実行すること等で実現され、ユーザUが選択した複合機100の機能(アプリケーション)に応じた処理を行う。すなわち、アプリケーション部54は、プリントアプリ11、コピーアプリ12、ファックスアプリ13及びスキャナアプリ14等であるが、本実施形態ではスキャナアプリ14が相当する。アプリケーション部54は原稿Mの読み取りのためのスキャナ画面(UI画面)を生成し操作パネル307に表示したり、操作制御部51を経由してユーザUが設定した読取条件(解像度、濃淡、原稿M種類など)を取得する。
読取制御部52は、図2に示したCPU301がプログラムの命令を実行しスキャナエンジン312を制御すること等で実現され、原稿Mの読み取りに関する制御を行う。具体的には、ECS25が相当する。読取制御部52は原稿Mを読み取って画像Iを生成する。
画像処理部53は、図2に示したCPU301がプログラムの命令を実行すること等で実現され、生成された画像Iを、画像解析部56が検出した傾き角に基づき補正する。
画像解析部56は、図2に示したCPU301がプログラムの命令を実行すること等で実現され、生成された画像Iの傾き角を検出する。
画像メモリ管理部55は、図2に示したCPU301がプログラムの命令を実行すること等で実現され、HDD304などに記憶されている画像Iを管理する。
<動作手順>
図8は、本実施形態の複合機100の全体的な動作を説明するシーケンス図の一例である。
S1:ユーザUは原稿Mを複合機100にセットして、スキャナアプリ14を選択する。そして、読取条件を設定してスタートキーを押下する。操作制御部51はこれらの操作を受け付け、アプリケーション部54に原稿Mの読み取りを要求する。この原稿Mには電子透かし200が形成されている。
S2:次に、アプリケーション部54は、原稿Mの読み取りの要求を読取条件などと共に読取制御部52に要求する。この読み取りの際、原稿Mの傾きが発生する。
S3:読取制御部52は原稿Mを読み取って、画像メモリ管理部55に読み取った画像データを送出する。
S4:画像メモリ管理部55は、HDD304などに画像データを記憶させ、また、画像データが蓄積(記憶)されたことを画像処理部53に通知する。例えば、画像データが記憶されているアドレスなどを通知する。
S5:画像処理部53は、画像Iの補正に必要な傾き角を得るために、画像解析部56に傾き角の解析を要求する。
S6:画像解析部56は、画像Iを解析し傾き角を検出する。傾き角の検出方法は、図9で説明する。
S7:画像解析部56は傾き角を画像処理部53に通知する。
S8:画像処理部53は、傾き角を元に画像Iを補正する。画像Iが傾くことは画像Iが回転したことを意味するので、画像処理部53は傾き角だけ画像Iを回転させる。回転軸は画像の中心であるため、画像Iの中心を軸にして画像Iを回転させる。画像Iの回転には、例えばアフィン変換などを用いればよい。
S9:画像処理部53は、補正された画像IをHDD304などに記憶させ、処理完了を画像メモリ管理部55に通知する。
S10〜S12:画像メモリ管理部55は読み取り結果を操作制御部51に送信する。複合機100は以上の処理を、原稿Mのページ数分繰り返す。
<画像解析部による傾き角の検出>
図9は、画像解析部56による画像の傾き角の検出手順を説明する図の一例である。以下では、この検出手順にしたがって説明する。
<< 画像上の直線を検出し、角度ごとに直線の数をカウントする方法 >>
ステップS1−1〜S1−3は画像Iから1つ以上の直線Lを検出して、角度ごとに直線Lの数をカウントする方法に関する処理である。
・S1-1
画像解析部56は、画像Iから連続点を探し出す。図10は画像Iの連続点402を説明する図の一例である。図10(a)は画像Iに現れる直線Lの一例を示し、図10(b)は直線Lの拡大図を示す。
図10(a)のような直線Lは微小なトナーが定着して形成されているが、スキャナエンジン312のラインセンサが読み取ると画素ごとの輝度情報(濃度)として検出される。すなわち、1つの画素に相当するマス目401ごとに輝度情報が得られる。連続点402とは、画素と画素が繋がっていることを意味するので、画像解析部56は濃度がゼロでない(白画素でない)画素から8方向を検索し、濃度がゼロでない隣り合った画素を検出する。あるいは、エッジ検出を行ってもよい。エッジを検出することで直線Lの輪郭が得られるが、画像に直線Lがあるとすれば直線Lは輪郭に現れる。
・S1-2
画像解析部56は図10(b)のような連続点402に特徴的な画素値のパターンを検出することで直線Lを検出する。具体的には、一例として以下のような方法が考えられる。
図11は連続点から直線Lを検出する手順を示すフローチャート図の一例である。画像解析部56は任意の基準点から以下の処理を開始する(S10)。基準点とは、連続点の一部の点であればよい。例えば、連続点のうち最もx座標とy座標が小さい点である。
画像解析部56は、基準点の周囲の8点(上下左右、上左、上右、下左、下右)を検索し、基準点と同じ色の点を検出する(S20)。同じ色とは、カラーで原稿Mが読み取られた場合は、RGBの各画像の濃度が同じことをいい、白黒で原稿Mが読み取られた場合は、輝度値が同じことをいう。
基準点の右上と左又は左下が同じ色で他は違う色の場合、画像解析部56は右上がりの直線と判定する(S30)。そして、基準点より右上方向に検索を続ける(S40)。
基準点の右下と左又は左上が同じ色で他は違う色の場合、画像解析部56は右下がりの直線と判定する(S50)。そして、基準点より右下方向に検索を続ける(S60)。
ステップS30とS50に続いて、閾値よりも連続点が長く続く場合、画像解析部56は斜め線と見なす(S70)。
基準点の右と左が同じ色で他は違う色の場合、画像解析部56は水平な直線と判定する(S80)。この場合、画像Iが傾いていない可能性があるか、又は、画像Iが傾いていても水平な直線では傾き角を検出できないので、画像解析部56は処理を終了する(S100)。
基準点の周囲に同じ色がない場合、画像解析部56は直線ではないと判定する(S90)。この場合、直線ではないので画像解析部56は処理を終了する(S100)。
ステップS70で斜め線と見なされた連続点402が求める直線Lである。画像解析部56は、全ての連続点について図11の処理を行い、画像Iから全ての直線Lを検出する。
・S1-3
次に、画像解析部56は直線Lの角度を算出する。図12は、直線Lの角度の算出方法を説明する図の一例である。画像解析部56は、斜め線と判定された直線Lの始点、終点の座標から、X方向とY方向の長さをそれぞれ求める。図12(a)で始点は(1,3)、終点は(10,7)である。X方向の長さLxは10−1=9(画素)、Y方向の長さLyは7−4=3(画素)である。
したがって、この直線Lの副走査方向(水平方向)に対する角度θと、X方向の長さLxと、Y方向の長さLyは、図12(b)に示す関係にある。tanθ=Ly/Lxなので、角度θは以下のようにして求められる。
θ=arctan(Ly/Lx)
<<画像の上下左右端にできるスキュー影を検出し、角度ごとにスキュー影の数をカウントする方法>>
図8のステップS2−1とS2−2は画像Iのスキュー影の角度を検出し、角度ごとにスキュー影の数をカウントする方法に関する処理である。
・S2-1
画像解析部56は、画像Iからスキュー影Sを検出する。図13はスキュー影Sの検出を説明する図の一例である。図13(a)はスキュー影の検出範囲410を示す図の一例である。スキュー影Sとは、原稿Mの読み取り時に、原稿Mの傾きにより原稿Mがない部分をスキャナエンジン312が読み取ることで形成される領域である。原稿Mがないためスキャナエンジン312はコンタクトガラス越しに天板の背面に設置されている白板を読み取るが、白板と原稿Mの色の違い(双方が白でも同じ白ではない)、原稿Mの端部が読み取られることによる境界線、スキャナエンジン312が露光のために照射する光源から白板までの距離と原稿Mまでの距離との違いなどにより、原稿Mがない領域は原稿Mとは異なる画素値で読み取られる場合が多い。よって、原稿Mの画像部分と原稿Mがない部分には濃淡差が生じる。このような濃淡差が現れる領域をスキュー影Sという。
図13(a)に示すように、スキュー影Sは、画像Iの上下左右の端にできることが経験的に知られている。したがって、画像Iの上下左右の端部から所定範囲をスキュー影の検出範囲410とする。スキュー影の検出範囲410は例えば画像Iの上下左右の端部から10〔mm〕程度などでよい。
図13(b)は、原稿Mが右斜め上に傾いて読み取られた場合に、画像Iの上部にできるスキュー影Sの例を示す図である。画像解析部56は、スキュー影の検出範囲410から図13(b)のスキュー影Sを検出する。
図13(c)はスキュー影Sの検出方法を説明する図の一例である。画像解析部56は、スキュー影Sによって生じる、画像部分Ipとスキュー影Sとの濃淡差を検出する。具体的には、以下の2つの方法のいずれか又は両方を使用する。
・濃淡差を直接検出し、濃淡差のある場所Pをいくつか決定してスキュー影Sと画像部分Ipとの境界を検出する。
・直線の検出(スキュー影Sと原稿Mの画像部分Ipとの境界420に生じる直線を検出する)。
濃淡差の検出について説明する。画像解析部56は、スキュー影の検出範囲410において画像Iの辺に垂直な方向(図13(c)のY方向)に画素値を抽出する。原稿Mの画像部分Ipが白でありスキュー影Sが白でないとすると、図13(d)に示すように急に濃度が上がる場所Pがある。急に濃度が上がる場所Pはスキュー影Sの始まりである。画像解析部56は、Y方向の一定の画素数で濃度の傾きを求める処理をY方向に1画素ずつずらしながら繰り返す。傾きが閾値以上になったY方向の場所Pをスキュー影Sの始まりに決定する。
場所Pを画像データの辺の方向(図13(c)のX方向)でいくつか行うと複数の場所Pが求められるので、複数の場所Pに対し回帰直線を求めることなどで境界420を検出する。この回帰直線の傾きがスキュー影Sの角度である。
次に、直線の検出について説明する。画像解析部56は、例えば、図9のステップS1−2と同様に連続点を探すことで直線を検出する。直線を求めた後の角度の求め方はS1−3と同様でよい。あるいは、スキュー影の検出範囲410においてエッジ検出を行う。そして、ハフ変換を行い直線を検出する。この直線の角度がスキュー影Sの角度である。
<<角度ごとの直線の数とスキュー影の数の統合>>
・S3
次に、画像解析部56は上記(i)(ii)の方法でそれぞれ検出された直線Lの角度及びスキュー影Sの角度を角度ごとにカウントする。そして、それぞれの方法でカウントされた角度の数を統合する。具体的には、最も多い角度を画像Iの傾き角として決定する。
図14は、角度ごとにカウントされた直線Lの数と、スキュー影Sの数の一例を示す図である。画像解析部56は、例えば直線Lとスキュー影Sの角度を小数第4位まで算出し、各角度ごとに直線Lとスキュー影の数をカウントする。角度の最大値としては10度程度まであれば十分である。図14の例では0.7800度において、直線Lの数が58、スキュー影Sの数が2なので、合計すると60になる。この60という数値が全ての角度において最大なので、画像解析部56は画像Iの傾き角を0.7800度に決定する。
なお、角度の有効桁数を小数第2位や小数第3位としてもよい。これにより、1つの角度に直線Lとスキュー影Sの数が集中しやすくなる。すなわち、画像Iの傾き角を決定しやすくなる。あるいは、角度の有効桁数を小数第5位以上としてもよい。この場合は、より高い分解能で画像Iの傾き角を決定できる。
また、画像解析部56は、直線Lの数とスキュー影Sの数に重み付けを付与してもよい。まず、直線Lの数とスキュー影Sの数は検出される数が大きく異なる。また、検出される直線Lは原稿Mにおいて水平線又は垂直線であった線ばかりではないのに対し、検出されたスキュー影Sは原稿Mの辺(水平又は垂直)の傾きを表す。このため、例えば、スキュー影Sの数を50倍し、直線Lの数を1倍する。図14の例だと、0.7800度のポイントが158、0.7801度のポイントが92となるため、決定される傾き角に変更はない。しかし、直線Lの数とスキュー影Sの数の分布によっては、重み付けを付与することでより正確な傾き角を決定できる。
<変形例>
いくつかの変形例を説明する。
<<スキュー影の検証>>
スキュー影Sは原稿Mの辺(水平又は垂直)の傾きを表すので画像Iの傾き角を正確に表すと期待できる。一方、画像Iにスキュー影Sがはっきりと映っていない場合がある。このため、スキュー影Sがはっきりと映っている場合は、スキュー影に基づいて画像Iの傾き角を決定することが有効になると考えられる。
図15は、画像解析部56がスキュー影Sの検出結果を検証して傾き角を決定するまでの手順を示すフローチャート図の一例である。
画像解析部56は、スキュー影Sを検出する(S10)。また、画像解析部56は、スキュー影Sの角度を算出する(S20)。
そして、スキュー影Sの角度を画像Iの傾き角の決定に使用してよいか否かを判定する(S30)。この判定は、スキュー影Sの角度の確からしさに着目して行う。判定の基準として、例えば、画像Iの上下左右のスキュー影の検出範囲410から求めたスキュー影Sの角度がほぼ一致している、濃淡差により検出できた場所Pの数が閾値以上である、複数の場所Pを直線近似した場合の相関係数が閾値以上である、又は、スキュー影Sの角度が想定される範囲内の値となっている、などが挙げられる。これらの基準を満たす場合、スキュー影Sの角度を画像Iの傾き角の決定に使用してよいと判定する。
ステップS30の判定がYesの場合、画像解析部56はスキュー影Sの角度だけから傾き角を決定する(S40)。すなわち、画像Iの直線を検出しないので、画像Iの傾き角の決定に要する時間を短縮することが可能である。
ステップS30の判定がNoの場合、画像解析部56は画像Iから直線Lを検出する処理を行う(S50〜S80)。このステップS50〜S80の処理はステップS1−1〜S1−3、S3と同様でよい。ステップS80で、確からしくないスキュー影Sの角度が統合に使用されるが、スキュー影Sの角度の数は少ないので適切な重み付けを設定することで、確からしくないスキュー影Sの角度が用いられることの影響を低減できる。例えば、スキュー影Sの角度が確からしくない場合は、スキュー影Sの数の重み付けを直線Lの数の重み付けと同じにする。
このように、図15の処理によれば、スキュー影Sの検出結果が確からしい場合(スキュー影が明瞭な場合)、画像Iの傾き角の決定に要する時間を短縮することが可能である。また、スキュー影Sがはっきり映っていない場合は、画像Iの直線Lから傾き角を決定できる。
<<傾き角の決定方法の別の例>>
図16は、画像から検出される直交線について説明する図の一例である。図16に示すように、画像から直交線を検出しその傾きを検出することで画像Iの直線Lの角度を算出してもよい。直交する二本の直線の角度が同じ場合、直交線の傾きを正しく検出できた可能性が高く、画像Iの傾き角の検出精度を向上しやすい。
図16(a)に示すように、原稿Mには「T」という文字が形成されている。図16(b)は原稿Mが傾かずに読み取られた画像Iの拡大図である。原稿Mの二本の直線L1,L2が直交している場合は、原稿Mが傾いた場合に直線L1,L2も同じだけ傾くはずであり、直線L1,L2の角度は90度だけ異なるはずである。
図16(c)に示すように原稿Mが傾いて読み取られる。図16(d)は原稿Mが傾かいて読み取られた画像Iの拡大図である。画像解析部56は以下のようにして直線L1,L2の角度を検出する。
a) 画像解析部56は、交差する二本の直線L1,L2を検出し、二本の直線L1,L2が直交していることを確認する。直線の検出方法は上記のとおりである。直交しているかどうかは、以下のように判定する。
(i) 直線L1の始点S1(xs1、ys1)と終点E1(xe1、ye1)を結んだ直線を90度回転させ、仮の縦線を求める。
(ii) 直線L2の始点S2(xs2、ys2)、終点E2(xe2、ye2)を結んだ直線と、仮の縦線の傾きが一致した場合、二本の直線L1,L2が直交していると判定できる。
これを、画像上の各直交線に対し行う。なお、一致とは小数点以下の所定桁数が一致すればよく、完全に一致しなくてもよい。
画像Iの複数の直交線ごとに角度が得られるので、画像解析部56は角度ごとに直交線の数を集計できる。以降は図9のステップS3と同様に傾き角を決定できる。
<微小点の配置と微小点の検出について>
図17は、複合機100の動作手順を示すフローチャート図の一例である。図17のフローチャート図は、例えば、電子透かしを形成した印刷をユーザが行うことでスタートする。
まず、元画像が入力される(S10)。元画像とは、原稿Mに形成される画像である。すなわち、PCなどから送信された印刷データから元画像が作成されるか、又は、元画像を保持する原稿からスキャンして読み取られる。
次に、複合機100は、透かし情報を符号化する(S20)。
そして、複合機100は元画像のサイズや解像度により予め定められている座標を元に、配置位置を決定する(S30)。例えば、符号化後の透かし情報のサイズが30バイト(=240ビット)の場合は、240個の配置位置451を決める。
次に、複合機100は、配置位置451を中心として矩形領域450を生成する(S40)。矩形領域450の一例を図18に示す。
次に、複合機100は、矩形領域450の画像に対して二値化処理を行う(S50)。これにより、複合機100は矩形領域450ごとに黒画素の割合を求めることができる(S60)。黒画素の割合によって黒画素と白画素の配置を変更するためである。黒画素の割合は以下の式で求めることができる。
黒画素の割合 = 矩形領域内の黒画素数/矩形領域の画素数
黒画素の割合が黒画素最小閾値thMIN以下の場合、複合機100は矩形領域450がほぼ白色の画像であると判定して、符号化された透かし情報が1の場合、矩形領域450の中心に黒色の微小点dを配置する(S70)。符号化された透かし情報が0の場合は何も配置しない。
黒画素の割合が黒画素最大閾値thMAX以上の場合、複合機100は矩形領域450がほぼ黒画像であると判定して、符号化された透かし情報が1の場合、矩形領域450の中心に白色の微小点dを配置する(S80)。符号化された透かし情報が0の場合は何も配置しない。すなわち、矩形領域450がほぼ黒画像の場合、微小点dとして黒点が配置されると、画像の黒画素と判定できず、微小点dの検出が困難になる。このため、複合機100はほぼ黒画像の矩形領域450に白点を配置する。
黒画素の割合が、黒画素最小閾値thMINよりも大きく、かつ、黒画素最大閾値thMAXよりも小さい場合、複合機100は、配置位置451に透かし情報を配置しない。
以上の処理を各矩形領域で行う。複合機100は各矩形領域450に微小点dが配置された画像を原稿Mとして印刷する(S90)。
図18は、元画像に対し微小点dが配置される配置位置451を説明する図の一例である。図18は元画像又は元画像が印刷される用紙の全体を示す。複合機100は元画像のサイズや解像度などから微小点dの配置位置451を決める。例えば、縦方向の解像度を6分割する各分割位置において横方向の解像度を三分割又は四分割する位置が配置位置451である。図18では、元画像の上方から3,2,3,2,3個の配置位置が図示されている。
この配置位置451は一例に過ぎず、元画像又は用紙の全体を正方形に区切ってもよいし、長方形に区切ってもよく、また、円形に区切ってもよい。また、縦又は横の分割数も3や2に限られるものではない。
このように矩形領域450の決定方法が決まっていることで、同じサイズ又は解像度の画像では同じ場所に矩形領域450が生成される。したがって、複合機100は画像Iから微小点dを読み取ることができる。
図19は、複合機100が電子透かしを復号する際の動作手順を示すフローチャート図の一例である。図19のフローチャート図は、例えば、画像Iの傾きが補正されることでスタートする。なお、図19の説明では主に図17との相違を説明する。
まず、複合機100は傾きが補正された画像Iを取得する(S10)。すなわち、画像メモリ管理部55が管理する画像Iを読み出す。
次に、複合機100は画像Iのサイズや解像度により予め定められている座標を元に、配置位置451を決定する(S30)。
次に、複合機100は、配置位置451を中心として矩形領域450を作成する(S40)。
次に、複合機100は、各矩形領域450の画像に対して、二値化処理を行う(S50)。これにより、矩形領域450ごとに黒画素の割合を求めることができる。
複合機100は、黒画素の割合を判定する(S60)。黒画素の割合が黒画素最小閾値thMIN以下(最小黒画素閾値以下)の場合、複合機100は矩形領域がほぼ白画像であると判定して、矩形領域450の中心の微小点dを読み取る(S70)。微小点dが黒画素なら1と判定し、微小点dが白画素なら0と判定する。
黒画素の割合が黒画素最大閾値thMAX以上(最大黒画素閾値以上)の場合、複合機100は矩形領域がほぼ黒画像であると判定して、中心の微小点dを読み取る(S80)。微小点dが白画素なら1と判定し、微小点dが黒画素なら0と判定する。
黒画素の割合が、黒画素最小閾値thMINよりも大きく、かつ、黒画素最大閾値thMAXよりも小さい場合、複合機100は微小点dを読み取らない。
複合機は各矩形領域450から読み取った微小点dを復号して、透かし情報を取得する(S90)。このように、微小点dの配置とほぼ同様の手順で電子透かしを読み取ることができる。
<まとめ>
以上説明したように本実施形態の複合機100は、複数の方法で画像Iの傾き角を検出し、複数の傾き角を統合して画像Iの傾き角を決定するので、傾き角の検出精度を向上させることができる。この結果、原稿の画像の傾きを精度よく補正でき、電子透かしが有する微小点の検出精度を向上できる。
<<その他の適用例>>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、本実施形態では、2つの方法でそれぞれ検出された角度を統合したが、3つ以上の方法で検出された角度を統合してもよい。3つめの方法として、トンボ線のように予め決まった場所に形成されている水平又は垂直であることが分かっている画像を検出する方法がある。
また、本実施形態では複合機100が原稿の読み取り、傾き角の検出、傾き角の補正を行ったが、別々の装置が原稿の読み取り、傾き角の検出、傾き角の補正を行うことをも可能である。例えば、装置1が原稿を読み取り画像を装置2に送信し、装置2が傾き角を検出して装置1に送信し、装置1が傾きを補正するシステム形式が考えられる。また、例えば、装置1が原稿を読み取り画像を装置2に送信し、装置2が傾き角を検出して画像の傾きを補正するシステム形式が考えられる。更に、例えば、装置1が原稿を読み取り画像を装置2に送信し、装置2が傾き角を検出して装置3に送信し、装置3が傾きを補正するシステム形式が考えられる。具体的には、複合機100の他、PC(Personal Computer)、サーバ、電子黒板、プロジェクタ、テレビ会議端末などが画像Iの傾き角を検出してよい。
また、本実施形態では電子透かしの読み取りのために傾き角を補正すると説明したが、傾き補正は複合機100で一般に行われており、電子透かしの読み取りのため以外に適用可能であることは言うまでもない。
また、図7などの構成例は、複合機100による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。複合機100の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
なお、読取制御部52は画像取得手段の一例であり、画像解析部56は傾き角検出手段の一例である。
51 操作制御部
52 読取制御部
53 画像処理部
54 アプリケーション部
55 画像メモリ管理部
56 画像解析部
100 複合機
200 電子透かし
特開平5−274475号公報

Claims (10)

  1. 原稿を読み取って生成される画像の傾き角を検出する情報処理装置であって、
    読取装置により読み取られた原稿の画像を取得する画像取得手段と、
    前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段と、
    を有する情報処理装置。
  2. 前記傾き角検出手段は、異なる方法の少なくとも一方で前記画像の複数の傾き角を検出し、
    各傾き角ごとに集計された傾き角の数に基づいて前記画像の傾き角を決定する請求項1に記載の情報処理装置。
  3. 前記傾き角検出手段は、前記画像から直線を検出し直線ごとに直線の角度を求め、
    更に、前記画像が傾くことで前記画像に生じる影を検出し影ごとに影と前記画像の境界線の角度を求め、
    角度ごとに前記直線の数、及び、前記影の数を集計し、
    前記直線の数と前記影の数の合計に基づいて決定した角度を、前記画像の傾き角に決定する請求項1又は2に記載の情報処理装置。
  4. 前記傾き角検出手段は、前記直線の数と前記影の数の少なくともいずれかに重み付けを付与して、前記直線の数と前記影の数の合計に基づいて決定した角度を、前記画像の傾き角に決定する請求項3に記載の情報処理装置。
  5. 前記傾き角検出手段は、前記直線の数と前記影の数の合計が最も大きい角度を、前記画像の傾き角に決定する請求項3又は4に記載の情報処理装置。
  6. 前記傾き角検出手段は、前記画像と前記影の境界に生じる濃淡差を検出することで前記影を検出し、前記濃淡差が検出された場所から前記境界線を検出する請求項3〜5のいずれか1項に記載の情報処理装置。
  7. 前記傾き角検出手段は、前記画像と前記影の境界に生じる直線を検出することで前記境界線を検出する請求項3〜5のいずれか1項に記載の情報処理装置。
  8. 前記傾き角検出手段は、検出した前記影の前記境界線の角度の確からしさが基準を満たす場合、
    前記境界線の前記角度のみに基づいて前記画像の傾き角に決定する請求項3〜7のいずれか1項に記載の情報処理装置。
  9. 前記傾き角検出手段は、前記画像から直交する直交線を検出し、直交する二本の直線のそれぞれの角度が等しいと見なせる場合、前記直交線の数を角度ごとに集計する請求項3〜8のいずれか1項に記載の情報処理装置。
  10. 原稿を読み取って生成される画像の傾き角を検出する情報処理装置を、
    読取装置により読み取られた原稿の画像を取得する画像取得手段と、
    前記画像の傾き角を異なる方法でそれぞれ検出し、異なる方法で検出されたそれぞれの傾き角を統合して前記画像の傾き角を決定する傾き角検出手段、
    として機能させるためのプログラム。
JP2016111735A 2016-06-03 2016-06-03 情報処理装置、プログラム Pending JP2017220708A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016111735A JP2017220708A (ja) 2016-06-03 2016-06-03 情報処理装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016111735A JP2017220708A (ja) 2016-06-03 2016-06-03 情報処理装置、プログラム

Publications (1)

Publication Number Publication Date
JP2017220708A true JP2017220708A (ja) 2017-12-14

Family

ID=60656211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016111735A Pending JP2017220708A (ja) 2016-06-03 2016-06-03 情報処理装置、プログラム

Country Status (1)

Country Link
JP (1) JP2017220708A (ja)

Similar Documents

Publication Publication Date Title
US8661554B2 (en) Controlling program, image forming apparatus and print controlling method
US9071710B2 (en) Image forming apparatus, printing system and function setting method thereof
JP2007336143A (ja) 画像処理装置
JP4860518B2 (ja) 画像処理装置、画像形成装置、画像処理方法及びコンピュータプログラム
JP6707947B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2017220708A (ja) 情報処理装置、プログラム
JP2020065129A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US20150054905A1 (en) Image forming apparatus and image processing method
JP6973113B2 (ja) 画像処理装置、プログラムおよび画像処理方法
JP2007174129A (ja) 画像形成装置
US7773250B2 (en) Image forming apparatus, method and computer program product capable of detecting a copy-prohibited manuscript
US10182175B2 (en) Information processing apparatus
JP2008072581A (ja) 画像処理装置
JP2018207410A (ja) 画像処理装置、画像処理方法、プログラム
JP2008072520A (ja) 画像形成装置、画像データ処理方法及び画像データ処理部
JP6756324B2 (ja) 画像形成システム
JP6950298B2 (ja) 画像形成装置、画像形成方法及びプログラム
JP2004112608A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2007082010A (ja) 画像読み取り装置、画像読み取り方法、プログラム
JP2006234961A (ja) 画像形成装置
KR102130815B1 (ko) 가는 선 검출 방법 및 이를 위한 장치
JP2018148502A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP5371687B2 (ja) 画像表示装置、画像形成装置、画像表示方法、コンピュータプログラム及び記録媒体
JP4390599B2 (ja) 画像処理装置
JP4412339B2 (ja) 画像形成装置および画像データの補正方法