A.第1実施例:
図1は、本発明の一実施例としての複合機を示す説明図である。この複合機100は、複合機100の全体を制御するCPU110と、DRAM等の揮発性記憶装置120と、フラッシュメモリ等の不揮発性記憶装置130と、液晶パネル等の表示部140と、タッチパネル等の操作部150と、スキャナ160と、プリンタ170と、他の装置(例えば、USBフラッシュメモリ)を接続するためのインタフェース180と、現在日時を計測するためのタイマ190と、を含んでいる。
スキャナ160は、第1読取部162と、第2読取部164と、を含んでいる。第1読取部162と第2読取部164とは、図示しない1つの光学センサ(例えば、CIS(Contact Image Sensor))を共有している。ただし、第1読取部162が、第1光学センサを含み、第2読取部164が、第1光学センサとは異なる第2光学センサを含んでも良い。
第1読取部162は、原稿を載せるための平らな透明板を含んでいる(「フラットベッド」とも呼ばれる)。光学センサは、透明板上に静止する原稿を、原稿に対して移動しながら透明板を通じて光学的に読み取ることによって、原稿を表す画像データ(「読取画像データ」とも呼ぶ)を生成する。
第2読取部164は、自動原稿搬送部(ADF(Auto Document Feeder))を含んでいる。自動原稿搬送部は、ユーザによって準備された複数枚の原稿を、モータの動力を用いて、1枚ずつ自動的に搬送する。光学センサは、所定位置に静止し、自動原稿搬送部によって搬送される原稿を光学的に読み取ることによって、原稿を表す読取画像データを生成する。本実施例では、第2読取部164は、原稿の一方の面と他方の面との両方を読み取ることが可能である。また、第2読取部164は、原稿が第2読取部164に置いてあるか否かと、原稿が置いてある場合の原稿のサイズと、を検出する原稿センサを含んでいる(図示省略)。
プリンタ170は、画像を印刷する装置であり、いわゆるインクジェットプリンタである。ただし、他の種類のプリンタ(例えば、いわゆるレーザプリンタ)を採用してもよい。
不揮発性記憶装置130は、プログラム132と、複数の候補画像データ134と、を格納している。
CPU110は、揮発性記憶装置120と不揮発性記憶装置130とを用いてプログラム132を実行することによって、後述する画像処理を実行する。このように、CPU110と揮発性記憶装置120と不揮発性記憶装置130との全体は、画像処理を実行する制御部200に対応する。図示するように、CPU110は、抽出部210と、宛名解析部215と、オブジェクト解析部220と、選択部230と、生成部240と、送信部250と、日時情報取得部260と、サイズ設定部270と、読取設定部275と、スキャナ制御部280と、として機能する。選択部230は、類似候補選択部232を含んでいる。これらの処理部の機能については、後述する。なお、破線で示された非類似候補選択部234は、後述する第2実施例の複合機が備える処理部である。
図2は、画像印刷処理のフローチャートである。この画像印刷処理は、例えば、ユーザが、複合機100に対して原稿のコピーを指示した場合に、CPU110によって実行される。ユーザは、操作部150(図1)を操作することによって、原稿のコピーの指示を含む種々の情報を、入力可能である。後述するように、原稿のコピーが指示された場合には、複合機100は、通常のコピー印刷と、挨拶状印刷と、のいずれかを実行する。通常のコピー印刷は、スキャナ160によって読み取られた画像を、プリンタ170で印刷する処理である。挨拶状印刷は、スキャナ160によって読み取られた挨拶状の画像に応じて、新たな挨拶状をプリンタ170で印刷する処理である。ユーザは、例えば、過去に受け取った挨拶状をスキャナ160に置いて挨拶状印刷を行うことによって、新たな挨拶状を取得することができる。挨拶状印刷の詳細については、後述する。
最初のステップS100は、印刷のための設定を取得する処理である。図3は、設定取得処理のフローチャートである。最初のステップS200では、日時情報取得部260は、タイマ190から、現在日時を表す情報(「日時情報」と呼ぶ)を取得する。次のステップS210では、読取設定部275は、読取機構の種類を取得する。本実施例では、読取機構の種類は、「フラットベッド(第1読取部162)」または「ADF(第2読取部164)」である。読取設定部275は、例えば、第2読取部164の原稿センサ(図示せず)の検出信号を取得し、原稿が検出された場合には、「ADF(第2読取部164)」を選択し、原稿が検出されなかった場合には、「フラットベッド(第1読取部162)」を選択する。
次のステップS220では、サイズ設定部270は、印刷のための記録紙のサイズを取得する。記録紙のサイズは、複数の選択肢の中から、ユーザによって選択される。例えば、「A3」、「A4」、「A5」、「B4」、「B5」、「ハガキ」、「L判」、「2L判」、「LTR」、「4x6」の中から、サイズが選択される。サイズ設定部270は、操作部150を通じて、選択されたサイズを取得する。
次のステップS230では、生成部240は、原稿解析を行うか否か(すなわち、挨拶状印刷を行うか否か)を判定する。本実施例の挨拶状印刷では、挨拶状を表す画像が、ハガキサイズの印刷媒体に印刷される。そこで、生成部240は、ステップS220で取得されたサイズが「ハガキ」である場合に、挨拶状印刷を要求するか否かの選択をユーザに促す画像を、表示部140に表示する(図示省略)。ユーザは、操作部150を操作することによって、挨拶状印刷を要求するか否かの選択結果を、入力可能である。生成部240は、ステップS220で取得されたサイズが「ハガキ」であり、かつ、ユーザが挨拶状印刷を要求する場合に、原稿解析を行うと判定する。他の場合には、生成部240は、原稿解析を行わないと判定する。生成部240は、判定結果を表すデータ(以下「解析フラグ」と呼ぶ)を、設定する。解析フラグが「オン」であることは、原稿解析を行うことを意味し、解析フラグが「オフ」であることは、原稿解析を行わないことを意味している。
次のステップS240では、日時情報取得部260と、読取設定部275と、サイズ設定部270と、生成部240とは、ステップS200〜S230で取得または設定した情報を、揮発性記憶装置120に格納する。そして、図3の処理が終了する。
図2の次のステップS110では、生成部240は、揮発性記憶装置120を参照することによって、ステップS100で設定された解析フラグが「オン」であるか否かを判定する。解析フラグが「オフ」である場合(S110:No)、次のステップS150で、スキャナ制御部280と生成部240と送信部250とは、通常のコピー印刷処理を実行する。具体的には、スキャナ制御部280は、スキャナ160(特に、図3のステップS210で特定された読取部)を制御することによって、原稿を表す読取画像データを取得する。本実施例では、読取画像データは、赤(R)、緑(G)、青(B)のそれぞれの階調値で色を表すビットマップデータである。生成部240は、読取画像データに応じて、プリンタ170によって解釈可能な形式の出力画像データ(「印刷データ」と呼ぶ)を生成する。生成される印刷データは、読取画像データと同じ画像を表している。送信部250は、印刷データをプリンタ170に送信する。プリンタ170は、印刷データに従って、画像を印刷する。そして、図2の処理が終了する。
なお、印刷データの形式としては、プリンタ170が解釈可能な任意の形式を採用可能である。また、印刷データを生成する方法としては、データ形式に適した任意の方法を採用可能である。例えば、生成部240は、読取画像データの色変換を行い、色変換後のデータを用いてハーフトーン処理を行い、ハーフトーン処理の結果に応じて、印刷データを生成する。色変換後のデータは、プリンタ170が利用可能な各色材(例えば、シアンとマゼンタとイエロとブラックの色材)の階調値で色を表すデータである。
解析フラグが「オン」である場合(S110:Yes)、次のステップS120で、原稿解析処理が行われる。図4は、原稿解析処理のフローチャートである。最初のステップS300では、揮発性記憶装置120から、図3のステップS240で格納された情報が、読み出される。具体的には、類似候補選択部232は、日時情報を取得し、生成部240は、読取機構の種類を表す情報を取得する。次のステップS310では、類似候補選択部232は、不揮発性記憶装置130に格納された候補画像データ134(具体的には、候補画像データ134に含まれる属性データ)を取得する。
図5、図6、図7は、候補画像データ134によって表される候補画像の一部の例を示す概略図である。図5は、文字の候補画像Ct11〜Ct15、Ct21〜Ct22を示し、図6は、イラストの候補画像Ci11、Ci12、Ci21、Ci22、Ci31、Ci32を示し、図7は、写真の候補画像Cp11、Cp12、Cp21、Cp22を示している。このように、複数の候補画像は、文字とイラストと写真とのいずれかに分類されている。なお、各候補画像のデータ形式としては、任意の形式(例えば、いわゆるJPEG形式)を採用可能である。
各候補画像の縁に示された二文字の符号(具体的には、矩形内に示された符号)は、候補画像に対応付けられた属性を示している。属性NY、SMは、季節に関する属性を示している。具体的には、新年属性NYは、新年の挨拶状に適していることを示し、夏属性SMは、夏の挨拶状に適していることを示している。また、属性SN、HSは、いわゆる十二支に関する属性を示している。具体的には、巳属性SNは、巳年に適していることを示し、午属性HSは、午年に適していることを示している。図示を省略するが、イラストの候補画像は、十二支にそれぞれ対応する12種類の候補画像を、含んでいる。また、属性を表す属性データは、候補画像データ134に、含まれている。なお、候補画像データを提供する記憶装置としては、不揮発性記憶装置130に限らず、図示しないネットワークを通じて通信可能なサーバや、インタフェース180に接続されたメモリカード等の、種々の記憶装置を採用可能である。
図4の次のステップS320では、生成部240は、読取機構の種類が、第2読取部164(ADF)であるか否かを判定する。読取機構の種類が、第2読取部164(ADF)である場合(S320:Yes)、次のステップS330で、スキャナ制御部280は、第2読取部164を制御することによって、第2読取部164に置かれた原稿(すなわち、挨拶状)を表す読取画像データを取得する。このステップS330では、スキャナ制御部280は、挨拶状の宛名側の画像を表すデータ(「宛名側読取データ」と呼ぶ)と、挨拶状の絵側の画像を表すデータ(「絵側読取データ」と呼ぶ)と、を取得する。本実施例では、絵側は、宛名側の反対側である。
次のステップS334では、宛名側読取データの解析と、解析結果に応じた宛名側出力データの生成と、が行われる。図8は、宛名側の解析とデータ生成とのフローチャートである。最初のステップS400では、宛名解析部215は、宛名側読取データを解析することによって、文字を表す文字領域を検出する。文字領域の検出方法としては、公知の方法を採用可能である。例えば、いわゆるソーベルフィルタ等のエッジフィルタを用いて各画素のエッジ強度を算出し、エッジ強度の絶対値が所定の閾値以上である画素をエッジ画素として検出し、特定の色(例えば、黒色)のエッジ画素の割合が所定の閾値以上である領域を、文字領域として検出する方法を採用可能である。
次のステップS410では、宛名解析部215は、検出された文字領域を解析することによって、文字(具体的には、文字列)を認識する。文字列の認識の方法としては、公知の方法を採用可能である。例えば、いわゆる光学文字認識(optical character recognition)として知られる方法を採用可能である。
次のステップS420では、宛名解析部215は、認識された文字列の方向と位置(具体的には、宛名側読取画像中の位置)とに応じて、差出人住所と差出人氏名と受取人住所と受取人氏名とを特定する。一般的には、それらの情報は、それぞれ、郵便物の宛名側の面の所定の位置に記載される。従って、宛名解析部215は、文字列の位置に応じて、それらの情報を、特定できる。
図9(A)、図9(B)は、それぞれ、差出人住所と差出人氏名と受取人住所と受取人氏名とのそれぞれの、宛名側読取画像中の位置の例を示す概略図である。図9(A)の宛名側読取画像AI1は、縦書きの例を示し、図9(B)の宛名側読取画像AI2は、横書きの例を示している。
宛名解析部215は、例えば、以下のように、種々の情報を特定する。まず、図9(A)の宛名側読取画像AI1を例に、説明する。宛名側読取画像AI1中の右上から始まる縦長の文字列Ra1が検出された場合、その文字列Ra1を表す領域ARa1が、受取人住所領域ARa1として特定される。宛名側読取画像AI1中の中央上から始まる縦長の文字列Rn1が検出された場合、その文字列Rn1を表す領域ARn1が、受取人氏名領域ARn1として特定される。宛名側読取画像AI1中の左上から始まる縦長の文字列Sa1、Sn1が検出された場合、最も左側の文字列Sn1を表す領域ASn1が、差出人氏名領域ASn1として特定され、残りの文字列Sa1を表す領域ASa1が、差出人住所領域ASa1として特定される。また、宛名側読取画像AI1の上部の所定領域ARc1は、受取人の郵便番号Rc1が記載された受取人郵便番号領域ARc1として特定され、宛名側読取画像AI1の左下の所定領域ASc1は、差出人の郵便番号Sc1が記載された差出人郵便番号領域ASc1として特定される。
図9(B)の宛名側読取画像AI2については、以下の通りである。宛名側読取画像AI2中の左上から始まる横長の文字列Ra2が検出された場合、その文字列Ra2を表す領域ARa2が、受取人住所領域ARa2として特定される。宛名側読取画像AI2中の中央左から始まる横長の文字列Rn2が検出された場合、その文字列Rn2を表す領域ARn2が、受取人氏名領域ARn2として特定される。宛名側読取画像AI2の左下から始まる横長の文字列Sa2、Sn2が検出された場合、最も下側の文字列Sn2を表す領域が、差出人氏名領域ASn2として特定され、残りの文字列Sa2を表す領域ASa2が、差出人住所領域ASa2として特定される。また、宛名側読取画像AI2の上部の所定領域ARc2は、受取人の郵便番号Rc2が記載された受取人郵便番号領域ARc2として特定され、宛名側読取画像AI2の左下の所定領域ASc2は、差出人の郵便番号Sc2が記載された差出人郵便番号領域ASc2として特定される。
なお、宛名解析部215は、図8のステップS410で認識した文字に応じて、氏名と住所との特定を行ってもよい。例えば、「通り」、「ビルディング」等の住所に特有の用語を含む文字列が、住所として特定されてもよい。
図8の次のステップS430では、生成部240は、新たに印刷すべき宛名側画像を表す宛名側出力データを生成する。この宛名側出力データは、ステップS420で特定された受取人を、新たな差出人として表し、ステップS420で特定された差出人を、新たな受取人として表している。例えば、図9(A)の宛名側読取画像AI1が処理される場合には、宛名側出力データは、差出人住所領域ASa1の画像と受取人住所領域ARa1の画像とを交換し、差出人氏名領域ASn1の画像と受取人氏名領域ARn1の画像とを交換し、差出人郵便番号領域ASc1の画像と受取人郵便番号領域ARc1の画像とを交換することによって得られる画像を表している。ここで、元の差出人の情報を表す領域の画像を拡大して得られる画像を、新たな受取人の情報を表す領域の画像として採用してもよい。また、元の受取人の情報を表す領域の画像を縮小して得られる画像を、新たな差出人の情報を表す領域の画像として採用してもよい。また、生成部240は、ステップS410で認識された文字を用いて、新たな受取人と新たな差出人とを表す画像を、新たに生成してもよい。
次のステップS440では、生成部240は、生成した宛名側出力データを、揮発性記憶装置120に格納する。そして、図8の処理が終了する。
図4の次のステップS338では、絵側読取データの解析と、解析結果に応じて絵側出力データの生成と、が行われる。図10は、絵側の解析とデータ生成とのフローチャートである。最初のステップS500では、抽出部210は、絵側読取データを解析することによって、オブジェクト画像を抽出する。本実施例では、抽出部210は、オブジェクト画像として、文字画像とイラスト画像と写真画像とを抽出する。図11は、オブジェクト画像抽出の例を示す概略図である。図中には、絵側読取画像RIが示されている。この絵側読取画像RIは、文字列TXと、イラストIMと、写真PHと、を表している。抽出部210は、この絵側読取画像RIから、文字列TXを表す文字画像TAと、イラストIMを表すイラスト画像IAと、写真PHを表す写真画像PAと、を抽出する。
このようにオブジェクトの種類毎にオブジェクト画像を抽出する方法としては、公知の方法を採用可能である。例えば、処理対象の画像を複数の処理領域に分割し、処理領域毎に画素値(例えば、輝度値)の分散を算出し、分散が第1閾値よりも小さい処理領域を文字領域に分類し、分散が第2閾値(第2閾値>第1閾値)よりも大きい処理領域を写真領域に分類し、分散が第1閾値以上第2閾値以下である処理領域をイラスト領域に分類する。そして、同じ種類の処理領域が連続することによって構成される1つの連続な領域を、1つのオブジェクト画像として抽出する。また、オブジェクト画像の抽出には、分散に限らず、他の種々の情報(例えば、各処理領域で用いられている色の数)を採用可能である。また、複数の情報を組み合わせることによって、複数の種類のそれぞれのオブジェクト画像を抽出してもよい。
図10の次のステップS510では、抽出された文字画像に応じて文字出力データが決定される。図12は、文字出力データ決定のフローチャートである。最初のステップS610では、類似候補選択部232は、現在日時に対応する属性に対応付けられた候補画像を選択する。現在日時が、1月1日を含む所定の新年期間(例えば、11月1日から1月31日までの期間)内である場合には、新年属性NYに対応付けられた候補画像が選択される。現在日時が、夏を表す所定の夏期間(例えば、5月1日から9月30日までの期間)内である場合には、夏属性SMに対応付けられた候補画像が選択される。なお、現在日時が、新年期間と夏期間との外である場合には、挨拶状印刷が中止される。
図13(A)は、文字の候補画像の選択の例を示す概略図である。図13(A)は、現在日時が新年期間に含まれる場合を示している。図示するように、新年属性NYに対応付けられた候補画像群CtG1が選択肢として選択され、夏属性SMに対応付けられた候補画像群CtG2は、選択肢から外れている。
図12の続くステップS620〜S650では、ステップS610で選択された複数の候補画像の中から、1つの候補画像が選択される。本実施例では、いわゆるテンプレートマッチングによって、文字画像TAに最も類似する1つの候補画像が選択される。
まず、図12のステップS620で、オブジェクト解析部220は、各候補画像のサイズ(すなわち、画素数)を、抽出された文字画像TAと同じサイズに、調整する。オブジェクト解析部220は、候補画像の縦方向の拡大または縮小と、候補画像の横方向の拡大または縮小と、を独立に行うことによって、画素数を調整する。図13(B)は、第1候補画像Ct11の処理例を示し、図13(C)は、第2候補画像Ct12の処理例を示している。図13(B)の例では、第1候補画像Ct11から、文字画像TAと同じサイズに調整された調整済候補画像Ct11fが生成されている。図13(C)の例では、第2候補画像Ct12から、文字画像TAと同じサイズに調整された調整済候補画像Ct12fが生成されている。画素数の調整(すなわち、画素密度の調整)によって生じる新たな画素の画素値は、補間によって決定される。
図12の次のステップS630では、オブジェクト解析部220は、各画素毎に、文字画像TAの輝度値と候補画像の輝度値との差分dLを算出し、差分dLの絶対値が所定の閾値ThL以下であるか否か判定する。以下、差分dLの絶対値が所定の閾値ThL以下である画素を「第1種一致画素」と呼ぶ。以下、「第1種一致画素」のことを、単に「一致画素」とも呼ぶ。次のステップS640では、オブジェクト解析部220は、各候補画像毎に、一致画素の総数Nmpを算出する。図13(B)の第1候補画像Ct11の文字は、文字画像TAとは異なる文字で構成されている。一方、図13(C)の第2候補画像Ct12の文字は、文字画像TAと同じ文字で構成されている(ただし、各文字のデザインは異なる)。文字画像TAと同じ文字を表す第2候補画像Ct12の一致画素数Nmp(図13(C))は、文字画像TAと異なる文字を表す第1候補画像Ct11の一致画素数Nmp(図13(B))よりも、多い。このように、一致画素数Nmpは、類似度の高さを示す評価値に相当する。
図12の次のステップS650では、類似候補選択部232は、一致画素数Nmpが最も多い(すなわち、類似度が最も高い)1つの候補画像を表す候補画像データを、文字出力データとして選択する。そして、図12の処理が終了する。図13(A)の例では、文字画像TAと同じ文字を含む第2候補画像Ct12のデータが、選択されている。なお、図10のステップS500で複数の文字画像が抽出された場合には、各文字画像毎に、1つの候補画像が選択される。
図10の次のステップS520では、抽出されたイラスト画像に応じてイラスト出力データが決定される。図14は、イラスト出力データ決定のフローチャートである。ステップS710〜S750は、図12のステップS610〜S650と、それぞれ、同様である。図12の手順からの差異は、文字の候補画像の代わりに、イラストの候補画像が用いられる点と、輝度値の差分dLの代わりに、RGB色空間におけるユークリッド距離(RGB距離Dと呼ぶ)が用いられる点と、である。輝度値の差分dLの代わりにRGB距離Dが用いられる理由は、文字と比べて複数の色で表現される可能性が高いイラストの類似度の評価を、適切に行うためである。
最初のステップS710では、図12のステップS610と同様に、類似候補選択部232は、イラストを表す複数の候補画像から、現在日時に対応する属性に対応付けられた候補画像を選択する。図15(A)は、イラストの候補画像の選択の例を示す概略図である。図15(A)は、現在日時が新年期間に含まれ、かつ、現在日時を基準とする新年の十二支が巳年である場合を示している。図示するように、新年属性NYと巳属性SNとの両方に対応付けられた候補画像群CiG1が選択肢として選択され、他の画像群CiG2、CiG3は、選択肢から外れている。
図14の次のステップS720では、オブジェクト解析部220は、各候補画像のサイズ(すなわち、画素数)を、抽出されたイラスト画像IAと同じサイズに、調整する。図15(B)は、第1候補画像Ci11の処理例を示し、図15(C)は、第2候補画像Ci12の処理例を示している。図15(B)の例では、第1候補画像Ci11から、イラスト画像IAと同じサイズに調整された調整済候補画像Ci11fが生成されている。図15(C)の例では、第2候補画像Ci12から、イラスト画像IAと同じサイズに調整された調整済候補画像Ci12fが生成されている。
次のステップS730では、オブジェクト解析部220は、各画素毎に、イラスト画像IAのRGB値と候補画像のRGB値との間のユークリッド距離(RGB距離D)を算出し、RGB距離Dの絶対値が所定の閾値ThD以下であるか否かを判定する。ここでは、RGB距離Dの絶対値が閾値ThD以下である画素を「第2種一致画素」と呼ぶ。以下、第1種一致画素と第2種一致画素との区別が重要ではない場合に、第1種一致画素または第2種一致画素を、単に「一致画素」とも呼ぶ。次のステップS740では、オブジェクト解析部220は、各候補画像毎に、一致画素の総数Nmpを算出する。図15(B)の第1候補画像Ci11は、イラスト画像IAと似た色で表されている。一方、図15(C)の第2候補画像Ci12は、イラスト画像IAとは異なる色で表されている。従って、図15(B)の一致画素数Nmpは、図15(C)の一致画素数Nmpよりも、多い。
図14の次のステップS750では、類似候補選択部232は、一致画素数Nmpが最も多い1つの候補画像を表す候補画像データを、イラスト出力データとして選択する。そして、図14の処理が終了する。図15(A)の例では、イラスト画像IAと似た色で表される第1候補画像Ci11のデータが、選択されている。なお、図10のステップS500で複数のイラスト画像が抽出された場合には、各イラスト画像毎に、1つの候補画像が選択される。
図10の次のステップS530では、抽出された写真画像に応じて写真出力データが決定される。写真出力データの決定の手順は、図14のイラスト出力データの決定の手順と、同じである。類似候補選択部232は、複数の写真の候補画像(図7)から、現在日時に対応する属性に対応付けられた候補画像を、選択肢として選択する。オブジェクト解析部220は、RGB距離Dに応じて一致画素数Nmpを算出する。類似候補選択部232は、一致画素数Nmpが最も多い1つの候補画像を表す候補画像データを、写真出力データとして選択する。図10のステップS500で複数の写真画像が抽出された場合には、各写真画像毎に、1つの候補画像が選択される。
以上のように、類似候補選択部232は、オブジェクト画像に応じて、オブジェクト画画像と同じ種類(文字とイラストと写真とのいずれか)の候補画像を、選択する。
図10の次のステップS540では、生成部240は、ステップS510、S520、S530で決定された出力データを用いて、新たに印刷すべき絵側画像を表す絵側出力データを生成する。本実施例では、絵側出力データは、絵側読取画像に含まれるオブジェクト画像を、対応する候補画像に置換することによって得られる画像を表している。例えば、図11に示す絵側読取画像RIが処理される場合には、文字画像TAが、図10のステップS510で決定された文字の候補画像に置換され、イラスト画像IAが、図10のステップS520で決定されたイラストの候補画像に置換され、写真画像PAが、図10のステップS530で決定された写真の候補画像に置換される。ここで、元のオブジェクト画像とおおよそ同じ大きさになるように、候補画像の拡大または縮小が行われることが好ましい。候補画像の拡大または縮小を行う場合、候補画像の縦横比は固定されることが好ましい。
次のステップS550では、生成部240は、生成した絵側出力データを、揮発性記憶装置120に格納する。そして、図10の処理、すなわち、図4のステップS338の処理が終了する。ステップS338の次のステップS350については、後述する。
図4のステップS320の判定結果がNoである場合(すなわち、読取機構の種類が第1読取部162(フラットベッド)である場合)、次のステップS340で、スキャナ制御部280は、第1読取部162を制御することによって、第1読取部162に置かれた原稿(すなわち、挨拶状)を表す読取画像データを取得する。第1読取部162を用いる場合、挨拶状の絵側が読み取られるように、挨拶状を第1読取部162に置くことが想定されている。従って、ステップS340では、スキャナ制御部280は、挨拶状の絵側読取データを取得する。
次のステップS344は、ステップS338と、同一である。これにより、絵側読取データに応じて、絵側出力データが生成される。ステップ344が終了すると、処理は、ステップS350に移行する。
ステップS350では、生成部240は、出力データによって表される画像をユーザに確認させるための確認画像を表示部140に表示する。図16は、確認画像UI1の例を示す概略図である。確認画像UI1は、宛名側出力データによって表される宛名側画像ASと、絵側出力データによって表される絵側画像PSと、それらの画像を了承して印刷するための第1ボタンB1と、印刷をキャンセルするための第2ボタンB2と、を表している。以下、宛名側画像を、単に、「宛名画像」とも呼ぶ。
図示された宛名側画像ASは、図9(A)の宛名側読取画像AI1が処理される場合の例を示している。元の差出人の情報Sa1、Sn1、Sc1が、新たな受取人の情報として示され、元の受取人の情報Ra1、Rn1、Rc1が、新たな差出人の情報として示されている。なお、原稿の読み取りに第1読取部162が用いられる場合(図4:S320:No)、宛名側画像ASは、空欄である。
図示された絵側画像PSは、図11の絵側読取画像RIが処理される場合の例を示している。元の文字画像TAが、図10のステップS510で選択された第2候補画像Ct12に置換され、元のイラスト画像IAが、図10のステップS520で選択された第1候補画像Ci11に置換され、元の写真画像PAが、図10のステップS530で選択された第1候補画像Cp11に置換されている。
ユーザは、操作部150を操作することによって、第1ボタンB1と第2ボタンB2とのうちの任意のボタンを操作できる。生成部240は、操作されたボタンを表すデータ(「印刷実行フラグ」と呼ぶ)を、設定する。第1ボタンB1が操作された場合、印刷実行フラグは「オン」に設定され、第2ボタンB2が操作された場合、印刷実行フラグは、「オフ」に設定される。
なお、本実施例では、新たな宛名側画像AS中の領域ARa3、ARn3、ARc3、ASa3、ASn3、ASc3の位置と大きさとは、元の宛名側読取画像AI1(図9(A))中の対応する領域ARa1、ARn1、ARc1、ASa1、ASn1、ASc1の位置と大きさと、それぞれ同じである。但し、新たな宛名側画像AS中の領域ARa3、ARn3、ARc3、ASa3、ASn3、ASc3の位置と大きさとは、元の宛名側読取画像AI1とは独立に、設定されてもよい。例えば、領域ARa3、ARn3、ARc3、ASa3、ASn3、ASc3の位置と大きさとして、所定の位置と大きさとが採用されてもよい。
図4の次のステップS360では、生成部240は、印刷実行フラグが「オン」であるか否かを判定する。印刷実行フラグが「オン」である場合(S360:Yes)、次のステップS370で、生成部240は、出力画像データを、揮発性記憶装置120に格納する。原稿の読み取りに第1読取部162(フラットベッド)が用いられた場合(図4:S320:No)、宛名側出力データは生成されずに、絵側出力データが、出力画像データとして、揮発性記憶装置120に格納される。第2読取部164(ADF)が用いられた場合(図4:S320:Yes)、宛名側出力データと絵側出力データとの全体が、出力画像データとして、揮発性記憶装置120に格納される。そして、図4の処理が終了する。印刷実行フラグが「オフ」である場合(S360:No)、ステップS370がスキップされ、そして、図4の処理が終了する。なお、本実施例では、この段階の出力画像データは、赤(R)、緑(G)、青(B)のそれぞれの階調値で色を表すビットマップデータである(例えば、JPEG形式の画像データ)。
図2の次のステップS130では、生成部240は、ステップS120で設定した印刷実行フラグが「オン」であるか否かを判定する。印刷実行フラグが「オン」である場合(S130:No)、次のステップS140で、挨拶状印刷処理が実行される。図17は、挨拶状印刷処理のフローチャートである。最初のステップでは、生成部240は、揮発性記憶装置120から、読取機構の種類を表す情報と、出力画像データと、を取得する。次のステップS810では、絵側画像が印刷される。具体的には、生成部240は、出力画像データに含まれる絵側出力データに応じて、プリンタ170によって解釈可能な形式の絵側出力データ(すなわち、印刷データ)を生成する。印刷データの生成方法は、図2のステップS150で用いられた方法と、同じである。送信部250は、印刷データとして生成された絵側出力データを、プリンタ170に送信する。プリンタ170は、受信した印刷データに従って、絵側画像を印刷する。
次のステップS820では、生成部240は、読取機構の種類が、第2読取部164(ADF)であるか否かを判定する。読取機構の種類が、第2読取部164(ADF)である場合(S820:Yes)、次のステップS830で、生成部240は、印刷すべき宛名側画像をユーザに選択させるための確認画像を表示部140に表示する。図18は、確認画像UI2の例を示す概略図である。確認画像UI2は、宛名側画像ASと、修正された宛名側画像ASaと、宛名側画像ASを選択するための第1ボタンB11と、修正された宛名側画像ASaを選択するための第2ボタンB12と、宛名側画像の印刷をキャンセルするための第3ボタンB13と、を表している。
宛名側画像ASは、図16に示す宛名側画像ASと同じであり、差出人の情報と、受取人の情報と、の全てを示している。修正された宛名側画像ASaは、新たな受取人に関する情報Sa1、Sn1、Sc1を宛名側画像ASから消去することによって得られる画像であり、差出人の情報のみを示している。このように修正された宛名側画像ASaは、種々の用途に利用可能である。例えば、ユーザは、印刷された挨拶状に、宛先に関する情報を手書きすることができる。また、ユーザは、読み取られた情報Sa1、Sn1、Sc1とは異なる他の宛先のために、印刷された挨拶状を用いることができる。
ユーザは、操作部150を操作することによって、3つのボタンB11、B12、B13のうちの任意のボタンを操作できる。
図17の次のステップS840では、生成部240は、ユーザによって操作されたボタンに応じて、処理を分岐する。第1ボタンB11、または、第2ボタンB12が操作された場合、次のステップS850で、宛名側画像が印刷される。印刷される宛名側画像としては、操作されたボタンに応じて、宛名側画像AS、または、修正された宛名側画像ASaが採用される。修正された宛名側画像ASaが採用される場合、生成部240は、修正された宛名側画像ASaを表す宛名側出力データを生成し、生成したデータに応じて印刷のための処理を進行する。印刷の手順は、ステップS810で説明した手順と、同じである。具体的には、生成部240は、宛名側出力データに応じて、プリンタ170によって解釈可能な形式の宛名側出力データ(すなわち、印刷データ)を生成する。送信部250は、印刷データとして生成された宛名側出力データを、プリンタ170に送信する。プリンタ170は、受信した印刷データに従って、絵側画像が印刷された印刷媒体の反対側の面に、宛名側画像を印刷する。プリンタ170が両面印刷の機能を有している場合には、プリンタ170は、自動的に、印刷媒体の反対側の面に宛名側画像を印刷する。プリンタ170が両面印刷の機能を有していない場合、ユーザは、絵側画像が印刷された印刷媒体を、裏返しにしてプリンタ170にセットすればよい。宛名側画像の印刷が完了したことに応じて、図17の処理が終了する。第3ボタンB13が操作された場合、ステップS850が省略されて、図17の処理が終了する。
以上のように、本実施例では、抽出部210は、絵側読取画像からオブジェクト画像を抽出し(図10:S500)、オブジェクト解析部220は、オブジェクト画像と複数の候補画像とを解析し(図12、図14)、類似候補選択部232は、1つのオブジェクト画像に対して、解析結果に応じて1つの候補画像を選択し(図12、図14)、生成部240は、オブジェクト画像の代わりに、選択された候補画像を用いることによって、絵側出力データを生成する(図10:S540、図16、図17:S810)。従って、読取画像データとは異なる画像を表す出力データを容易に生成できる。また、ユーザは、印刷すべき候補画像の指定をせずに済むので、ユーザの負担を軽減できる。
また、図12、図14で説明したように、類似候補選択部232は、オブジェクト解析部220による解析結果と、日時情報と、に応じて、1つのオブジェクト画像に対応する1つの候補画像を選択する。従って、現在の日時に適した出力画像データを容易に生成できる。例えば、現在日時が夏期間に含まれる場合には、夏属性SMに対応付けられた候補画像が選択される。現在日時が新年期間に含まれる場合には、新年属性NYに対応付けられた候補画像が選択される。このように、所定の複数の期間のうちの現在日時を含む期間に対応付けられた候補画像が選択される。従って、現在日時に適した候補画像を表す出力画像データを容易に生成できる。
また、図5、図6、図7、図10で説明したように、複数の候補画像データは、複数種類(具体的には、文字列とイラストと写真)に分類されており、類似候補選択部232は、オブジェクト画像の代わりに用いられる候補画像を、オブジェクト画像と同じ種類の候補画像から選択する。従って、元の原稿に応じて容易に出力画像データを生成できる。また、元の原稿からの印象の大きな変化を抑制できる。また、類似候補選択部232は、オブジェクト画像と類似する候補画像を選択する。従って、元の原稿に類似する印象を与える画像を表す出力画像データを容易に生成できる。
また、生成部240は、図4、図8で説明したように、読取画像データが原稿の差出人と受取人とを表す場合に、原稿の受取人を新たな差出人として表し、原稿の差出人を新たな受取人として表す、宛名画像を表す出力画像データを生成する。従って、宛名画像を表す出力画像データを容易に生成できる。また、ユーザは、差出人と受取人とを入力せずに済むので、宛名画像を表す出力画像データを生成するためのユーザの負担を軽減できる。
また、生成部240は、図4で説明したように、第1読取部162(フラットベッド)によって原稿が読み取られた場合には、絵側画像を表す出力画像データを生成し、第2読取部164(ADF)によって原稿が読み取られた場合には、宛名画像を表す出力画像データ(「第1出力画像データ」と呼ぶ)と、絵側画像を表す出力画像データ(「第2出力画像データ」と呼ぶ)と、を生成する。従って、生成部240は、読取機構の種類に適した出力画像データを、容易に生成できる。
また、図2、図3で説明したように、生成部240は、出力すべき画像のサイズが特定のサイズ(具体的には、ハガキ)である場合に、候補画像を用いることによって出力画像データを生成し(図2:S140)、画像のサイズが特定のサイズとは異なる場合には、読取画像データによって表される画像と同じ画像を表す出力画像データを生成する(図2:S150)。従って、生成部240は、特定のサイズの挨拶状のために、読取画像データとは異なる画像を表す出力画像データを、容易に生成できる。
B.第2実施例:
図19は、イラスト出力データの決定処理の別の実施例のフローチャートである。図14の実施例とは異なる点は、オブジェクト画像と非類似な候補画像を表す候補画像データが選択される点だけである。図19の処理は、図14の処理の代わりに実行される。第2実施例で用いられる複合機のハードウェア構成は、図1の複合機100のハードウェア構成と、同じである。CPU110の機能部としては、類似候補選択部232が省略され、この代わりに非類似候補選択部234が実装される。印刷の手順は、図2、図3、図4に示す実施例と、同じである。
図19のステップS710〜S740は、図14のステップS710〜S740と、それぞれ同じである。図19のステップS750aでは、図14のステップS750とは異なり、一致画素数Nmpが最少の(すなわち、類似度が最も低い)候補画像を表す候補画像データが選択される。この結果、オブジェクト画像と非類似な候補画像が印刷に用いられる。なお、イラストに限らず、文字列と写真とについても、同様に、非類似候補選択部234は、非類似の候補画像を選択する。
以上のように、第2実施例では、オブジェクト画像と非類似な候補画像が用いられるので、元の原稿とは非類似な印象を与える出力画像データを容易に生成できる。
C.第3実施例:
図20、図21、図22は、オブジェクト画像と候補画像との間の類似度の評価値の別の実施例を示す概略図である。上述の図12、図14、図19の実施例では、一致画素数Nmpが類似度の評価値として用いられている(一致画素数Nmpが多いほど、類似度が高い)。図20、図21、図22の実施例では、別の観点から、2つの画像の間の類似度が評価される。なお、図20、図21、図22は、イラスト画像IAと第1候補画像Ci11との間の類似度を例として示している。
図20の実施例では、エッジ画素の割合に応じて類似度が評価される。オブジェクト解析部220は、いわゆるソーベルフィルタ等のエッジフィルタを用いて各画素のエッジ強度を算出し、エッジ強度の絶対値が所定の閾値以上である画素をエッジ画素として検出する。図中のオブジェクトエッジ画像IAeは、イラスト画像IAから検出されたエッジ画素を表し、候補エッジ画像Ci11eは、候補画像Ci11から検出されたエッジ画素を表している。オブジェクト解析部220は、検出されたエッジ画素の数を数え、エッジ画素の割合を算出する。図20では、オブジェクトエッジ画像IAe(すなわち、イラスト画像IA)から、エッジ画素割合ERAが算出され、候補エッジ画像Ci11e(すなわち、第1候補画像Ci11)から、エッジ画素割合ER11が算出されている。オブジェクト解析部220は、算出されたエッジ画素割合ERA、ER11の差分dER11の絶対値を算出する。この差分の絶対値は、2つの画像間の類似度の評価値として利用可能である。選択部232、234は、この差分の絶対値が小さいほど、2つの画像の類似度が高いと評価する。このように、エッジ画素割合を用いることによって、画像の複雑さに着目した類似度の評価が可能である。
図21の実施例では、色数に応じて類似度が評価される。オブジェクト解析部220は、画像を解析することによって、その画像中で用いられている色の数を数える。図21では、イラスト画像IAの色数NCAと、第1候補画像Ci11の色数NC11と、が算出されている。オブジェクト解析部220は、算出された色数NCA、NC11の差分dNC11の絶対値を算出する。この差分の絶対値は、2つの画像間の類似度の評価値として利用可能である。選択部232、234は、この差分の絶対値が小さいほど、2つの画像の類似度が高いと評価する。このように、色数を用いることによって、色の多様性に着目した類似度の評価が可能である。
図22の実施例では、ヒストグラムの形状に応じて類似度が評価される。オブジェクト解析部220は、画像を解析することによって、輝度値Ypのヒストグラムを生成する。このヒストグラムは、各画素を、輝度値Ypに応じて、複数のデータ区間(「ビン」とも呼ばれる)に分類することによって得られる。オブジェクト解析部220は、2つの画像から得られる2つのヒストグラムの間で各データ区間の頻度差di(iはデータ区間の番号)を算出し、算出された頻度差diの絶対値の合計値Tdを算出する。この合計値Tdは、ヒストグラムの形状が似ているほど、小さくなる。従って、この合計値Tdは、2つの画像間の類似度の評価値として利用可能である。選択部232、234は、この合計値Tdが小さいほど、2つの画像の類似度が高いと評価する。このように、ヒストグラムを用いることによって、階調値分布に着目した類似度の評価が可能である。なお、2つのヒストグラムを比較する場合には、2つのヒストグラムの間で頻度の合計値が同じとなるように、ヒストグラムを正規化することが好ましい。
以上、イラスト画像について説明したが、文字と写真とについても、同様に、類似度を評価可能である。また、図20、図21、図22で説明した類似度の評価方法は、上述の各実施例に適用可能である。また、2つの画像の間の類似度を評価する方法としては、上記各実施例の方法に限らず、他の方法を採用可能である。
D.変形例:
(1)挨拶状印刷の手順としては、上記の各実施例の手順に限らず、種々の手順を採用可能である。例えば、類似候補選択部232と非類似候補選択部234とのいずれが候補画像データを選択するのかを、ユーザが選択してもよい。この場合には、類似候補選択部232と非類似候補選択部234との両方が、制御部200に実装される。そして、類似候補選択部232と非類似候補選択部234とから、候補画像データを選択する選択部を、ユーザの指示に応じて選択する処理選択部(図示省略)も、制御部200に実装される。
(2)挨拶状印刷において、原稿の読み取りに第1読取部162(フラットベッド)が用いられる場合に、挨拶状の宛名側が読み取られるように、挨拶状を第1読取部162に置くこととしてもよい。この場合、第1読取部162が用いられる場合には、宛名側画像が印刷される。また、第2読取部164(ADF)が用いられる場合に、宛名側の読み取りと印刷とを省略してもよい。また、第2読取部164が用いられる場合に、宛名側と絵側とのうちの所定の一方が読み取られ、その所定の一方の画像が印刷されることとしてもよい。また、読取機構の種類に拘わらずに、宛名側と絵側とのうちの所定の一方が読み取られ、その所定の一方の画像が印刷されることとしてもよい。
(3)タイマ190を省略してもよい。この場合、日時情報取得部260は、ユーザから現在日時を表す情報を受け取ればよい。また、選択部232、234は、日時情報を用いずに、候補画像を選択してもよい。例えば、選択部232、234は、新年属性NYと夏属性SMとのいずれの候補画像を選択するのかを、ユーザの指示に応じて決定してもよい。一般には、選択部232、234は、複数の候補画像が複数の属性に分類されている場合に、複数の属性のうちのユーザによって選択された属性に対応付けられた候補画像を選択すればよい。また、複数の属性を用いた複数の候補画像の分類を省略してもよい。例えば、全ての候補画像が、新年の挨拶状に適した画像であってもよい。この場合、挨拶状印刷によって、新年の挨拶状が印刷される。
(4)挨拶状印刷において、オブジェクト画像の種類とは無関係に、類似する候補画像、または、非類似な候補画像が選択されてもよい。例えば、類似候補選択部232は、文字列のオブジェクト画像に類似するイラストの候補画像を選択してもよい。
(5)生成部240は、印刷すべき画像のサイズに拘わらずに、ユーザの指示に従って、挨拶状印刷のための出力画像データ(すなわち、候補画像を表す出力画像データ)を生成するか否かを決定してもよい。
(6)候補画像の配置は、元のオブジェクト画像の配置と、異なっていてもよい。例えば、生成部240は、選択された候補画像を、所定の位置に配置してもよい。
(7)図4のステップS334とステップS338との順番を入れ替えてもよい。また、それらのステップS334、S338が、並列に進行してもよい。また、原稿のコピーの指示とは異なる指示(例えば、挨拶状印刷の指示)に応じて、挨拶状印刷のための処理(例えば、図2の処理)が進行してもよい。ここで、図2のステップS150を省略してもよい。
(8)候補画像を用いて生成される出力画像データは、印刷用ではなく表示用の画像データであってもよい。例えば、JPEG形式の出力画像データが生成されてもよい。送信部250は、このような表示用の出力画像データを、表示部140に送信すればよい。
(9)図1に示す実施例において、第1読取部162と第2読取部164との一方が省略されてもよい。また、第2読取部164(ADF)が、片面の読取部であってもよい。また、制御部200の機能(例えば、処理部210〜280の機能)は、画像処理装置としての複合機100の制御部200とは異なる他の装置(例えば、ネットワークを介してプリンタや表示装置やスキャナと通信可能なコンピュータ)によって、実現されてもよい。いずれの場合も、送信部250は、出力画像データを、ネットワークを通じて、プリンタや表示装置等の出力装置に、送信してもよい。
また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、制御部200の機能を一部ずつ分担して、全体として、制御部200の機能を提供してもよい(これらの装置を備えるシステムが制御部に対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図1のオブジェクト解析部220の機能を、論理回路を有する専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。