JP2840306B2 - 画像処理装置の領域処理方法 - Google Patents
画像処理装置の領域処理方法Info
- Publication number
- JP2840306B2 JP2840306B2 JP1200477A JP20047789A JP2840306B2 JP 2840306 B2 JP2840306 B2 JP 2840306B2 JP 1200477 A JP1200477 A JP 1200477A JP 20047789 A JP20047789 A JP 20047789A JP 2840306 B2 JP2840306 B2 JP 2840306B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- line segment
- area
- image
- processing
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は領域編集可能な画像処理装置の領域処理方法
に関するものである。
に関するものである。
従来、原稿画像の一部の領域のみを出力するトリミン
グ機能や一部の領域のみを消去するマスキング機能等の
領域編集機能を有する複写装置等の画像処理装置が製品
化されている。
グ機能や一部の領域のみを消去するマスキング機能等の
領域編集機能を有する複写装置等の画像処理装置が製品
化されている。
しかしながら、従来の複写装置に見られる編集可能な
領域の形は矩形もしくは矩形の組み合わせがほとんであ
り、指定の方法としては矩形の対角2点や領域の周囲の
各線分の端点をデジタイザー等で指定するものである。
この場合領域編集の為に領域の形を覚えておくための大
容量な2次元ビツトマツプメモリを持たなくとも領域を
形づくる水平、垂直な線分の接なる座標のみ記憶してお
けば良いが、矩形もしくはその組み合わせ以外の形状は
処理できない。
領域の形は矩形もしくは矩形の組み合わせがほとんであ
り、指定の方法としては矩形の対角2点や領域の周囲の
各線分の端点をデジタイザー等で指定するものである。
この場合領域編集の為に領域の形を覚えておくための大
容量な2次元ビツトマツプメモリを持たなくとも領域を
形づくる水平、垂直な線分の接なる座標のみ記憶してお
けば良いが、矩形もしくはその組み合わせ以外の形状は
処理できない。
また、矩形に限らず任意の形状の領域編集を行うため
に原稿上の所望の領域を所定の色のマーカーペン等で囲
み、原稿を読み取りながらリアルタイムで処理する装置
も製品化されているが、この場合原稿を汚すという欠点
がある。
に原稿上の所望の領域を所定の色のマーカーペン等で囲
み、原稿を読み取りながらリアルタイムで処理する装置
も製品化されているが、この場合原稿を汚すという欠点
がある。
また、デジタイザー等で指定された全く自由な形状の
領域を2次元ビツマツプメモリに記憶し、原稿の読取り
と同時にビツトマツプメモリから領域情報を読み出す方
法もあるが、当然コスト高になるという欠点がある。
領域を2次元ビツマツプメモリに記憶し、原稿の読取り
と同時にビツトマツプメモリから領域情報を読み出す方
法もあるが、当然コスト高になるという欠点がある。
本発明は以上の点に鑑みてなされたもので、原稿を汚
すことなく、また大容量の編集メモリを必要としない非
矩形領域の編集方式を提案するものであり、さらに複数
の領域を処理する場合にその位置関係や領域毎の処理内
容の相違に関わらずシンプルなアルゴリズムで矛盾ない
処理を実現するものである。即ち、本発明は、原稿の所
望の領域を多角形の複数のコーナーを表わす点として入
力する第1の入力ステップと、上記所望領域の画像に対
する処理モードを入力する第2の入力ステップと、入力
された複数の点を接続することにより表わされる領域の
アウトラインを複数を線分に分割する分割ステップと、
分割された線分毎に、線分の位置の座標及び傾きを表わ
す線分データを検出し、線分毎の処理モードと共にメモ
リに記憶させる記憶ステップと、原稿画像の処理時に、
1または複数主走査ライン毎に、上記線分データに基づ
いて上記領域を表わす領域データを演算する演算ステッ
プと、原稿の1主走査ライン毎に、演算された領域デー
タと線分毎に記憶された処理モードに基いて各主走査ラ
インの画像に処理を行う処理ステップと、を有する画像
処理装置の領域処理方法の提供にある。
すことなく、また大容量の編集メモリを必要としない非
矩形領域の編集方式を提案するものであり、さらに複数
の領域を処理する場合にその位置関係や領域毎の処理内
容の相違に関わらずシンプルなアルゴリズムで矛盾ない
処理を実現するものである。即ち、本発明は、原稿の所
望の領域を多角形の複数のコーナーを表わす点として入
力する第1の入力ステップと、上記所望領域の画像に対
する処理モードを入力する第2の入力ステップと、入力
された複数の点を接続することにより表わされる領域の
アウトラインを複数を線分に分割する分割ステップと、
分割された線分毎に、線分の位置の座標及び傾きを表わ
す線分データを検出し、線分毎の処理モードと共にメモ
リに記憶させる記憶ステップと、原稿画像の処理時に、
1または複数主走査ライン毎に、上記線分データに基づ
いて上記領域を表わす領域データを演算する演算ステッ
プと、原稿の1主走査ライン毎に、演算された領域デー
タと線分毎に記憶された処理モードに基いて各主走査ラ
インの画像に処理を行う処理ステップと、を有する画像
処理装置の領域処理方法の提供にある。
第1図は本発明による装置の全体の回路構成を示すブ
ロック図である。CCD100は原稿からの反射光を受けアナ
ログ信号を出力しA/Dコンバータ101が8ビツトのデジタ
ル信号に変換し、その後シエーデイング補正回路102に
おいて補正される。シエーデイング補正された画像信号
は画像認識部104、編集回路部103に送られる。画像認識
部104では原稿画像の位置や大きさを認識する。編集回
路部103ではトリミングやマスキング等の編集処理を施
された後画像信号はバツフア105へ送られ、バツフア制
御回路107の制御に基づいて拡大や縮小及び主走査方向
の移動を施された後画像記録部110へ送られ、用紙等の
記録部材上に複写像として再生される。
ロック図である。CCD100は原稿からの反射光を受けアナ
ログ信号を出力しA/Dコンバータ101が8ビツトのデジタ
ル信号に変換し、その後シエーデイング補正回路102に
おいて補正される。シエーデイング補正された画像信号
は画像認識部104、編集回路部103に送られる。画像認識
部104では原稿画像の位置や大きさを認識する。編集回
路部103ではトリミングやマスキング等の編集処理を施
された後画像信号はバツフア105へ送られ、バツフア制
御回路107の制御に基づいて拡大や縮小及び主走査方向
の移動を施された後画像記録部110へ送られ、用紙等の
記録部材上に複写像として再生される。
アドレス発生回路106はCCDを駆動する為のクロツクや
シエーデイング補正や編集処理を行う為のアドレスを生
成する。
シエーデイング補正や編集処理を行う為のアドレスを生
成する。
CPU回路部108は全体を制御するCPU及びROM,RAM,タイ
マー回路,I/O部等を有し上記の回路部を制御すると共に
操作部109と領域指定の為のデジタイザ111に接続され
る。
マー回路,I/O部等を有し上記の回路部を制御すると共に
操作部109と領域指定の為のデジタイザ111に接続され
る。
第2図、第3図を用いて編集回路部(第1図103)を
詳細に説明する。
詳細に説明する。
編集メモリ401,402は、画像編集データ(すなわち、
画像処理を行う情報)を蓄積するRAMである。MSEL(メ
モリセレクト信号)を「H」レベルにすると、セレクタ
403,405がA側に選択され、編集メモリ401は、CCDアド
レス(主走査アドレス)によって制御される。このとき
に、セレクタ404,406は、B側が選択され、編集メモリ4
02はマイコンアドレスによって制御される。この状態
で、編集メモリ402は、マイコンのアドレスバスとデー
タバスとに接続され、マイコンが自由にリード、ライト
することができる。
画像処理を行う情報)を蓄積するRAMである。MSEL(メ
モリセレクト信号)を「H」レベルにすると、セレクタ
403,405がA側に選択され、編集メモリ401は、CCDアド
レス(主走査アドレス)によって制御される。このとき
に、セレクタ404,406は、B側が選択され、編集メモリ4
02はマイコンアドレスによって制御される。この状態
で、編集メモリ402は、マイコンのアドレスバスとデー
タバスとに接続され、マイコンが自由にリード、ライト
することができる。
ところで、編集メモリ401,402がCCDアドレスに接続さ
れると、編集メモリ401,402のアドレスとCCDの画素番地
とが対応する。つまり、メモリアドレス1番地には、CC
Dの1番目の画素が対応し、n番地にはn番目の画素が
対応し、全部で5000画素のCCDを使う編集メモリとし
て、8Kバイト(8Kビツト×8)を使用している。したが
って、m番目の画素を加工する加工データは画像メモリ
のm番地に書込まれるようにする。
れると、編集メモリ401,402のアドレスとCCDの画素番地
とが対応する。つまり、メモリアドレス1番地には、CC
Dの1番目の画素が対応し、n番地にはn番目の画素が
対応し、全部で5000画素のCCDを使う編集メモリとし
て、8Kバイト(8Kビツト×8)を使用している。したが
って、m番目の画素を加工する加工データは画像メモリ
のm番地に書込まれるようにする。
また、編集メモリ401,402は、6ビツト構成となって
おり、上記実施例において、ビツト0は「画像許可」、
ビツト1は「画像禁止領域が黒」、ビツト2は「ネ
ガ」、ビツト3は「黒出力」、ビツト4,5は「γ補正レ
ベル」、ビツト6は「写真領域」をそれぞれ示す画像編
集データが格納される。
おり、上記実施例において、ビツト0は「画像許可」、
ビツト1は「画像禁止領域が黒」、ビツト2は「ネ
ガ」、ビツト3は「黒出力」、ビツト4,5は「γ補正レ
ベル」、ビツト6は「写真領域」をそれぞれ示す画像編
集データが格納される。
さらに、編集メモリ401,402というようにメモリが2
系統存在するのは、1ライン毎にMSEL(メモリセレクト
信号)を「H」、「L」にして、マイコンアクセスのRA
MとCCDアドレスアクセスのRAMとを切換えるようにする
ためである。つまり、マイコンアクセスにしておき、次
の情報を一方のメモリに書込んでるときに、既に書込ま
れた他方のメモリを、CCD画像編集用として使用してい
る。
系統存在するのは、1ライン毎にMSEL(メモリセレクト
信号)を「H」、「L」にして、マイコンアクセスのRA
MとCCDアドレスアクセスのRAMとを切換えるようにする
ためである。つまり、マイコンアクセスにしておき、次
の情報を一方のメモリに書込んでるときに、既に書込ま
れた他方のメモリを、CCD画像編集用として使用してい
る。
画像編集データを新しいデータに切換えるには、MSEL
を切換えることによって、CCDアドレスアクセスのメモ
リを、マイコンが書換えたメモリに切換えればよい。す
なわち、最大1ライン毎に編集データを変更できる。画
像編集データを変更しない場合、つまりMSELを変化させ
ない場合、常に同じ画像編集データが使用される。
を切換えることによって、CCDアドレスアクセスのメモ
リを、マイコンが書換えたメモリに切換えればよい。す
なわち、最大1ライン毎に編集データを変更できる。画
像編集データを変更しない場合、つまりMSELを変化させ
ない場合、常に同じ画像編集データが使用される。
次に、画像編集データについて説明する。
シエーデイング補正された画像データは、第3図に示
すトリミングブロツク410に送られる。この実施例の画
像データにおいて、「FF」は黒を表し、「00」は白を表
し、数字が大きいほど黒に近くなる。
すトリミングブロツク410に送られる。この実施例の画
像データにおいて、「FF」は黒を表し、「00」は白を表
し、数字が大きいほど黒に近くなる。
また、第3図に示すビツト0〜6は、第2図に示すセ
レクタ405または406から送られ、または向う信号であ
り、画像編集データである。
レクタ405または406から送られ、または向う信号であ
り、画像編集データである。
編集メモリ401または402から出力された編集データは
セツト/リセツト回路414を経て各処理部410,411,412,4
13へ供給される。
セツト/リセツト回路414を経て各処理部410,411,412,4
13へ供給される。
第3図にはビツト3に対応するセツト/リセツト回路
のみ示すが、他のビツトに対しても同様の構成をとる。
回路部414への入力をISi,出力をOSiとすると、ゲート45
7とフリツプフロツプ456により入力ISiが“1"になる度
に出力OSiが“1"と“0"をくり返す。逆に入力ISiつまり
編集メモリのデータが“0"の間、出力OSiは前回の状態
を保持することになる。
のみ示すが、他のビツトに対しても同様の構成をとる。
回路部414への入力をISi,出力をOSiとすると、ゲート45
7とフリツプフロツプ456により入力ISiが“1"になる度
に出力OSiが“1"と“0"をくり返す。逆に入力ISiつまり
編集メモリのデータが“0"の間、出力OSiは前回の状態
を保持することになる。
従って、ある主走査ラインに注目した時、領域の変化
点座標に対応する編集メモリアドレスの必要ビツトに
“1"をセツトしておけば良い。以下各処理について詳し
く説明する。
点座標に対応する編集メモリアドレスの必要ビツトに
“1"をセツトしておけば良い。以下各処理について詳し
く説明する。
トリミングブロツク410にはAND回路450,451とOR回路4
52とインバータ453とで構成される組が、8組設けら
れ、他の7組を省略して示してある。セツト/リセツト
回路414の出力OS0が「1」のときに、ゲート451によっ
て画像信号が許可され、「0」の時には画像信号が禁止
されビツト1に対応するOS1の情報がゲート450を介して
画像データとして出力される。このために、OS0によっ
て画像データを禁止した領域について、OS0すなわちIS1
を指定することによって、黒または白の出力として選択
できる。
52とインバータ453とで構成される組が、8組設けら
れ、他の7組を省略して示してある。セツト/リセツト
回路414の出力OS0が「1」のときに、ゲート451によっ
て画像信号が許可され、「0」の時には画像信号が禁止
されビツト1に対応するOS1の情報がゲート450を介して
画像データとして出力される。このために、OS0によっ
て画像データを禁止した領域について、OS0すなわちIS1
を指定することによって、黒または白の出力として選択
できる。
回路ブロツク411は、ORゲート454を8個有し(その7
個を省略して示してある)、OS3によって、画像信号を
強制的に黒にすることができる。
個を省略して示してある)、OS3によって、画像信号を
強制的に黒にすることができる。
回路ブロツク412は、EX−ORゲート455を8個有し(そ
の7個を省略して示してある)、OS2を「H」にする
と、画像信号が反転され、ネガ画像になる。
の7個を省略して示してある)、OS2を「H」にする
と、画像信号が反転され、ネガ画像になる。
γ変換ROM413は、そのアドレス0〜7に画像データを
受け、γ変換信号を出力する。この場合は、OS4,OS5に
よって、4種類のγ変換信号から1つを選択することが
できる。
受け、γ変換信号を出力する。この場合は、OS4,OS5に
よって、4種類のγ変換信号から1つを選択することが
できる。
OS6は、画像データの1本としてバツフアメモリに送
られる。
られる。
第4図は、第1図におけるバツフア105とバツフア制
御回路107の詳細を示す図である。
御回路107の詳細を示す図である。
バツフア105は、画像の拡大、縮小、移動を行った
り、CCD読取りクロツク(各CCDCLK)に同期した画像デ
ータを、プリンタ同期クロツク(PCLK)に同期した画像
データに変換するものである。
り、CCD読取りクロツク(各CCDCLK)に同期した画像デ
ータを、プリンタ同期クロツク(PCLK)に同期した画像
データに変換するものである。
画像メモリ506,507は、ダブルバツフアメモリ構成に
なっており、それぞれ1ライン分の画像となっている。
つまり、8Kビツト×9構成のメモリを使用している。
なっており、それぞれ1ライン分の画像となっている。
つまり、8Kビツト×9構成のメモリを使用している。
次に、画像メモリ506に書込む場合を例にとって説明
する。
する。
まず、アドレスセレクタ504がAを選択すると、ライ
トアドレスカウンタ502のアドレスを画像メモリ506が入
力し、画像データ220がメモリに書込まれる。同時に、
メモリ507のアドレスセレクタ505がリードアドレスカウ
ンタ503を選択し、セレクタ509によって、メモリ507の
出力が選択され、画像データとして取り出される。そし
て、次のラインのときは、水平同期信号(HSYNC)によ
って、リードとライトとの切換えが行われ、上記の逆の
動作を行う。
トアドレスカウンタ502のアドレスを画像メモリ506が入
力し、画像データ220がメモリに書込まれる。同時に、
メモリ507のアドレスセレクタ505がリードアドレスカウ
ンタ503を選択し、セレクタ509によって、メモリ507の
出力が選択され、画像データとして取り出される。そし
て、次のラインのときは、水平同期信号(HSYNC)によ
って、リードとライトとの切換えが行われ、上記の逆の
動作を行う。
さらに、ライト動作のとき、BRM(バイナリ、レー
ト、マルチプライヤ)501によって、CCDCLKを間引くこ
とによってライトアドレスカウンタを動作させると、バ
ツフア105には、間引かれた場所のデータがスキツプさ
れる。したがって、画像データが縮小する。
ト、マルチプライヤ)501によって、CCDCLKを間引くこ
とによってライトアドレスカウンタを動作させると、バ
ツフア105には、間引かれた場所のデータがスキツプさ
れる。したがって、画像データが縮小する。
同様に、BRM510によって、リードアドレスカウンタ50
3に入力するクロツクを間引くことによって、間引かれ
たクロツクの所だけ画像データ220が重複して出力され
る。したがって、間引きの度合に応じて画像データが拡
大する。
3に入力するクロツクを間引くことによって、間引かれ
たクロツクの所だけ画像データ220が重複して出力され
る。したがって、間引きの度合に応じて画像データが拡
大する。
この場合、ライトアドレスカウンタ502、リードアド
レスカウンタ503の開始アドレスをマイコンで自由に設
定できるが、同じ値をセツトすると画像の移動なく、異
なるアドレスを設定すると画像の移動を行うことができ
る。
レスカウンタ503の開始アドレスをマイコンで自由に設
定できるが、同じ値をセツトすると画像の移動なく、異
なるアドレスを設定すると画像の移動を行うことができ
る。
さらに、画像データ220は、1ビツト写真領域信号が
付加され、画像8ビツト、制御信号1ビツトの合計9ビ
ツトが送られるが、この1ビツトの制御信号も画像と同
じように拡大、縮小している。したがって、変倍後も、
制御信号と画像とが1対1に対応する。変倍編集された
画像データと制御信号とは、記録部210へ送られる。
付加され、画像8ビツト、制御信号1ビツトの合計9ビ
ツトが送られるが、この1ビツトの制御信号も画像と同
じように拡大、縮小している。したがって、変倍後も、
制御信号と画像とが1対1に対応する。変倍編集された
画像データと制御信号とは、記録部210へ送られる。
記録部210においては、図示していないが、各画素の
写真文字の制御信号に従って、記録特性を変化させ、文
字/写真それぞれに合った画像を形成する。
写真文字の制御信号に従って、記録特性を変化させ、文
字/写真それぞれに合った画像を形成する。
上記実施例において、制御信号1ビツトのみを画像信
号とともに拡大、縮小しているが、多数の制御信号を画
像信号とともに拡大、縮小するようにしてもよい。これ
によって、画像信号と対応した種々の信号を送ることが
できる。
号とともに拡大、縮小しているが、多数の制御信号を画
像信号とともに拡大、縮小するようにしてもよい。これ
によって、画像信号と対応した種々の信号を送ることが
できる。
また、上記実施例において、CCD1画素に対応して編集
メモリを持っているが、複数画素を1ブロツクとし、こ
のブロツクに対応して編集メモリを持つようにしてもよ
い。
メモリを持っているが、複数画素を1ブロツクとし、こ
のブロツクに対応して編集メモリを持つようにしてもよ
い。
前述の編集メモリ401,402を用いて非矩形領域の編集
を実現する手順について第5図に示す。
を実現する手順について第5図に示す。
操作者がデジタイザー111によって、第6図のように
点P0,P1,…,PNと入力する毎に各点の座標(x0,y0),
(x1,y1),…(xN,yN)を第7図のようなRAM上の領域
座標テーブルに入力順に登録してゆく(SP500,SP50
1)。
点P0,P1,…,PNと入力する毎に各点の座標(x0,y0),
(x1,y1),…(xN,yN)を第7図のようなRAM上の領域
座標テーブルに入力順に登録してゆく(SP500,SP50
1)。
必要な点を全て入力し終えたら(SP502)、第8図に
示すような線分テーブルをRAM上のエリアに作成する(S
P503)。この線分テーブルは領域を囲む各線分に対応し
て作成する。例えば第6図のような領域については、点
P0と点P1を結ぶ線分をL0、点P1と点P2を結ぶ線分をL1、
以下同様にL2,…LNとし計N+1本の線分が定義されそ
の1本ずつに第8図のような線分テーブルが作成され
る。但し主走査方向に平行な線分すなわちyi=yi+1の時
は線分テーブルを作成しない。
示すような線分テーブルをRAM上のエリアに作成する(S
P503)。この線分テーブルは領域を囲む各線分に対応し
て作成する。例えば第6図のような領域については、点
P0と点P1を結ぶ線分をL0、点P1と点P2を結ぶ線分をL1、
以下同様にL2,…LNとし計N+1本の線分が定義されそ
の1本ずつに第8図のような線分テーブルが作成され
る。但し主走査方向に平行な線分すなわちyi=yi+1の時
は線分テーブルを作成しない。
ここで線分Liテーブルの内容について詳細な説明を加
える。
える。
線分Liは点Piと点Pi+1を結ぶ線分である。
この時線分スタート副走査座標YSiはmin(Yi,Yi+1)
であり、線分エンド副走査座標YEiはmax(Yi,Yi+1)で
ある。また、線分スタート主走査座標XSiはYSiがYiの時
はXiでYSiがYi+1の時はXi+1である。便宜上Xi,Xi+1のう
ちXSiでない方をXEiとする。
であり、線分エンド副走査座標YEiはmax(Yi,Yi+1)で
ある。また、線分スタート主走査座標XSiはYSiがYiの時
はXiでYSiがYi+1の時はXi+1である。便宜上Xi,Xi+1のう
ちXSiでない方をXEiとする。
線分傾き整数部Kiは(XEi−XSi)/(YEi−YSi)の商
であり、分数部はXEi−XSi=Ki×(YEi−YSi)+DXiを
満たすDXiとDYi=YEi−YSiで求められるDYiから成る。E
Xi,XB0i,XB1iは実際の複写動作中に使用されるテンポラ
リバツフアである。
であり、分数部はXEi−XSi=Ki×(YEi−YSi)+DXiを
満たすDXiとDYi=YEi−YSiで求められるDYiから成る。E
Xi,XB0i,XB1iは実際の複写動作中に使用されるテンポラ
リバツフアである。
処理内容Tiは第6図の領域内に施すべき編集処理を示
し、具体的には前述の編集メモリのセツト内容に一致す
る。例えば領域内の画像のみ取り出す場合はビツト0を
1にし、Ti=01HEXとなりさらにその画像を写真処理す
る場合はビツト6も1にし、Ti=41HEXとなる。
し、具体的には前述の編集メモリのセツト内容に一致す
る。例えば領域内の画像のみ取り出す場合はビツト0を
1にし、Ti=01HEXとなりさらにその画像を写真処理す
る場合はビツト6も1にし、Ti=41HEXとなる。
第5図SP503での線分テーブルの作成が終了し複写動
作のスタートを操作部109により指示されたら(SP504)
第8図の3つのバツフア傾き演算バツフアEXi,処理座標
バツフアXB0i,XB1iを共に0に初期化し(SP505)、また
前述の編集メモリ401,402の両バンクを0に初期化する
(SP506)。以上の準備ができたら水平同期信号HSYNCの
CPUへの割込みを許可すると共に走査開始し(SP507)、
その後複写動作を行う(SP508)。
作のスタートを操作部109により指示されたら(SP504)
第8図の3つのバツフア傾き演算バツフアEXi,処理座標
バツフアXB0i,XB1iを共に0に初期化し(SP505)、また
前述の編集メモリ401,402の両バンクを0に初期化する
(SP506)。以上の準備ができたら水平同期信号HSYNCの
CPUへの割込みを許可すると共に走査開始し(SP507)、
その後複写動作を行う(SP508)。
第9図に複写動作期間中の編集メモリ401,402に対す
る制御手順を示し、以下に説明する。
る制御手順を示し、以下に説明する。
編集メモリ401,402に対するアクセスはHSYNC割り込み
に同期して行われる。本実施例は1ライン毎の割り込み
で制御しているが、望まれる編集精度に応じて所定の複
数のライン単位に制御しても良い。まず、編集メモリの
バンクを切換えて(SP900)、すでに前ラインの割込み
で準備されている方のメモリをCCD画像編集用に使用
し、前ラインで編集用に使用していた方のメモリに次ラ
インで使用すべき編集データを以下のステツプで書く。
に同期して行われる。本実施例は1ライン毎の割り込み
で制御しているが、望まれる編集精度に応じて所定の複
数のライン単位に制御しても良い。まず、編集メモリの
バンクを切換えて(SP900)、すでに前ラインの割込み
で準備されている方のメモリをCCD画像編集用に使用
し、前ラインで編集用に使用していた方のメモリに次ラ
インで使用すべき編集データを以下のステツプで書く。
次に、光学系の副走査位置を示すRAM上のエリアCNTを
1インクリメントし(SP901)、更に、線分の番号を示
すRAM上のエリアiを0に初期化する(SP902)。1回の
HSYNC割込みでiは0からN迄変化して、線分の数だけ
(SP903)以下の処理をくり返す。
1インクリメントし(SP901)、更に、線分の番号を示
すRAM上のエリアiを0に初期化する(SP902)。1回の
HSYNC割込みでiは0からN迄変化して、線分の数だけ
(SP903)以下の処理をくり返す。
まず、線分Liの副走査位置と現在の副走査位置の関係
を調べる。もし、YSi>CNTならば、まだ線分Liに到達し
ていない為、何の処理も行わずへとぶ(SP903)。ま
た、2本の線分の継ぎ部分については本実施例では副走
査方向に関して前にある線分の終端において処理してい
る為、YSi=CNTの時もへとぶ(SP903)。
を調べる。もし、YSi>CNTならば、まだ線分Liに到達し
ていない為、何の処理も行わずへとぶ(SP903)。ま
た、2本の線分の継ぎ部分については本実施例では副走
査方向に関して前にある線分の終端において処理してい
る為、YSi=CNTの時もへとぶ(SP903)。
YSi<CNTならば次に線分Liの副走査後端YEiとCNTを比
較し(SP904)、もしYEiCNTつまり現在の副走査位置
が線分Liの間にあれば(SP905)以下の処理を行う。
較し(SP904)、もしYEiCNTつまり現在の副走査位置
が線分Liの間にあれば(SP905)以下の処理を行う。
(SP905)から(SP909)までは任意の傾きを持つ線分
を離散的に演算生成する処理である。
を離散的に演算生成する処理である。
線分の傾きは前述のように整数部Kiと分数部DXi/DYi
で定義してあるから、副走査座標が1進む度に主走査座
標は少なくともKi進める(SP907,SP909)。そして、分
数部については副走査座標が1進み度にテンポラリバツ
フアEXiに分子DXiを加算してゆき(SP906)、その合計
がDYiより大きくなったところで(SP905)、主走査座標
を1進める(SP909)。そして、その時テンポラリバツ
フアEXiからDYiを減じておく(SP908)。また、テンポ
ラリバツフアEXiは副走査開始前に0に初期化してお
く。
で定義してあるから、副走査座標が1進む度に主走査座
標は少なくともKi進める(SP907,SP909)。そして、分
数部については副走査座標が1進み度にテンポラリバツ
フアEXiに分子DXiを加算してゆき(SP906)、その合計
がDYiより大きくなったところで(SP905)、主走査座標
を1進める(SP909)。そして、その時テンポラリバツ
フアEXiからDYiを減じておく(SP908)。また、テンポ
ラリバツフアEXiは副走査開始前に0に初期化してお
く。
以上のようにして得られた主走査座標BUFがもし前々
ラインで処理された主走査座標XB1iと異なる時に編集メ
モリのアドレスBUFに編集処理内容Tiをセツトし(SP91
2)、また前々ラインで編集メモリの同じバンクを用い
て処理した編集内容をリセツトする為アドレスXB1iに0
をセツトする(SP911)。
ラインで処理された主走査座標XB1iと異なる時に編集メ
モリのアドレスBUFに編集処理内容Tiをセツトし(SP91
2)、また前々ラインで編集メモリの同じバンクを用い
て処理した編集内容をリセツトする為アドレスXB1iに0
をセツトする(SP911)。
また、処理すべき座標BUFが前々ラインで処理した座
標XB1iと等しい時、SP911,SP912の処理はスキツプする
(SP910)。
標XB1iと等しい時、SP911,SP912の処理はスキツプする
(SP910)。
その後、2つある編集メモリバツフアの各々について
線分Liに対して処理した座標バツフアXB1iとXB0iを更新
する(SP913,SP914)。一方、SP904において副走査座標
CNTが線分Liの後端YEiより大きくなった時は、YEi+1
とYEi+2の2ラインにわたって線分Liの後端処理を行
う。すなわち前々ラインで処理した編集メモリアドレス
XB1iを0でリセツトする(SP915,SP916)。編集メモリ
が2バンクある為、2ラインにわたって処理をする。
線分Liに対して処理した座標バツフアXB1iとXB0iを更新
する(SP913,SP914)。一方、SP904において副走査座標
CNTが線分Liの後端YEiより大きくなった時は、YEi+1
とYEi+2の2ラインにわたって線分Liの後端処理を行
う。すなわち前々ラインで処理した編集メモリアドレス
XB1iを0でリセツトする(SP915,SP916)。編集メモリ
が2バンクある為、2ラインにわたって処理をする。
以上の処理を線分L0からLNの全てについて(SP917,SP
918)iを更新しながら行った後、わり込み処理を終了
する。
918)iを更新しながら行った後、わり込み処理を終了
する。
以上の処理の様子を模式的に示したのが第10図であ
る。
る。
ここで線分Liは(xi,yi)から(xi+1,yi+1)までの傾
き1/2の線分である。
き1/2の線分である。
副走査アドレスが1進む度に2つの編集メモリバンク
0と1が交互に適用されていることが分かる。そして、
ある副走査アドレスに注目すると必らず前々ラインで処
理された主走査アドレスに0が書き込まれ新しい主走査
アドレスに処理内容Tiが書き込まれている。
0と1が交互に適用されていることが分かる。そして、
ある副走査アドレスに注目すると必らず前々ラインで処
理された主走査アドレスに0が書き込まれ新しい主走査
アドレスに処理内容Tiが書き込まれている。
また、副走査アドレスyi+1+1とyi+1+2が第9図
(SP916)で説明した終了処理であり、前々ラインでの
処理アドレスに0が書き込まれているのが分かる。
(SP916)で説明した終了処理であり、前々ラインでの
処理アドレスに0が書き込まれているのが分かる。
以上のように領域を領域を生成する線分に分割し、各
々を全く独立に制御することで第6図のような非矩形も
容易に処理できる。
々を全く独立に制御することで第6図のような非矩形も
容易に処理できる。
さらに本方式の特長はその線分が主走査方向について
領域の開始点が終了点かを全く意識する必要がないとこ
ろである。例えば第6図の副走査座標YSに注目すると点
Aが領域の開始点であり点Bが領域の終了点である。し
かしながら、編集メモリ上で点Aと点Bに対応するアド
レスには同じ処理内容が書き込まれる為前述した編集回
路第3図フリツプフロツプ456により点Aで処理が開始
され点Bでは逆に終了する。
領域の開始点が終了点かを全く意識する必要がないとこ
ろである。例えば第6図の副走査座標YSに注目すると点
Aが領域の開始点であり点Bが領域の終了点である。し
かしながら、編集メモリ上で点Aと点Bに対応するアド
レスには同じ処理内容が書き込まれる為前述した編集回
路第3図フリツプフロツプ456により点Aで処理が開始
され点Bでは逆に終了する。
さらに本方式の特長は複数領域が重なったような場合
に対しても容易に処理できる点である。
に対しても容易に処理できる点である。
第11図にその例を示す。
第11図は、2つの三角形領域が一部重なっているケー
スであり、一方は写真処理をもう一方はネガポジ反転処
理を要求している。このような場合本方式においては重
複している図の斜線部分に対して容易にその両方の処理
を施すことができる。例えばある副走査位置Yにおける
編集メモリの内容として、写真領域であるアドレスx1と
x2に写真処理コード40Hをネガポジ反転領域であるアド
レスx6とx5にネガポジ反転処理コード04Hが書き込まれ
ており、その結果処理結果に示す処理が可能である。
スであり、一方は写真処理をもう一方はネガポジ反転処
理を要求している。このような場合本方式においては重
複している図の斜線部分に対して容易にその両方の処理
を施すことができる。例えばある副走査位置Yにおける
編集メモリの内容として、写真領域であるアドレスx1と
x2に写真処理コード40Hをネガポジ反転領域であるアド
レスx6とx5にネガポジ反転処理コード04Hが書き込まれ
ており、その結果処理結果に示す処理が可能である。
第2の実施例として、更に高速化した処理方式を説明
する。前述の方式においてはHSYNC割込み毎に全ての線
分について処理を行ったが、例えば第6図の場合線分L
N-1とLNとL0がある副走査位置で全て編集に寄与するの
ではなく、そのうちの高々1本だけが常に有効である。
する。前述の方式においてはHSYNC割込み毎に全ての線
分について処理を行ったが、例えば第6図の場合線分L
N-1とLNとL0がある副走査位置で全て編集に寄与するの
ではなく、そのうちの高々1本だけが常に有効である。
従ってLN-1とLNとL0を1つのグループとして扱うこと
で割込み処理を高速化し、より多くの領域が処理可能と
なる。
で割込み処理を高速化し、より多くの領域が処理可能と
なる。
第2の実施例において、線分テーブルは第12図の如く
構成される。これは第8図の線分Liテーブルの最後に線
分Liの後に接続している線分の番号を格納するRAM上の
エリアSiを付加したものである。
構成される。これは第8図の線分Liテーブルの最後に線
分Liの後に接続している線分の番号を格納するRAM上の
エリアSiを付加したものである。
例えば第6図の例ではSN-1=NでありまたSN=0とな
る。また線分L0のように後に接続する線分が無い場合に
はS0=FFHEX等のように実用上有り得ない線分番号をセ
ツトしておく。
る。また線分L0のように後に接続する線分が無い場合に
はS0=FFHEX等のように実用上有り得ない線分番号をセ
ツトしておく。
また第2の実施例においては各割り込み処理毎に線分
テーブルを直接アクセスするのではなく第12図のグルー
プテーブルをアクセスすることになる。
テーブルを直接アクセスするのではなく第12図のグルー
プテーブルをアクセスすることになる。
グループテーブルの各々は線分テーブルの各々と全く
同じフオーマツトであり、グループを構成する線分のう
ち1つのテーブルが常にロードされている。
同じフオーマツトであり、グループを構成する線分のう
ち1つのテーブルが常にロードされている。
第11図を例に挙げて考えると線分L1とL5は各々が1つ
のグループを形成しL3とL2及びL6とL4が2本で1つのグ
ループを形成し計4つのグループが形成される。
のグループを形成しL3とL2及びL6とL4が2本で1つのグ
ループを形成し計4つのグループが形成される。
グループG0をL1,グループG1をL3とL2、グループG2をL
6とL4,グループG3をL5とすると、グループG1テーブルは
副走査座標y3迄は線分L3テーブルであり、y3以降は線分
L2テーブルである。線分L3テーブルには接続線分番号S3
として“2"がセツトされているので副走査座標y3になっ
たところでグループG1テーブルの内容を線分L2テーブル
に切換えることができる。
6とL4,グループG3をL5とすると、グループG1テーブルは
副走査座標y3迄は線分L3テーブルであり、y3以降は線分
L2テーブルである。線分L3テーブルには接続線分番号S3
として“2"がセツトされているので副走査座標y3になっ
たところでグループG1テーブルの内容を線分L2テーブル
に切換えることができる。
このようにすると前述の実施例では第11図の場合常に
6本の線分について処理を必要としていたのが、第2の
実施例では4本の線分について処理すれば良いことにな
る。
6本の線分について処理を必要としていたのが、第2の
実施例では4本の線分について処理すれば良いことにな
る。
第3の実施例として領域を構成する線分の一部が直線
でない場合の処理方式を説明する。
でない場合の処理方式を説明する。
第13図に示すような形状の領域に対しても領域を線分
に分割して処理するという考え方は大変有効である。こ
の場合線分L1を第14図に示すような差分テーブルとして
用意しておく。
に分割して処理するという考え方は大変有効である。こ
の場合線分L1を第14図に示すような差分テーブルとして
用意しておく。
また、第15図の如く線分テーブルには第8図の要素に
さらに線分タイプPiを付加し、Piが0の時は直線として
第1の実施例の如く制御し、Piが1の時は直線ではない
ため線分傾きデータのかわりに前記差分テーブルの先頭
アドレスAiをセツトしておく。また差分データのアクセ
スアドレスを更新するためのバツフアBiを用意する。
さらに線分タイプPiを付加し、Piが0の時は直線として
第1の実施例の如く制御し、Piが1の時は直線ではない
ため線分傾きデータのかわりに前記差分テーブルの先頭
アドレスAiをセツトしておく。また差分データのアクセ
スアドレスを更新するためのバツフアBiを用意する。
HSYNC割込み内の処理手順を第16図に示す。SP900〜SP
904については第9図と同じである。副走査座標位置が
線分Liの制御範囲に入ったら線分のタイプPiを調べ(SP
1601)直線ならばSP905へ進み、以下第1の実施例と同
じである。Pi=1ならば差分テーブルのアドレスAi+Bi
の内容をRAM上のエリアdiにセツトし(SP1602)、次の
割り込みの為にアクセスアドレスBiを1更新し(SP160
3)、前回の処理座標XB0iに差分diを加えて今回の処理
座標BUFとする(SP1604)。以下第9図SP910と同じであ
る。このように本実施例においては第13図のような直線
と曲線からなる領域に対しても容易に編集処理が可能と
なる。
904については第9図と同じである。副走査座標位置が
線分Liの制御範囲に入ったら線分のタイプPiを調べ(SP
1601)直線ならばSP905へ進み、以下第1の実施例と同
じである。Pi=1ならば差分テーブルのアドレスAi+Bi
の内容をRAM上のエリアdiにセツトし(SP1602)、次の
割り込みの為にアクセスアドレスBiを1更新し(SP160
3)、前回の処理座標XB0iに差分diを加えて今回の処理
座標BUFとする(SP1604)。以下第9図SP910と同じであ
る。このように本実施例においては第13図のような直線
と曲線からなる領域に対しても容易に編集処理が可能と
なる。
以上説明した様に本発明によれば、指定領域のアウト
ラインを複数の線分に分割し、各線分の位置の座標と傾
きを表わす線分データを記憶し、原稿画像の処理時に、
線分データに基づいて主走査ライン単位で領域を表わす
領域データを演算するので、線分の長さや傾きによら
ず、1つの線分を表わすために必要なメモリの量は一定
であり、少ないメモリ量で非矩形の領域を指定すること
ができる。
ラインを複数の線分に分割し、各線分の位置の座標と傾
きを表わす線分データを記憶し、原稿画像の処理時に、
線分データに基づいて主走査ライン単位で領域を表わす
領域データを演算するので、線分の長さや傾きによら
ず、1つの線分を表わすために必要なメモリの量は一定
であり、少ないメモリ量で非矩形の領域を指定すること
ができる。
また、各線分毎に処理モードも記憶しておくので、原
稿の1主走査ライン毎に、どのような処理を行うかを容
易に制御でき、指定領域の画像の編集処理を容易に行う
ことができる。
稿の1主走査ライン毎に、どのような処理を行うかを容
易に制御でき、指定領域の画像の編集処理を容易に行う
ことができる。
第1図は装置全体のブロツク図、 第2図及び第3図は編集回路のブロツク図、 第4図は編集メモリ周辺回路ブロツク図、 第5図は編集処理の全体フローチヤート図、 第6図は領域の模式図、 第7図及び第8図は編集処理に用いるデータテーブル説
明図、 第9図は編集処理の詳細なフローチヤート図、 第10図は編集処理の模式図、 第11図は複数領域編集の説明図、 第12図は編集処理に用いるデータテーブル説明図、 第13図は領域の例を示す図、 第14図は曲線を示す差分テーブル例を示す図、 第15図はデータテーブル説明図、 第16図は編集処理フローチヤート図であり、 100はCCD、103は編集回路部、401,402は編集メモリ、41
4はセツト/リセツト回路である。
明図、 第9図は編集処理の詳細なフローチヤート図、 第10図は編集処理の模式図、 第11図は複数領域編集の説明図、 第12図は編集処理に用いるデータテーブル説明図、 第13図は領域の例を示す図、 第14図は曲線を示す差分テーブル例を示す図、 第15図はデータテーブル説明図、 第16図は編集処理フローチヤート図であり、 100はCCD、103は編集回路部、401,402は編集メモリ、41
4はセツト/リセツト回路である。
Claims (2)
- 【請求項1】原稿の所望の領域を多角形の複数のコーナ
ーを表わす点として入力する第1の入力ステップと、 上記所望領域の画像に対する処理モードを入力する第2
の入力ステップと、 入力された複数の点を接続することにより表わされる領
域のアウトラインを複数の線分に分割する分割ステップ
と、 分割された線分毎に、線分の位置の座標及び傾きを表わ
す線分データを検出し、線分毎に処理モードと共にメモ
リに記憶させる記憶ステップと、 原稿画像の処理時に、1または複数主走査ライン毎に、
上記線分データに基づいて上記領域を表わす領域データ
を演算する演算ステップと、 原稿の1主走査ライン毎に、演算された領域データと線
分毎に記憶された処理モードに基いて各主走査ラインの
画像に処理を行う処理ステップと、を有することを特徴
とする画像処理装置の領域処理方法。 - 【請求項2】上記複数の線分の少なくとも1つは、主走
査ラインと副走査ラインのいずれにも平行でないことを
特徴とする請求項1記載の画像処理装置の領域処理方
法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1200477A JP2840306B2 (ja) | 1989-08-02 | 1989-08-02 | 画像処理装置の領域処理方法 |
US08/174,683 US5583955A (en) | 1989-08-02 | 1993-12-28 | Image processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1200477A JP2840306B2 (ja) | 1989-08-02 | 1989-08-02 | 画像処理装置の領域処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0364252A JPH0364252A (ja) | 1991-03-19 |
JP2840306B2 true JP2840306B2 (ja) | 1998-12-24 |
Family
ID=16424968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1200477A Expired - Fee Related JP2840306B2 (ja) | 1989-08-02 | 1989-08-02 | 画像処理装置の領域処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5583955A (ja) |
JP (1) | JP2840306B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0606780B1 (en) * | 1993-01-11 | 2001-07-11 | Canon Kabushiki Kaisha | Image processing method and apparatus |
JP3808923B2 (ja) * | 1995-11-27 | 2006-08-16 | 株式会社東芝 | 情報処理装置 |
US20090327335A1 (en) * | 2008-06-30 | 2009-12-31 | General Electric Company | Systems and Methods For Generating Vendor-Independent Computer-Aided Diagnosis Markers |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1517870A (en) * | 1976-12-20 | 1978-07-12 | Ibm | Apparatus for producing vectors from raster scanned data |
US4773098A (en) * | 1980-05-27 | 1988-09-20 | Texas Instruments Incorporated | Method of optical character recognition |
JPS5738065A (en) * | 1980-08-20 | 1982-03-02 | Canon Inc | Video forming device |
JPS57145475A (en) * | 1981-03-05 | 1982-09-08 | Canon Inc | Digital image reproducer |
US4538182A (en) * | 1981-05-11 | 1985-08-27 | Canon Kabushiki Kaisha | Image processing apparatus |
AU575786B2 (en) * | 1982-10-04 | 1988-08-11 | Canon Kabushiki Kaisha | Image forming system |
DE3413651C3 (de) * | 1983-04-12 | 1997-11-20 | Canon Kk | Bildsignalverarbeitungsgerät |
GB2147474B (en) * | 1983-10-03 | 1987-05-07 | Shaken Kk | Method of processing character or pictorial image data |
JPS60260972A (ja) * | 1984-06-07 | 1985-12-24 | Fuji Xerox Co Ltd | 複写領域指定装置 |
JPS60260973A (ja) * | 1984-06-07 | 1985-12-24 | Fuji Xerox Co Ltd | 複写領域指定装置 |
US4684999A (en) * | 1984-08-24 | 1987-08-04 | Brother Kogyo Kabushiki Kaisha | Image reader |
US4733304A (en) * | 1984-10-11 | 1988-03-22 | Dai Nippon Insatsu Kabushiki Kaisha | Method of processing picture data for printing process and device implementing the same |
JPS6378475U (ja) * | 1986-11-11 | 1988-05-24 | ||
JPH077446B2 (ja) * | 1986-11-12 | 1995-01-30 | 松下電器産業株式会社 | 部品認識方法 |
US4899227A (en) * | 1987-01-26 | 1990-02-06 | Canon Kabushiki Kaisha | Image processing apparatus detecting the size or position of an information portion of an original |
US4965678A (en) * | 1987-03-03 | 1990-10-23 | Canon Kabushiki Kaisha | Area designation apparatus in image processing system |
US4965744A (en) * | 1987-03-13 | 1990-10-23 | Ricoh Company, Ltd. | Apparatus for erasing and extracting image data from particular region of orignal document |
US4856528A (en) * | 1987-06-26 | 1989-08-15 | John Hopkins University | Tumor volume determination |
JP2683008B2 (ja) * | 1988-02-16 | 1997-11-26 | 株式会社リコー | 矩形図形内部塗りつぶし方法 |
US5048099A (en) * | 1990-05-21 | 1991-09-10 | Eastman Kodak Company | Polygon-based method for automatic extraction of selected text in a digitized document |
-
1989
- 1989-08-02 JP JP1200477A patent/JP2840306B2/ja not_active Expired - Fee Related
-
1993
- 1993-12-28 US US08/174,683 patent/US5583955A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0364252A (ja) | 1991-03-19 |
US5583955A (en) | 1996-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0320014B1 (en) | Image processing system | |
JPH01184581A (ja) | 文書画像処理装置 | |
US4905095A (en) | Image processing apparatus | |
JPH03189878A (ja) | 画像処理装置の編集制御方式 | |
EP0410771A2 (en) | Image processing apparatus | |
JPH0547853B2 (ja) | ||
JP2840306B2 (ja) | 画像処理装置の領域処理方法 | |
US5923314A (en) | Image processing system | |
US5148294A (en) | Image processing apparatus and method for painting a memory with plural colors | |
JPH06334834A (ja) | 画像処理装置 | |
JP3221516B2 (ja) | 画像処理方法及び装置 | |
JP2794260B2 (ja) | デジタル画像処理システムの領域信号生成方法及び装置 | |
JP2568172B2 (ja) | 画像情報処理装置 | |
JPH01177272A (ja) | 画像処理装置 | |
JP2537192B2 (ja) | 画像再生装置 | |
JP2559710B2 (ja) | 画像処理方法 | |
JP3064305B2 (ja) | ディジタル複写機 | |
JP2834758B2 (ja) | 画像処理装置 | |
EP0418868B1 (en) | Image processing system | |
JPS6346872A (ja) | 画像処理装置 | |
JP2578785B2 (ja) | 画面作成処理方法 | |
JPH02277174A (ja) | 画像処理方法 | |
JP2926710B2 (ja) | 画像処理装置 | |
JP2957050B2 (ja) | 画像データ拡大装置 | |
JPH01236770A (ja) | 画像編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |