説明

画像処理装置および方法、記録媒体、並びにプログラム

【課題】 任意の図形を分割後の面積ができる限り均一に分割する。
【解決手段】 ステップS11で、分割する対象領域と、その分割数Nが指定される。ステップS12で、対象領域を占める総画素数Totalが取得される。ステップS13で、パラメータkが1に初期化され、ステップS14で、第k番目の分割領域Skの理想値St[k]が算出される。ステップS15で、理想値St[k]に基づいて第k番目のセクションSkの画素数の決定値Sd[k]が決定される。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、例えば、任意の図形の面積を画素単位で可能な限り均一に分割する場合に用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】例えば図1に示すように、3次元物体を、それを中心とする円周上の複数の位置から撮影して複数の2次元画像データを取得し、それらにコンピュータなどを用いて所定の処理を施すことにより3次元物体を含む所定の領域(同図においては円柱で示した領域。以下、再構成領域と記述する)の3次元画像データを生成する技術が存在する。
【0003】ところで、2次元画像データを用いて3次元画像データを生成する処理には、莫大な記憶空間および演算量が必要である。したがって、当該処理を1台の計算機(ワークステーションなどのコンピュータ)を用いて実行した場合、処理結果として3次元画像データを得るまでに長い時間を要してしまう問題があった。
【0004】そこで、例えば、「佐々木徹、福田安志:分散メモリ型マルチプロセッサシステムを用いた三次元X線CT像の再構成、情報処理学会pp1681、vol38,No9,Sep.1997」や「Feldkamp,L.A.,Davis,L.C.and Kress,J.W.:Practical Cone-beamAlgorithm,Optical Society of America,Vol.1,pp.612-619(1984)」などの文献に記載されているように、再構成領域を複数の平行線によって縦方向に分割し、分割した各領域に関わる演算を同時に異なる複数の演算を実行することが可能な並列計算機(または、複数の独立した計算機)に行わせることによって、3次元画像データを得るまでの処理時間を短縮させることが考えられる。
【0005】再構成領域を複数に分割し、分割した各領域に関わる演算を並列計算機の異なる計算機に同時に実行させる場合、再構成領域の分割方法が、3次元画像データを得るまでの処理時間を短縮するために重要な問題となる。
【0006】例えば、再構成領域を所定の方向から見た図形の形状が図2に示すようであるとする。図3は、再構成領域の分割の一例を示している。図3の場合、再構成領域を、同図の横軸方向に等幅で複数に分割する(同図の場合、6分割する)。6分割された各領域S1乃至S6に関わる演算は、並列に動作する6つの計算機P1乃至P6によって実行される。この場合、同図から明らかなように、各領域S1乃至S6の面積は大きく異なるので、図4に示すように、計算機P1乃至P6のそれぞれの処理時間(演算時間)も異なるものとなる。よって、最も処理時間が長い計算機P6の処理時間が、計算機P1乃至P6の全体としての実質的な処理時間T1となる。
【0007】次に、図5は、再構成領域の分割の他の例を示している。図5の場合、分割後の各領域の面積が均一になるように、再構成領域を横軸方向に分割する(同図の場合、6分割する)。6分割された各領域S1乃至S6に関わる演算は並列に動作する6つの計算機P1乃至P6に実行される。この場合、各領域S1乃至S6の面積は均一なので、計算機P1乃至P6のそれぞれの演算時間も図6に示すように均一となる。よって、計算機P1乃至P6の全体としての実質的な処理時間T2は、図3の場合における計算機P1乃至P6の全体としての実質的な処理時間T1よりも短縮される。
【0008】
【発明が解決しようとする課題】図5に示したように、任意の図形を分割後の各領域の面積が均一になるように、幾何学的に横軸方向に分割することは容易である。しかしながら、実際には、再構成領域の画像データは画素単位で構成されており、分割する境界線は画素と画素の間に限られる、換言すれば、分割は画素単位で実行する必要があるが、任意の形状を分割後の面積が均一となるように、画素単位で横軸方向に分割することは困難であり、その技術が確立されていない課題があった。
【0009】本発明はこのような状況に鑑みてなされたものであり、任意の図形を分割後の面積ができる限り均一となるように、画素単位で一定の方向に分割できるようにすることを目的とする。
【0010】
【課題を解決するための手段】本発明の画像処理装置は、図形の分割数を入力する入力手段と、図形の総画素数を取得する取得手段と、総画素数を分割数で除算して初期理想値を算出する算出手段と、図形における第k番目の分割領域の画素数の理想値を、初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算手段と、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値を決定する決定手段とを含むことを特徴とする。
【0011】前記決定手段には、第k番目の分割領域の画素数の理想値との誤差が最小となるように、図形の画素を行単位で加減して、第k番目の分割領域の画素数の決定値を決定させるようにすることができる。
【0012】本発明の画像処理方法は、図形の分割数を入力する入力ステップと、図形の総画素数を取得する取得ステップと、総画素数を分割数で除算して初期理想値を算出する算出ステップと、図形における第k番目の分割領域の画素数の理想値を、初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値を決定する決定ステップとを含むことを特徴とする。
【0013】本発明の記録媒体のプログラムは、図形の分割数を入力する入力ステップと、図形の総画素数を取得する取得ステップと、総画素数を分割数で除算して初期理想値を算出する算出ステップと、図形における第k番目の分割領域の画素数の理想値を、初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値を決定する決定ステップとを含むことを特徴とする。
【0014】本発明のプログラムは、図形の分割数を入力する入力ステップと、図形の総画素数を取得する取得ステップと、総画素数を分割数で除算して初期理想値を算出する算出ステップと、図形における第k番目の分割領域の画素数の理想値を、初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値を決定する決定ステップとをコンピュータに実行させることを特徴とする。
【0015】本発明の画像処理装置および方法、並びにプログラムにおいては、図形の分割数が入力され、図形の総画素数が取得されて、総画素数が分割数で除算されて初期理想値が算出される。さらに、図形における第k番目の分割領域の画素数の理想値が初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算され、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値が決定される。
【0016】
【発明の実施の形態】本発明を適用した3次元画像データ生成システムの構成例について、図7を参照して説明する。
【0017】撮像装置1は、3次元物体を中心とする円周上の複数の位置から、当該3次元物体を撮影して複数の2次元画像データを取得し、それらを統制装置2に出力する。統制装置2は、撮像装置1から入力される複数の2次元画像データを演算装置3−1乃至3−Nに供給するとともに、再構成領域を所定の方向から見た場合の形状を、平行する複数の直線によって画素単位で可能な限り均一に分割し、分割した各領域に関する演算処理を演算装置3−1乃至3−Nに振り分ける。また、統制装置2は、演算装置3−1乃至3−N(以下、演算装置3−1乃至3−Nを個々に区別する必要がない場合、単に演算装置3と記述する)から供給される演算結果を統合して、再構成領域の3次元画像データを生成する。演算装置3は、統制装置2によって振り分けられる演算処理を実行し、その結果を統制装置2に出力する。
【0018】図8は、所定のプログラムを実行することによって統制装置8として動作するワークステーションなどのような情報処理装置の構成例を示している。
【0019】この情報処理処置は、CPU(Central Processing Unit)21を内蔵している。CPU21にはバス24を介して、入出力インタフェース25が接続されている。入出力インタフェース25には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる操作入力部26、処理結果などを表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などよりなる表示部27、プログラムや各種のデータを格納するハードディスクドライブなどよりなる記憶部28、インタネットなどのネットワークを介してデータを通信する通信部29、および磁気ディスク31乃至半導体メモリ34などの記録媒体に対してデータを読み書きするドライブ30が接続されている。バス24には、ROM(Read Only Memory)22およびRAM(Random Access Memory)23が接続されている。
【0020】この情報処理装置に統制装置2としての動作を実行させるプログラムは、磁気ディスク31(フロッピディスクを含む)、光ディスク32(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク33(MD(Mini Disc)を含む)、もしくは半導体メモリ34に格納された状態で情報処理装置に供給され、ドライブ30によって読み出されて記憶部28に内蔵されるハードディスクドライブにインストールされている。記憶部28にインストールされているプログラムは、操作入力部26に入力されるユーザの操作に対応するCPU21の指令によって、記憶部28からRAM23にロードされて実行される。
【0021】なお、演算装置3も、図8に示したような構成例の情報処理装置に所定のプログラムを実行することによって実現することができる。また、演算装置3を複数のCPUを備える情報処理装置によって実現し、統制装置2によって割り当てられた演算処理をさらに分割して同時に実行させるようにすることもできる。
【0022】次に、3次元画像データ生成システムの動作について、図9のフローチャートを参照して説明する。
【0023】ステップS1において、撮像装置1は、3次元物体を中心とする円周上の複数の位置から当該3次元物体を撮影し、得られた複数の2次元画像データを統制装置2に出力する。
【0024】ステップS2において、統制装置2は、撮像装置1から入力される複数の2次元画像データを演算装置3−1乃至3−Nに供給するとともに、再構成領域を所定の方向から見た場合の形状(以下、対象領域と記述する)を、平行する複数の直線によって画素単位で可能な限り均一に分割し、分割した各領域に関する演算処理を演算装置3−1乃至3−Nに振り分ける。なお、対象領域を平行する複数の直線によって画素単位で可能な限り均一に分割する処理(以下、など分割処理と記述する)については、図10を参照して後述する。
【0025】ステップS3において、演算装置3は、統制装置2によって振り分けられた演算処理を実行し、その結果を統制装置2に出力する。ステップS4において、統制装置2は、演算装置3−1乃至3−Nから供給される演算結果を統合して、再構成領域の3次元画像データを生成する。
【0026】次に、ステップS2の統制装置2による分割処理について、図10のフローチャートを参照して説明する。なお、以下においては、図1に示したように再構成領域が円柱状であって、分割する対象領域が円形である場合を一例として説明する。
【0027】ステップS11において、統制装置2は、分割する対象領域と、その分割数Nを指定するユーザの操作を受け付ける。対象領域の指定方法は、いまの場合のように対象領域が円形であるときには、図11に示すように、その中心Cの座標(xc,yc)と半径rを指定するようにする。対象領域の形状によっては、縦幅hと横幅wと指定するようにしてもよい。
【0028】ステップS12において、統制装置2は、対象領域を包含する範囲の全ての画素について、各画素が対象領域に位置しているか否かを判定することにより、対象領域を占める総画素数Totalを取得する。いまの例のように対象領域が円形であるときには、対象領域を包含する範囲の全ての画素に次式(1)が適用されて、対象領域である円の中心C(xc,yc)と画素の中心の座標P(i,j)との距離CPが算出され、図12R>2に示すように、距離CPが対象領域の半径r以下である画素(図13の画素P2)は、対象領域を占める画素であると判定される。また、距離CPが対象領域の半径rよりも大きい画素(図13の画素P1)は対象領域を占めない画素であると判定される。
CP=√((xc−i)2+(yc−j)2)≦r ・・・(1)
【0029】なお、対象領域を包含する範囲の全ての画素をランダムにトレースして式(1)を適用するのではなく、縦方向の画素列毎に式(1)を適用して総画素数Totalを求める処理の高速化を図るようにする。
【0030】また、対象領域が円形のような点対称または線対称の形状である場合、対象領域の全体、すなわち、円形を占める画素数を取得するのではなく、円形の1/nの扇形を占める画素数を取得し、その値をn倍するなどして、総画素数Totalを取得する処理に要する時間を短縮するようにする。
【0031】さらに、統制装置2は、総画素数Totalを分割数Nで除算して、理想初期値St[0]を算出する。
St[0]=Total/N ・・・(2)
【0032】ステップS13において、統制装置2は、パラメータkを1に初期化する。
【0033】ステップS14において、統制装置2は、次式(3)に示すように、N分割する対象領域の第k番目の分割領域Sk(以下、セクションと記述する)の画素数の理想値St[k]を、理想初期値St[0]に、第(k−1)番目までの理想値(k−1)・Total/Nと、第1番目のセクションS1の画素数の決定値Sd[1]から第k−1番目のセクションSk1の画素数の決定値Sd[k−1]までの加算値ΣSdとの誤差を加算して算出する。なお、決定値Sd[]は、ステップS15において決定される。
St[k]
=St[0]+[(k−1)・Total/N−ΣSd]
=St[0]+[(k−1)・Total/N−(Sd[1]+・・・+Sd[k−1])]
・・・(3)
【0034】ただし、第1番目の分割領域S1の理想値St[1]は、初期理想値St[0]である。
St[1]=St[0]
【0035】例えば、第2番目の分割領域S2の理想値St[2]は、式(3)に従い、St[2]=St[0]+[Total/N−Sd[1]]
となる。
【0036】また、例えば、第3番目の分割領域S3の理想値St[3]は、式(3)に従い、St[3]=St[0]+[2・Total/N−(Sd[1]+Sd[2])]
となる。
【0037】ステップS15において、統制装置2は、第k番目のセクションSkの画素数の理想値St[k]に基づいて、第k番目のセクションSkの画素数の決定値Sd[k]を決定する。
【0038】具体的に説明する。以下、第k番目のセクションSkにおける左側から第1列目の行から第i番目の行までの画素の総数をS[k][i]と記述する。ここで、パラメータiは、セクションSkにおける行番号を示す。統制装置2は、次式(4)を満足するようなパラメータiの値を決定する。
【0039】すなわち、第k番目のセクションSkにおける第1列目の行から第i−1番目の行までの画素の総数S[k][i−1]が、第k番目のセクションSkの画素数の理想値St[k]よりも小さく、かつ、第k番目のセクションSkにおける第1列目の行から第i番目の行までの画素の総数S[k][i]が、第k番目のセクションSkの画素数の理想値St[k]以上となるように、パラメータiを1ずつインクリメントしながらその値を決定する。式(4)を満足するパラメータiの値をi’とする。
S[k][i−1]<St[k]≦S[k][i−1] ・・・(4)
【0040】次に、統制装置2は、第k番目のセクションSkにおける第1列目の行から第i’番目の行までの画素の総数S[k][i’]と第k番目のセクションSkの画素数の理想値St[k]との誤差|S[k][i’]−St[k]|=Δi’と、第k番目のセクションSkにおける第1列目の行から第i’−1番目の行までの画素の総数S[k][i’−1]と第k番目のセクションSkの画素数の理想値St[k]との誤差|S[k][i’−1]−St[k]|=Δ(i’−1)とを比較する。
【0041】Δi’がΔ(i’−1)以上である場合、統制装置2は、第k番目のセクションSkにおける第1列目の行から第i’番目の行までの画素の総数S[k][i’]を、第k番目のセクションSkの画素数の決定値Sd[k]に決定する。また、Δi’がΔ(i’−1)よりも小さい場合、統制装置2は、第k番目のセクションSkにおける第1列目の行から第i’−1番目の行までの画素の総数S[k][i’−1]を、第k番目のセクションSkの画素数の決定値Sd[k]に決定する。
【0042】ただし、k=Nである場合、すなわち、最後のセクションSNの画素の決定値Sd[N]は、次式(5)に示すように、総画素数Totalから、第1番目乃至第N−1番目までの各セクションの画素の決定値の総和ΣSd=(Sd[1]+・・・+Sd[N−1])を減算した値とする。
Sd[N]=Total−ΣSd ・・・(5)
【0043】ステップS16において、統制装置2は、パラメータkが分割数Nであるか否かを判定する。パラメータkが分割数Nではないと判定された場合、処理はステップS17に進む。ステップS17において、統制装置2は、パラメータkを1だけインクリメントする。処理はステップS14に戻り、以降の処理が繰り返される。その後、ステップS16において、パラメータkが分割数Nであると判定された場合、処理は図9のステップS3にリターンする。
【0044】以上説明したように、等分割処理によれば、例えば、最後のセクションSNの画素数の決定値Sd[N]だけが理想初期値St[0]から大きくずれてしまうような事態にはならず、図13に示すように、第1番目のセクションS1乃至第N番目のセクションSNの画素数の決定値Sd[1]乃至Sd[N](いまの場合、N=4)がほぼ均一となるので、演算装置3−1乃至3−Nの演算の負荷をほぼ等しくすることができる。よって、系の全体としての演算時間を短縮することが可能となる。
【0045】なお、上述した等分割処理では、縦軸方向にだけ分割する処理について説明したが、例えば、縦軸方向に分割した後、横軸方向に分割するようにすれば、任意の対象領域を、多軸方向に均等に分割することが可能となる。
【0046】また、本発明は、2次元の対象領域を分割する場合のみならず、3次元以上の対象領域を分割する場合にも適用することが可能である。
【0047】なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0048】また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0049】
【発明の効果】以上のように、本発明の画像処理装置および方法、並びにプログラムによれば、図形における第k番目の分割領域の画素数の理想値を、初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算し、第k番目の分割領域の画素数の理想値との誤差が最小となるように、第k番目の分割領域の画素数の決定値を決定するようにしたので、任意の図形を分割後の面積ができる限り均一となるように、画素単位で一定の方向に分割することが可能となる。
【図面の簡単な説明】
【図1】2次元画像データを用いて再構成領域の3次元画像データを生成する従来の技術について説明するための図である。
【図2】対象領域の形状の一例を示す図である。
【図3】対象領域を等幅で分割した一例を示す図である。
【図4】対象領域を等幅で分割した場合の処理時間について説明するための図である。
【図5】対象領域を面積が均等となるように分割した一例を示す図である。
【図6】対象領域を面積が均等となるように分割した場合の処理時間について説明するための図である。
【図7】3次元画像データ生成システムの構成例を示すブロック図である。
【図8】統制装置2を実現する情報処理装置の構成例を示すブロック図である。
【図9】3次元画像データ生成システムによる3次元画像データ生成処理を説明するフローチャートである。
【図10】ステップS2における統制装置2による等分割処理を説明するフローチャートである。
【図11】対象領域の指定方法について説明するための図である。
【図12】対象領域に含まれるか否かの判定方法について説明するための図である。
【図13】等分割処理の処理結果を説明するための図である。
【符号の説明】
1 撮像装置, 2 統制装置, 3 演算装置, 21 CPU, 31 磁気ディスク, 32 光ディスク, 33 光磁気ディスク, 34 半導体メモリ

【特許請求の範囲】
【請求項1】 複数の平行線によって任意の図形の面積を画素単位で均等に分割する画像処理装置において、前記図形の分割数を入力する入力手段と、前記図形の総画素数を取得する取得手段と、前記総画素数を前記分割数で除算して初期理想値を算出する算出手段と、前記図形における第k番目の分割領域の画素数の理想値を、前記初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算手段と、前記第k番目の分割領域の画素数の前記理想値との誤差が最小となるように、前記第k番目の分割領域の画素数の前記決定値を決定する決定手段とを含むことを特徴とする画像処理装置。
【請求項2】 前記決定手段は、前記第k番目の分割領域の画素数の前記理想値との誤差が最小となるように、前記図形の画素を行単位で加減して、前記第k番目の分割領域の画素数の前記決定値を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】 前記任意の図形は、2次元図形であることを特徴とする請求項1に記載の画像処理装置。
【請求項4】 複数の平行線によって任意の図形の面積を画素単位で均等に分割する画像処理装置の画像処理方法において、前記図形の分割数を入力する入力ステップと、前記図形の総画素数を取得する取得ステップと、前記総画素数を前記分割数で除算して初期理想値を算出する算出ステップと、前記図形における第k番目の分割領域の画素数の理想値を、前記初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、前記第k番目の分割領域の画素数の前記理想値との誤差が最小となるように、前記第k番目の分割領域の画素数の前記決定値を決定する決定ステップとを含むことを特徴とする画像処理方法。
【請求項5】 複数の平行線によって任意の図形の面積を画素単位で均等に分割する画像処理用のプログラムであって、前記図形の分割数を入力する入力ステップと、前記図形の総画素数を取得する取得ステップと、前記総画素数を前記分割数で除算して初期理想値を算出する算出ステップと、前記図形における第k番目の分割領域の画素数の理想値を、前記初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、前記第k番目の分割領域の画素数の前記理想値との誤差が最小となるように、前記第k番目の分割領域の画素数の前記決定値を決定する決定ステップとを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項6】 複数の平行線によって任意の図形の面積を画素単位で均等に分割する画像処理の制御用のコンピュータに、前記図形の分割数を入力する入力ステップと、前記図形の総画素数を取得する取得ステップと、前記総画素数を前記分割数で除算して初期理想値を算出する算出ステップと、前記図形における第k番目の分割領域の画素数の理想値を、前記初期理想値および第1番目から第k−1番目までの分割領域の画素数の決定値の総和を用いて演算する演算ステップと、前記第k番目の分割領域の画素数の前記理想値との誤差が最小となるように、前記第k番目の分割領域の画素数の前記決定値を決定する決定ステップとを実行させるプログラム。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate


【図9】
image rotate


【図12】
image rotate


【図10】
image rotate


【図11】
image rotate


【図13】
image rotate


【公開番号】特開2002−312798(P2002−312798A)
【公開日】平成14年10月25日(2002.10.25)
【国際特許分類】
【出願番号】特願2001−113985(P2001−113985)
【出願日】平成13年4月12日(2001.4.12)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】