JP7167699B2 - volume rendering device - Google Patents

volume rendering device Download PDF

Info

Publication number
JP7167699B2
JP7167699B2 JP2018239791A JP2018239791A JP7167699B2 JP 7167699 B2 JP7167699 B2 JP 7167699B2 JP 2018239791 A JP2018239791 A JP 2018239791A JP 2018239791 A JP2018239791 A JP 2018239791A JP 7167699 B2 JP7167699 B2 JP 7167699B2
Authority
JP
Japan
Prior art keywords
voxel
image
opacity
coordinate
value
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.)
Active
Application number
JP2018239791A
Other languages
Japanese (ja)
Other versions
JP2020102004A (en
Inventor
敏雄 茂出木
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2018239791A priority Critical patent/JP7167699B2/en
Publication of JP2020102004A publication Critical patent/JP2020102004A/en
Application granted granted Critical
Publication of JP7167699B2 publication Critical patent/JP7167699B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本開示は、2次元の断層画像を複数枚用いて、3次元的に可視化するためのボリュームレンダリング技術に関する。 The present disclosure relates to volume rendering technology for three-dimensional visualization using a plurality of two-dimensional tomographic images.

従来、CT、MRI、PETなど医療画像診断機器(モダリティ)により所定のスライス間隔で連続的に撮像され、DICOM形式等でPACS(Picture Archiving and Communication Systems)等の医療情報システムに保管されている複数の断層画像を基に、臓器等を3次元的に可視化することが行われている。 Conventionally, multiple images are taken continuously at predetermined slice intervals by medical imaging diagnostic equipment (modality) such as CT, MRI, and PET, and stored in a medical information system such as PACS (Picture Archiving and Communication Systems) in DICOM format. Three-dimensional visualization of organs and the like is performed based on the tomographic image.

一方、3Dコンピュータグラフィックス分野においては、所定の方向に仮想的な光源を設定し、陰影を付加して、より立体的に表現することが行われている(特許文献1~3参照)。特許文献1では、リアルな陰影を付与するため、ボクセルの不透明度の勾配を基に臓器領域の境界面を抽出し、境界面における法線ベクトルに基づいて境界面に陰影を付加する手法が提案されている。 On the other hand, in the field of 3D computer graphics, it is practiced to set a virtual light source in a predetermined direction and add shadows for more three-dimensional expression (see Patent Documents 1 to 3). Patent Document 1 proposes a method of extracting the boundary surface of the organ region based on the voxel opacity gradient and adding shadows to the boundary surface based on the normal vector of the boundary surface in order to provide realistic shading. It is

また、特許文献2では、各ボクセルの信号値の勾配からグラディエントを算出し、各ボクセルに直接陰影を付与する手法が提案されている。また、特許文献3では、各ボクセルの信号値の勾配からグラディエントを算出し、各ボクセルに直接陰影を付与する手法が提案されている。 Further, Japanese Patent Application Laid-Open No. 2002-200001 proposes a method of calculating a gradient from the gradient of the signal value of each voxel and directly applying a shadow to each voxel. Further, Japanese Patent Application Laid-Open No. 2002-200001 proposes a method of calculating a gradient from the gradient of the signal value of each voxel and directly applying a shadow to each voxel.

特許第5065740号公報Japanese Patent No. 5065740 特許第3542799号公報Japanese Patent No. 3542799 特許第2627607号公報Japanese Patent No. 2627607

しかしながら、特許文献1に記載の技術では、各ボクセルに直接陰影を付与する方法に比べ、陰影が境界面に限定して付与されるため、読影しやすい画像が得られるという利点があるが、計算負荷が大きく、鏡面反射をサポートできないという問題がある。また、特許文献2、3に記載の技術では、グラディエントの算出を不透明度で行わず、信号値で直接行っているため、カラーマップで陰影を制御できず、鏡面反射をサポートできないという問題がある。 However, the technique described in Patent Document 1 has the advantage of providing an image that is easy to read because the shadow is limited to the boundary surface compared to the method of directly applying shadows to each voxel. There is a problem that the load is large and specular reflection cannot be supported. In addition, in the techniques described in Patent Documents 2 and 3, gradient calculation is not performed based on opacity but directly based on signal values, so there is a problem that shadows cannot be controlled with a color map and specular reflection cannot be supported. .

そこで、本開示は、複数の断層画像に対してカラーマップを適用して、レンダリング画像を生成する際、計算負荷を抑えつつ陰影を付与することが可能なボリュームレンダリング装置を提供することを課題とする。 Therefore, an object of the present disclosure is to provide a volume rendering apparatus capable of adding shadows while reducing the computational load when generating a rendering image by applying a color map to a plurality of tomographic images. do.

本開示は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、
所定の対象物について所定の間隔で撮影された複数の2次元の断層画像で構成されるボクセル画像に基づいて、信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照してレンダリング画像を生成するためのボリュームレンダリング装置であって、
前記ボクセル画像と前記カラーマップを用いてレンダリング画像を生成するレンダリング手段と、を備え、
前記レンダリング手段は、前記レンダリング画像の各画素において、前記ボクセル画像に対して所定の座標変換を行いながら前記ボクセル画像の複数のボクセルを参照し、参照する各ボクセルに対して、前記カラーマップを参照しながら当該ボクセルの色成分および不透明度を取得するとともに、当該ボクセルの複数の近傍のボクセルの不透明度を取得するレイキャスティング手段と、
前記レイキャスティング手段により取得された当該ボクセルの複数の近傍のボクセルの不透明度を基に当該ボクセルにおける勾配ベクトルを算出するとともに、算出された勾配ベクトルに対する所定の光源ベクトルの正反射ベクトルを算出し、前記勾配ベクトルと前記光源ベクトルとの内積値を基に当該ボクセルの拡散反射光を算出し、前記正反射ベクトルと所定の視線ベクトルとの内積値を基に当該ボクセルの鏡面反射光を算出し、算出された拡散反射光と鏡面反射光を基に算出した陰影値を前記レイキャスティング手段により取得された当該ボクセルの色成分に乗算し、当該ボクセルの色成分を更新する陰影付加手段と、を有する。
The present disclosure includes multiple means for solving the above problems, but if one example is given,
A color map defined by associating color component values and opacity with signal values based on a voxel image composed of a plurality of two-dimensional tomographic images taken at predetermined intervals of a predetermined target. A volume rendering device for generating a rendered image with reference to
rendering means for generating a rendered image using the voxel image and the color map;
The rendering means refers to a plurality of voxels of the voxel image while performing a predetermined coordinate transformation on the voxel image for each pixel of the rendering image, and refers to the color map for each voxel to be referred to. a ray casting means for obtaining the color component and opacity of the voxel while obtaining the opacity of a plurality of neighboring voxels of the voxel;
calculating a gradient vector in the voxel based on the opacity of a plurality of voxels near the voxel obtained by the ray casting means, and calculating a regular reflection vector of a predetermined light source vector with respect to the calculated gradient vector; calculating the diffusely reflected light of the voxel based on the inner product value of the gradient vector and the light source vector, and calculating the specular reflected light of the voxel based on the inner product value of the regular reflection vector and a predetermined line-of-sight vector; and a shadow adding means for updating the color component of the voxel by multiplying the color component of the voxel obtained by the ray casting means by a shadow value calculated based on the calculated diffuse reflection light and the specular reflection light. .

本開示によれば、複数の断層画像に対してカラーマップを適用して、レンダリング画像を生成する際、計算負荷を抑えつつ陰影を付与することが可能となる。 According to the present disclosure, when applying a color map to a plurality of tomographic images to generate a rendering image, it is possible to add shadows while reducing the computational load.

複数の断層画像と、ボリュームレンダリング像として生成されるカラーのレンダリング画像を示す図である。FIG. 3 is a diagram showing a plurality of tomographic images and a color rendering image generated as a volume rendering image; 本開示の一実施形態に係るボリュームレンダリング装置100のハードウェア構成図である。1 is a hardware configuration diagram of a volume rendering device 100 according to an embodiment of the present disclosure; FIG. 本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。1 is a functional block diagram showing the configuration of a volume rendering device according to an embodiment; FIG. 本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。4 is a flowchart showing processing operations of the volume rendering device according to the embodiment; 本実施形態で用いるカラーマップを示す図である。It is a figure which shows the color map used by this embodiment. 図4に示したステップS30における不透明外接領域算出処理を複数のCPUコアで並行して行う場合を示すフローチャートである。FIG. 5 is a flow chart showing a case where opaque circumscribed area calculation processing in step S30 shown in FIG. 4 is performed in parallel by a plurality of CPU cores. FIG. 図6のステップS330における断層画像群に対する不透明外接領域の算出処理を示すフローチャートである。FIG. 7 is a flow chart showing calculation processing of an opaque circumscribed region for a group of tomographic images in step S330 of FIG. 6. FIG. 図6のステップS360における断層画像群全体の不透明外接領域の算出処理を示すフローチャートである。FIG. 7 is a flow chart showing calculation processing of an opaque circumscribed region of the entire group of tomographic images in step S360 of FIG. 6. FIG. ROIと不透明外接領域を比較した図である。FIG. 11 compares ROIs and opaque circumscribing regions; 図4に示したステップS40におけるレンダリング処理を各CPUコアで並行して行う処理を示すフローチャートである。FIG. 5 is a flow chart showing a process in which each CPU core performs rendering processing in step S40 shown in FIG. 4 in parallel; FIG. 座標変換の概念図である。4 is a conceptual diagram of coordinate transformation; FIG. 図10に示したステップS440の分割画像生成処理の詳細を示すフローチャートである。FIG. 11 is a flow chart showing details of a divided image generation process in step S440 shown in FIG. 10; FIG. 図12に示したステップS640のボクセルの参照処理の詳細を示すフローチャートである。FIG. 13 is a flowchart showing details of voxel reference processing in step S640 shown in FIG. 12; FIG. 図13に示したステップS642の起点座標の探索処理の詳細を示すフローチャートである。FIG. 14 is a flow chart showing the details of search processing for starting point coordinates in step S642 shown in FIG. 13; FIG. コンピュータによりボリュームレンダリング装置100を実現する場合の並列化処理を示す図である。FIG. 4 is a diagram showing parallel processing when the volume rendering device 100 is implemented by a computer; コンピュータによりボリュームレンダリング装置100を実現する場合の並列化処理のソフトウェアによる流れを示す図である。FIG. 4 is a diagram showing a software flow of parallel processing when the volume rendering device 100 is implemented by a computer.

以下、本開示の好適な実施形態について図面を参照して詳細に説明する。
本開示は、複数の断層画像に基づいて、信号値に対して色成分の値と不透明度を対応付けて定義されたカラ-マップを参照してレンダリング画像を生成するものである。図1は、複数の断層画像と、レンダリング画像を示す図である。図1(a)は複数の断層画像、図1(b)は1枚の断層画像、図1(c)はレンダリング画像である。図1(a)(b)に示す断層画像は、DICOM形式のものを示している。図1(a)は、370枚の断層画像群であり、図1(b)は、そのうちの1枚を拡大したものである。後述する実施形態のボリュームレンダリング装置では、図1(a)に示したような複数の断層画像に対してレンダリング処理を実行して、図1(c)に示したような1枚のレンダリング画像を生成する。図1(c)に示したレンダリング画像は、512×512画素であって、1画素についてRGB各色8ビットの計24ビットで表現したものである。本実施形態では、2次元の断層画像を、もう1つの別の次元となる方向に積層した状態を3次元のボクセル画像として扱う。3次元のボクセル画像における各ボクセルは、複数の2次元の断層画像における各画素に1対1で対応している。
Preferred embodiments of the present disclosure will be described in detail below with reference to the drawings.
The present disclosure generates a rendering image by referring to a color map defined by associating color component values and opacities with signal values based on a plurality of tomographic images. FIG. 1 is a diagram showing a plurality of tomographic images and a rendering image. FIG. 1(a) shows a plurality of tomographic images, FIG. 1(b) shows a single tomographic image, and FIG. 1(c) shows a rendering image. The tomographic images shown in FIGS. 1A and 1B are in DICOM format. FIG. 1(a) is a group of 370 tomographic images, and FIG. 1(b) is an enlarged view of one of them. A volume rendering apparatus according to an embodiment, which will be described later, executes rendering processing on a plurality of tomographic images as shown in FIG. Generate. The rendered image shown in FIG. 1(c) has 512×512 pixels, and each pixel is represented by a total of 24 bits of 8 bits for each color of RGB. In the present embodiment, a state in which two-dimensional tomographic images are stacked in another dimension is treated as a three-dimensional voxel image. Each voxel in the three-dimensional voxel image corresponds to each pixel in a plurality of two-dimensional tomographic images on a one-to-one basis.

<1.装置構成>
図2は、本開示の一実施形態に係るボリュームレンダリング装置100のハードウェア構成図である。本実施形態に係るボリュームレンダリング装置100は、汎用のコンピュータで実現することができ、図2に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、SSD(Solid State Drive),フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等の指示入力I/F(インターフェース)4と、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、グラフィックスに特化した演算処理部であるGPU(Graphics Processing Unit)7と、表示部6に表示する画像を保持するフレームメモリ8と、を備え、互いにバスを介して接続されている。GPU7による演算結果はフレームメモリ8に書き込まれるため、GPU7とフレームメモリ8は、表示部6へのインタフェースを備えたビデオカードに搭載されて汎用のコンピュータにバス経由で装着されていることが多い。
<1. Device configuration>
FIG. 2 is a hardware configuration diagram of the volume rendering device 100 according to an embodiment of the present disclosure. The volume rendering apparatus 100 according to this embodiment can be realized by a general-purpose computer, and as shown in FIG. , a large-capacity storage device 3 such as a hard disk, SSD (Solid State Drive), flash memory, etc. for storing programs and data executed by the CPU 1, and an instruction input I / F (interface) 4 such as a keyboard, mouse, etc. , a data input/output I/F (interface) 5 for data communication with an external device such as a data storage medium, a display unit 6 which is a display device such as a liquid crystal display, and an arithmetic processing unit specializing in graphics. A GPU (Graphics Processing Unit) 7 and a frame memory 8 for holding an image to be displayed on the display unit 6 are provided, and are connected to each other via a bus. Since the calculation result by the GPU 7 is written to the frame memory 8, the GPU 7 and the frame memory 8 are often mounted on a video card having an interface to the display unit 6 and attached to a general-purpose computer via a bus.

本実施形態において、CPU1は、マルチコアCPUであり、複数のCPUコアを有し、並列処理が可能となっている。図2の例では、RAM2が1つだけ示されているが、CPU1の各CPUコアが、1つのRAM2にアクセスするように構成されている。なお、CPU1は複数であってもよい。またマルチコアCPUは、各々のCPUコアが論理的に複数の実行スレッドを受け入れるCPUであってもよい。すなわち、CPU1は、複数の実行スレッドそれぞれを受け入れるプロセッサを有している。 In this embodiment, the CPU 1 is a multi-core CPU, has a plurality of CPU cores, and is capable of parallel processing. Although only one RAM2 is shown in the example of FIG. 2, each CPU core of the CPU1 is configured to access one RAM2. Note that the number of CPUs 1 may be plural. A multi-core CPU may also be a CPU in which each CPU core logically accepts multiple threads of execution. That is, CPU 1 has a processor that accepts each of a plurality of threads of execution.

図3は、本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。図3において、10は断層画像読込手段、20はカラーマップ読込手段、30はROIクリッピング設定手段、40はマスク設定手段、50は不透明外接領域算出手段、60はレンダリング手段、61はレイキャスティング手段、62は起点座標探索手段、63は陰影付加手段、70はレンダリング画像出力手段である。 FIG. 3 is a functional block diagram showing the configuration of the volume rendering device according to this embodiment. 3, 10 is tomographic image reading means, 20 is color map reading means, 30 is ROI clipping setting means, 40 is mask setting means, 50 is opaque circumscribed area calculation means, 60 is rendering means, 61 is ray casting means, Reference numeral 62 denotes starting point coordinate searching means, 63 denotes shading means, and 70 denotes rendering image output means.

断層画像読込手段10は、CT、MRI、PETなどの医用画像診断機器により収集および蓄積されたPACSから、記憶媒体や入力部を経由して、複数の断層画像を読み込む手段である。断層画像は、対象物に対して所定の間隔で撮影されて得られたものであり、各画素に信号値が付与された2次元の断層画像である。カラーマップ読込手段20は、図示されていないカラーマップ作成手段により、あらかじめ作成されたカラーマップを記憶媒体や入力部から、カラーマップを読み込む手段である。ROIクリッピング設定手段30は、読み込んだ複数の断層画像のうち、レンダリングする対象を、関心領域であるROIとして設定する手段である。マスク設定手段40は、読み込んだ複数の断層画像のうち、表示させないマスク領域を設定する手段である。不透明外接領域算出手段50は、信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、複数の断層画像の各画素に不透明度を対応付けて、その不透明度に基づいて不透明外接領域を算出する手段である。詳しくは後述するが、不透明外接領域とは、不透明度が0でない画素が存在する範囲に3次元の各軸方向において外接する領域である。 The tomographic image reading means 10 is means for reading a plurality of tomographic images from PACS collected and stored by medical image diagnostic equipment such as CT, MRI, and PET via a storage medium and an input unit. A tomographic image is obtained by photographing an object at predetermined intervals, and is a two-dimensional tomographic image in which a signal value is assigned to each pixel. The color map reading means 20 is a means for reading a color map created in advance by a color map creating means (not shown) from a storage medium or an input section. The ROI clipping setting means 30 is a means for setting a rendering target as an ROI, which is a region of interest, among a plurality of loaded tomographic images. The mask setting means 40 is a means for setting a mask area not to be displayed among a plurality of read tomographic images. The opaque circumscribing region calculating means 50 refers to a color map defined by associating color component values and opacities with signal values, associates opacities with respective pixels of a plurality of tomographic images, and calculates the A means of calculating an opaque bounding area based on opacity. Although the details will be described later, the opaque circumscribing area is an area that circumscribes a range in which pixels whose opacity is not 0 exists in each three-dimensional axial direction.

レンダリング手段60は、レンダリング画像の生成領域を設定し、複数の断層画像で構成されるボクセル画像を投影した画素値を、カラーマップを参照しながら決定して、レンダリング画像を生成する手段である。レンダリング手段60は、さらにレイキャスティング手段61、陰影付加手段63を備えている。レイキャスティング手段61は、レンダリング画像の各画素において、後述する有効領域と、視点に最も近い視線方向のベクトルとの交点を算出し、レンダリング画像の各画素において、算出される交点よりボクセル画像に対して視線方向に仮想光線を照射し、レイキャスティング法に基づいて所定の座標変換を行いながらボクセル画像の複数のボクセルを参照する手段である。陰影付加手段63は、参照されたボクセル画像の信号値を基にカラーマップを参照して変換された各ボクセルの(R,G,B)で構成される色成分に対して、そのボクセルの近傍のボクセルの信号値を基に同様にカラーマップを参照して変換された不透明度αを基に、そのボクセルにおける勾配ベクトルを算出し、算出した勾配ベクトルを用いて、陰影値を算出し、色成分(R,G,B)の各値に陰影値を乗算した値に置き換える手段である。さらに、レイキャスティング手段61は、起点座標探索手段62を備えている。起点座標探索手段62は、レイキャスティング手段61が画素値の演算を行う際、視点座標系において投影の起点となる座標を探索する手段である。 The rendering means 60 is means for setting a rendering image generation area, determining pixel values obtained by projecting a voxel image composed of a plurality of tomographic images with reference to a color map, and generating a rendering image. The rendering means 60 further comprises ray casting means 61 and shading means 63 . The ray casting means 61 calculates, for each pixel of the rendered image, an intersection point between an effective area, which will be described later, and a vector in the line-of-sight direction closest to the viewpoint. This is means for irradiating a virtual ray in the line-of-sight direction and referring to a plurality of voxels of a voxel image while performing a predetermined coordinate transformation based on the ray casting method. The shading means 63 applies the color component (R, G, B) of each voxel converted by referring to the color map based on the signal value of the voxel image referred to, to the neighborhood of the voxel. Based on the signal value of the voxel of , based on the opacity α converted by similarly referring to the color map, calculate the gradient vector at that voxel, use the calculated gradient vector to calculate the shadow value, and color This is means for replacing each value of the components (R, G, B) with a value obtained by multiplying the shadow value. Furthermore, the ray casting means 61 has a starting point coordinate searching means 62 . The starting point coordinate searching means 62 is a means for searching for the coordinates of the starting point of projection in the viewpoint coordinate system when the ray casting means 61 calculates pixel values.

断層画像読込手段10およびカラーマップ読込手段20は、CPU1が補助しながら、主にデータ入出力I/F5において実現される。ROIクリッピング設定手段30およびマスク設定手段40は、CPU1が補助しながら、主に指示入力I/F4において実現される。不透明外接領域算出手段50、レイキャスティング手段61、陰影付加手段63、レンダリング手段60、起点座標探索手段62は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。レンダリング画像出力手段70は、CPU1が補助しながら、主にフレームメモリ8と表示部6において実現される。 The tomographic image reading means 10 and the color map reading means 20 are realized mainly in the data input/output I/F 5 with the assistance of the CPU 1 . The ROI clipping setting means 30 and the mask setting means 40 are realized mainly in the instruction input I/F 4 with the assistance of the CPU 1 . The opaque circumscribed area calculation means 50 , ray casting means 61 , shadow addition means 63 , rendering means 60 and origin coordinate search means 62 are implemented by the CPU 1 executing programs stored in the storage device 3 . The rendering image output means 70 is realized mainly in the frame memory 8 and the display section 6 with the assistance of the CPU 1 .

図3に示した各構成手段は、現実には図2に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU、GPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、GPUを搭載するタブレットなどの携帯端末や様々な装置に組み込まれたコンピュータも含む。 Each component shown in FIG. 3 is actually implemented by installing a dedicated program in hardware such as a computer and its peripherals, as shown in FIG. That is, the computer executes the contents of each means according to a dedicated program. In this specification, a computer means a device that has an arithmetic processing unit such as a CPU or GPU and is capable of data processing. It also includes computers embedded in mobile terminals and various devices.

<2.処理動作>
次に、図2、図3に示したボリュームレンダリング装置の処理動作について説明する。図4は、本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。まず、断層画像読込手段10が、複数の断層画像を読み込む。複数の断層画像は、図1(a)に示したような態様のものである。本実施形態では、DICOM形式の断層画像群Do(x,y,z)(-32768≦Do(x,y,z)≦32767,0≦x≦Sx-1,0≦y≦Sy-1,0≦z≦Sz-1; 解像度:Rxy,Rz)を読み込むものとする。断層画像群Do(x,y,z)は1画素が16ビットで記録されるため、-32768~32767の信号値Do(x,y,z)が記録されている。断層画像群Do(x,y,z)は、x座標のサイズ(画素数)がSx、y座標のサイズ(画素数)がSyの断層画像が、Sz枚積層されたものである。なお、以後の説明では、断層画像の枚数SzをMとも表現する。図1(b)における1枚の断層画像の左右方向がx軸、上下方向がy軸に対応し、図1(a)に示した複数の断層画像を当該断層画像のDICOMヘッダに記録されている所定のスライス間隔(隣接する断層画像のImage Positionタグ情報の差分)で重ねた場合の積層方向がz軸に対応する。
<2. Processing operation>
Next, processing operations of the volume rendering apparatus shown in FIGS. 2 and 3 will be described. FIG. 4 is a flowchart showing processing operations of the volume rendering apparatus according to this embodiment. First, the tomographic image reading means 10 reads a plurality of tomographic images. The plurality of tomographic images are in the form shown in FIG. 1(a). In this embodiment, a DICOM format tomographic image group Do (x, y, z) (-32768≤Do (x, y, z)≤32767, 0≤x≤Sx-1, 0≤y≤Sy-1, 0≦z≦Sz−1; resolution: Rxy, Rz). Since one pixel of the tomographic image group Do(x, y, z) is recorded with 16 bits, signal values Do(x, y, z) of -32768 to 32767 are recorded. The tomographic image group Do (x, y, z) is obtained by stacking Sz tomographic images each having an x-coordinate size (number of pixels) of Sx and a y-coordinate size (number of pixels) of Sy. In the following description, the number of tomographic images Sz is also expressed as M. The horizontal direction of one tomographic image in FIG. 1(b) corresponds to the x-axis, and the vertical direction corresponds to the y-axis. The lamination direction when superimposed at a predetermined slice interval (difference in Image Position tag information of adjacent tomographic images) corresponds to the z-axis.

DICOM形式の複数の断層画像を読み込んだら、ROIクリッピング設定手段30が、ROIクリッピング設定を行う(ステップS10)。ROIとはRegion of Interestの略であり、本明細書では3次元空間における関心領域を意味する(学術的には、ROIは2次元領域を指し、3次元領域の場合、VOI(Volume of Interest)と称するが、医用画像業界では3次元領域でもROIが多用される)。ここでは、レンダリング画像の作成対象とする範囲を示す。ROIをクリッピング(切り取り)して設定することにより、3次元的に任意の位置で被写体を断裁したボリュームレンダリング像を生成することができ、体表や骨に隠れた臓器や臓器の内部を描出するのに用いられる。ステップS40の処理において、所定の範囲にボクセル画像の参照範囲が限定されるように、ステップS10においてROIを設定する。この設定は、xyz各軸方向のそれぞれの座標範囲を数値で指定することにより行われる。数値の指定は、直接行ってもよいし、マウス等により画面上で位置を指示し、指示入力I/F4を介して数値に変換することにより行ってもよい。 After reading a plurality of DICOM-format tomographic images, the ROI clipping setting means 30 sets the ROI clipping (step S10). ROI is an abbreviation for Region of Interest, and in this specification means a region of interest in a three-dimensional space (scientifically, ROI refers to a two-dimensional region, and in the case of a three-dimensional region, VOI (Volume of Interest) , but in the medical imaging industry, ROI is often used even in a three-dimensional area). Here, the range for which the rendering image is to be created is shown. By clipping (cutting) and setting the ROI, it is possible to generate a volume rendering image in which the subject is cropped at any desired position three-dimensionally, and to depict the internal organs and organs hidden behind the body surface and bones. used for In the process of step S40, the ROI is set in step S10 so that the voxel image reference range is limited to a predetermined range. This setting is performed by specifying each coordinate range in each of the xyz axis directions with numerical values. The numeric value may be specified directly, or may be specified by pointing a position on the screen with a mouse or the like and converting it into a numeric value via the instruction input I/F 4 .

読み込んだ各断層画像のx軸方向の最小の座標をXso、x軸方向の最大の座標をXeo、y軸方向の最小の座標をYso、y軸方向の最大の座標をYeo、第1スライス(先頭:第1番目)の断層画像に対応する座標をZso、最終スライス(末尾:第M番目)の断層画像に対応する座標をZeoとすると、Xso≦Xs<Xe≦Xeo、Yso≦Ys<Ye≦Yeo、Zso≦Zs<Ze≦Zeoを満たす[Xs,Xe]、[Ys,Ye]、[Zs,Ze]の直方体で定義される範囲をROIと定義し処理対象として特定する。すなわち、レンダリング画像を生成する対象となるボクセル画像領域を指定する6つの座標Xs,Xe,Ys,Ye,Zs,Zeが定義される。この6つの座標により、xyz各軸に沿った辺をもつ直方体が定義され、その直方体の内部がクリッピングされたROIとなる。本実施形態では、後述のステップS30において不透明外接領域を算出するが、この不透明外接領域もxyz各軸の所定の範囲で定義される直方体形状の領域としている。 Xso is the minimum coordinate in the x-axis direction of each read tomographic image, Xeo is the maximum coordinate in the x-axis direction, Yso is the minimum coordinate in the y-axis direction, Yeo is the maximum coordinate in the y-axis direction, and the first slice ( Let Zso be the coordinates corresponding to the tomographic image of the first slice (first: first) and Zeo be the coordinates corresponding to the tomographic image of the last slice (last: Mth), then Xso≦Xs<Xe≦Xeo, Yso≦Ys<Ye A range defined by a rectangular parallelepiped of [Xs, Xe], [Ys, Ye], and [Zs, Ze] satisfying ≦Yeo, Zso≦Zs<Ze≦Zeo is defined as an ROI and specified as a processing target. That is, six coordinates Xs, Xe, Ys, Ye, Zs, and Ze are defined that specify the voxel image area for which the rendering image is to be generated. These six coordinates define a rectangular parallelepiped with sides along the xyz axes, and the inside of the rectangular parallelepiped becomes the clipped ROI. In this embodiment, an opaque circumscribed area is calculated in step S30, which will be described later, and this opaque circumscribed area is also a rectangular parallelepiped area defined by a predetermined range on each of the xyz axes.

ステップS10におけるROIクリッピング設定の結果、処理対象の画素数が(Xeo-Xso+1)×(Yeo-Yso+1)×(Zeo-Zso+1)画素から、(Xe-Xs+1)×(Ye-Ys+1)×(Ze-Zs+1)画素に削減されることになる。ROIクリッピング設定手段30によるステップS10のROIクリッピング設定を行うことにより、観察対象の臓器を露出させたボリュームレンダリング像が得られるという効果に加え、処理対象の画素が減って処理負荷を抑え応答性を向上させることができるという二重のメリットがあるため、設定される場合が多いが、必須の処理ではなく省略することも可能である。尚、ステップS10のROIクリッピング設定の段階では、ROIクリッピングを適用する範囲を定義するだけで、具体的なROIのクリッピング処理は、ステップS40の処理で実行される。各々の処理において、ボクセル画像のROI内に限定して演算が行われることにより処理負荷が軽減され、ステップS40のレンダリング処理でクリッピング(断裁)されたボリュームレンダリング像が生成される。 As a result of the ROI clipping setting in step S10, the number of pixels to be processed is (Xeo−Xso+1)×(Yeo−Yso+1)×(Zeo−Zso+1) pixels, and (Xe−Xs+1)×(Ye−Ys+1)×(Ze− Zs+1) pixels. By performing the ROI clipping setting in step S10 by the ROI clipping setting means 30, in addition to the effect of obtaining a volume rendering image in which the organ to be observed is exposed, the number of pixels to be processed is reduced, thereby suppressing the processing load and improving the responsiveness. Since there is a double merit that it can be improved, it is often set, but it is possible to omit it because it is not an essential process. At the stage of ROI clipping setting in step S10, only the range to which ROI clipping is applied is defined, and specific ROI clipping processing is executed in step S40. In each process, the processing load is reduced by performing calculations limited to the ROI of the voxel image, and a clipped (cut) volume rendering image is generated in the rendering process of step S40.

ROIクリッピング設定手段30により、ROIクリッピング設定が行われたら、次に、マスク設定手段40が、マスク設定を行う(ステップS20)。マスク設定とは、断層画像の各画素を表示させるか否かの設定である。マスク設定の手法は、特に限定されないが、本実施形態では、ステップS10において読み込んだ断層画像群をMPR画像(アキシャル・コロナル・サジタルの3画面)として画面表示するとともに、本明細書に記載の方法または公知の手法により作成されるボリュームレンダリング像を表示させ、これら2次元投影された複数の画像の中から最も指示がしやすい画像を選択し、選択した画像の2次元領域を指示しながら奥行方向に延長させた3次元領域を、マスクして表示させない範囲とマスクせずに表示させる領域を特定する。このマスク設定により、断層画像群に対応した3次元空間におけるマスクデータが得られる。マスクデータMask(x,y,z)は、断層画像群Do(x,y,z)の各画素に対応して“0”か“1”かのいずれかの値が設定されたものである。このような3次元マスクを作成する処理は必須の処理に近いが、省略することも可能である。観察対象の臓器を描出する方法として、上述のROIクリッピングもあるが、3次元マスクに比べ操作が簡便であり、処理負荷も減少するため、ROIクリッピング処理も併用される頻度が多い。ROIクリッピング設定手段30、マスク設定手段40により表示させるべき特定の領域が設定されることになるが、両手段で設定されている場合は、いずれも表示すべき領域として設定された領域が有効な領域となり、いずれか一方が設定されている場合は、設定された領域が有効な領域となる。ROIクリッピング設定手段30、マスク設定手段40のどちらも用いられない場合は、読み込まれた断層画像群の全領域が有効な領域となる。 After the ROI clipping setting is performed by the ROI clipping setting means 30, the mask setting means 40 next performs mask setting (step S20). A mask setting is a setting as to whether or not to display each pixel of a tomographic image. The mask setting method is not particularly limited, but in this embodiment, the group of tomographic images read in step S10 is displayed on the screen as an MPR image (three screens of axial, coronal, and sagittal), and the method described in this specification is displayed. Alternatively, a volume rendering image created by a known technique is displayed, an image that is easiest to indicate is selected from among a plurality of these two-dimensionally projected images, and a two-dimensional region of the selected image is indicated in the depth direction. In the three-dimensional area extended to , a range to be masked and not displayed and a range to be displayed without masking are specified. With this mask setting, mask data in a three-dimensional space corresponding to the group of tomographic images is obtained. The mask data Mask (x, y, z) is set to either "0" or "1" corresponding to each pixel of the tomographic image group Do (x, y, z). . Although the process of creating such a three-dimensional mask is almost essential, it can be omitted. Although the above-mentioned ROI clipping is also available as a method of depicting an organ to be observed, the ROI clipping process is often used in combination because the operation is simpler than that of the three-dimensional mask and the processing load is reduced. A specific area to be displayed is set by the ROI clipping setting means 30 and the mask setting means 40, but when both are set, the area set as the area to be displayed is effective. If one of them is set, the set area becomes the valid area. When neither the ROI clipping setting means 30 nor the mask setting means 40 is used, the entire area of the loaded tomographic image group becomes the effective area.

次に、不透明外接領域算出手段50が、不透明外接領域の算出処理を行う(ステップS30)。不透明外接領域とは、不透明度が0でない画素が存在する範囲に3次元の各軸方向において外接する領域である。外接する領域としているのは、不透明度が0でない画素が存在する範囲に外接する所定の辺(線分)で囲まれる領域とすることにより、レンダリング処理時に、回転演算を行った場合に、視線と交差する範囲を演算で高速に算出できるようにするためである。そのため、不透明外接領域は不透明度が0でない画素が存在する範囲に外接する3次元座標軸に鉛直な直方体領域に限定される。(斜め直方体や曲面形状では外接面の算出に処理負荷がかかり、かつ視線との交点を線形な数式で解析的に算出できず所望の高速化効果を達成できない。)従って、断層画像の2つの座標軸の方向と、断層画像を積層した方向に沿った辺で規定される直方体の内部の領域とすることが好ましい。具体的な処理としては、カラーマップ読込手段20から読み込んだカラーマップを用いて、クリッピング設定後の断層画像のROIに含まれる各画素の信号値に対して対応する不透明度を付与し、付与した不透明度に基づいて不透明外接領域を算出する。 Next, the opaque circumscribed area calculation means 50 performs opaque circumscribed area calculation processing (step S30). An opaque circumscribing area is an area that circumscribes a range in which pixels whose opacity is not 0 exists in each three-dimensional axial direction. The circumscribing area is defined as an area surrounded by a predetermined side (line segment) circumscribing the range in which pixels with non-zero opacity exist. This is because the range intersecting with can be calculated at high speed by calculation. Therefore, the opaque circumscribing area is limited to a rectangular parallelepiped area perpendicular to the three-dimensional coordinate axis that circumscribes the range in which pixels whose opacity is not 0 exist. (With an oblique rectangular parallelepiped or a curved surface, the calculation of the circumscribed surface requires a processing load, and the intersection with the line of sight cannot be analytically calculated using a linear formula, so the desired speed-up effect cannot be achieved.) It is preferable that the region is an internal region of a rectangular parallelepiped defined by the direction of the coordinate axis and the side along the direction in which the tomographic images are stacked. As a specific process, using the color map read from the color map reading means 20, the opacity corresponding to the signal value of each pixel included in the ROI of the tomographic image after clipping setting is applied. Calculate the opaque bounding area based on the opacity.

図5は、本実施形態で用いるカラーマップを示す図である。図5において、信号値は、断層画像の各画素に記録された信号値であり、R、G、Bは、それぞれ赤、緑、青の色成分であり、αはそのボクセルの不透明度である。図5は、断層画像の信号値が16ビットで記録され、-32768~32767の値をとる場合のカラーマップである。なお、CT画像の場合は、水(water)成分を0として-2048から2048の範囲に正規化される場合が多い。図5に示すように、カラーマップには、断層画像の各画素の信号値に対して、R、G、Bの各色成分と不透明度αが対応付けられている。このカラーマップは、レンダリング手段60によるレンダリング処理においても用いられる(後述:ステップS40)。ステップS30における不透明外接領域の算出処理においては、カラーマップのうち不透明度αのみを用いる。カラーマップを参照して得られた不透明度αを用いることにより、断層画像においてα=0となる不透明な画素が存在する領域を不透明外接領域として算出することができる。この不透明外接領域に対応する領域を有効領域として定義する。「不透明外接領域に対応する領域」として、不透明外接領域をそのまま処理対象として有効な有効領域とすることもできるが、本実施形態では、後述するように、不透明外接領域を1画素分広げた領域を、不透明外接領域に対応する有効領域としている。 FIG. 5 is a diagram showing a color map used in this embodiment. In FIG. 5, the signal value is the signal value recorded in each pixel of the tomographic image, R, G, and B are the color components of red, green, and blue, respectively, and α is the opacity of the voxel. . FIG. 5 is a color map when signal values of a tomographic image are recorded in 16 bits and take values from -32768 to 32767. FIG. In the case of a CT image, it is often normalized to a range from -2048 to 2048 with the water component set to 0. As shown in FIG. 5, in the color map, the signal value of each pixel of the tomographic image is associated with each of the R, G, and B color components and the opacity α. This color map is also used in rendering processing by the rendering means 60 (described later: step S40). In the process of calculating the opaque circumscribed area in step S30, only the opacity α of the color map is used. By using the opacity α obtained by referring to the color map, it is possible to calculate, as an opaque circumscribed region, an area in which there are opaque pixels where α=0 in the tomographic image. The area corresponding to this opaque bounding area is defined as the valid area. As the "area corresponding to the opaque circumscribing area", the opaque circumscribing area can be used as it is as an effective area to be processed. is the effective area corresponding to the opaque circumscribed area.

図5に示したようなカラーマップを用いることにより、断層画像において所定の信号値を有する箇所を、任意の色成分、任意の不透明度で表現することができる。断層画像においては、臓器、器官等の部位に応じて信号値が異なるため、ボリュームレンダリング像において、カラーマップを定義することにより、信号値の相違に基づいて、人為的に、特定の臓器を色分けしたり、特定の器官を透明にして背後に隠れた臓器を露出させたりすることができる。特定の部位の不透明度αを最大値(α=255)に設定すれば、その部位だけが明瞭に表示され、その部位の奥に位置する部位は描出されない。逆に特定の部位の不透明度αを最小値(α=0)に設定すれば、その部位は不可視(透明)になり、その部位の奥に位置する部位が露出される。特定の部位の不透明度αを中間調(0<α<255)に設定すれば、その部位が半透明で表示され、その奥に位置する部位が透かし合成されて表示される。また、色成分R、G、Bとしては、目的とする部位を視認し易くするための任意の値を設定することができる。 By using a color map such as that shown in FIG. 5, a portion having a predetermined signal value in a tomographic image can be expressed with an arbitrary color component and an arbitrary opacity. In a tomographic image, since signal values differ according to parts such as organs, specific organs can be artificially colored based on differences in signal values by defining a color map in a volume rendering image. or make certain organs transparent to reveal hidden organs behind them. If the opacity α of a specific part is set to the maximum value (α=255), only that part will be clearly displayed, and the parts located behind that part will not be rendered. Conversely, if the opacity α of a specific portion is set to the minimum value (α=0), that portion becomes invisible (transparent), and the portion located behind that portion is exposed. If the opacity α of a specific portion is set to a halftone (0<α<255), that portion is displayed semi-transparently, and the portion located behind it is displayed as a watermark. Moreover, as the color components R, G, and B, arbitrary values can be set so as to facilitate visual recognition of the target portion.

したがって、カラーマップは、観察対象の部位ごとに設定しておくことができ、同じ断層画像群に対しても、異なるカラーマップを使用することにより、異なるボリュームレンダリング像が得られることになる。すなわち、肺用のカラーマップを用いれば、肺の部分が目立ったボリュームレンダリング像が得られ、心臓用のカラーマップを用いれば、心臓の部分が目立ったボリュームレンダリング像が得られる。ただし、各臓器の信号値分布は互いにオーバーラップしていることもあるため、特定の臓器のみを描出するカラーマップを作成することはできないことが多い。例えば、心臓用のカラーマップでは肋骨・胸骨も同時に描出され、心臓はこれらの骨に隠れてしまうため、ROIクリッピングを設定して肋骨を仮想的に断裁するなどの工夫が必要になる。 Therefore, a color map can be set for each site to be observed, and different volume rendering images can be obtained by using different color maps for the same group of tomographic images. That is, if the color map for lungs is used, a volume rendering image in which the lung portion is conspicuous is obtained, and if the color map for heart is used, a volume rendering image in which the heart portion is conspicuous is obtained. However, since the signal value distribution of each organ may overlap each other, it is often impossible to create a color map that renders only a specific organ. For example, in the color map for the heart, the ribs and sternum are also drawn at the same time, and the heart is hidden by these bones.

本実施形態では、指示入力I/F4を介した操作により、使用中のカラーマップに変更を加えたり、異なるカラーマップを読み込んだりすることが可能となっている。そして、ボリュームレンダリング装置は、変更されたカラーマップまたは新たに読み込まれたカラーマップを参照して、ボリュームレンダリング像として提示するためのレンダリング画像を生成する。本実施形態のボリュームレンダリング装置は、断層画像からカラーマップを参照してRGBα形式のボクセル画像を生成せずに、レンダリング画像を生成する過程で複数の断層画像で構成されるボクセル画像から計算に必要とするボクセルに限定してカラーマップを参照しながら色成分および不透明度に変換する方法をとっているため、カラーマップの変更に対してRGBα形式のボクセル構造体を再構築する必要が無く、リアルタイムにボリュームレンダリング像を更新できる。 In this embodiment, it is possible to change the color map in use or load a different color map by operating via the instruction input I/F 4 . The volume rendering device then refers to the changed color map or the newly loaded color map to generate a rendered image to be presented as a volume rendered image. The volume rendering apparatus of this embodiment does not refer to a color map from a tomographic image to generate a voxel image in the RGBα format. Since the conversion to color components and opacity is performed while referring to the color map for limited voxels, there is no need to reconstruct the voxel structure in RGBα format for changes in the color map. can update the volume rendering image.

本実施形態では、ステップS30における不透明外接領域の算出処理は、複数のCPUコアにより並行して行われる。ここで、ステップS30における不透明外接領域の算出処理の詳細について説明する。図6は、ステップS30における不透明外接領域の算出処理を並行して行う場合を示すフローチャートである。不透明外接領域算出手段50は、ステップS10で読み込んだ断層画像群をNA個(NA≧2の整数)に分割し、各CPUコアで並列処理を行う。(x,y)座標を備えた各断層画像が積層された方向がz軸方向となるため、z座標の値に応じてNA個に分割する。具体的には、各断層画像群の先頭の断層画像の座標をZ1、末尾の断層画像の座標をZ2とし、先頭座標Z1、末尾座標Z2に、読み込んだ断層画像を割り当てていく。例えば、1番目のCPUコアには、Z1=Zs、Z2=Zs+(Ze-Zs+1)/NA-1が設定される。各断層画像群には、断層画像が順に配置されているが、一端を先頭、他端を末尾としている。 In this embodiment, the opaque circumscribed area calculation process in step S30 is performed in parallel by a plurality of CPU cores. Here, the details of the calculation process of the opaque circumscribed area in step S30 will be described. FIG. 6 is a flow chart showing a case where the opaque circumscribed area calculation process in step S30 is performed in parallel. The opaque circumscribed region calculation means 50 divides the tomographic image group read in step S10 into NA pieces (an integer of NA≧2), and performs parallel processing in each CPU core. Since the direction in which each tomographic image having (x, y) coordinates is stacked is the z-axis direction, it is divided into NA pieces according to the value of the z-coordinate. Specifically, the coordinates of the leading tomographic image of each tomographic image group are set to Z1, and the coordinates of the trailing tomographic image are set to Z2, and the read tomographic images are assigned to the leading coordinate Z1 and the trailing coordinate Z2. For example, Z1=Zs and Z2=Zs+(Ze-Zs+1)/NA-1 are set for the first CPU core. In each tomographic image group, tomographic images are arranged in order, with one end being the head and the other end being the tail.

次に、処理対象とする断層画像群に対する不透明外接領域を算出する(ステップS330)。ステップS330における処理は、NA個のCPUコアにより並行して処理が行われる。ステップS330における処理の詳細については後述する。 Next, an opaque circumscribed region is calculated for the group of tomographic images to be processed (step S330). The processing in step S330 is performed in parallel by NA CPU cores. Details of the processing in step S330 will be described later.

ステップS330における断層画像群に対する不透明外接領域の算出を終えたら、NA個の断層画像群からなる断層画像全体に対して、不透明外接領域の算出を行う(ステップS360)。ステップS360における処理の詳細についても後述する。 After completing the calculation of the opaque circumscribing region for the tomographic image group in step S330, the opaque circumscribing region is calculated for the entire tomographic image consisting of the NA tomographic image groups (step S360). Details of the processing in step S360 will also be described later.

本実施形態では、複数に分割した断層画像群を複数のCPUコアで並行に処理する。なお、本実施形態では、z=Z1を先頭、z=Z2を末尾として説明したが、z=Z1を末尾、z=Z2を先頭としてもよい。結局は、読み込んだ全ての断層画像の積層構成を変更せず、一方から他方に向かって処理することができるように、先頭と末尾を設定すればよい。 In this embodiment, a plurality of divided tomographic image groups are processed in parallel by a plurality of CPU cores. In this embodiment, z=Z1 is the head and z=Z2 is the tail, but z=Z1 may be the tail and z=Z2 may be the head. Ultimately, the head and tail should be set so that all read tomographic images can be processed from one to the other without changing the layered structure.

上述のステップS330の処理の詳細について説明する。図7は、ステップS330における断層画像群に対する不透明外接領域の算出処理を示すフローチャートである。ステップS330の処理は、分割されたNA個の各断層画像群に対して行われる。ステップS330においては、各断層画像群の先頭の断層画像の座標をZ1、末尾の断層画像の座標をZ2とし、先頭座標Z1、末尾座標Z2に、読み込んだ断層画像を割り当てる。例えば、1番目のCPUコアには、Z1=Zs、Z2=Zs+(Ze-Zs+1)/NA-1が設定される。各断層画像群には、断層画像が順に配置されているが、一端を先頭、他端を末尾としている。 Details of the processing of step S330 described above will be described. FIG. 7 is a flow chart showing the process of calculating an opaque circumscribed region for a group of tomographic images in step S330. The processing of step S330 is performed on each of NA divided tomographic image groups. In step S330, the coordinates of the top tomographic image of each tomographic image group are set to Z1 and the coordinates of the last tomographic image are set to Z2, and the read tomographic images are assigned to the top coordinate Z1 and the bottom coordinate Z2. For example, Z1=Zs and Z2=Zs+(Ze-Zs+1)/NA-1 are set for the first CPU core. In each tomographic image group, tomographic images are arranged in order, with one end being the head and the other end being the tail.

まず、初期設定を行う(ステップS331)。具体的には、断層画像を特定するzと、断層画像の座標値であるx,yと、xの最小値、最大値をそれぞれ決定するための変数Xmin(tid)、Xmax(tid)と、yの最小値、最大値をそれぞれ決定するための変数Ymin(tid)、Ymax(tid)と、zの最小値、最大値をそれぞれ決定するための変数Zmin(tid)、Zmax(tid)に初期値を与える。(tid)は、断層画像群を特定する識別情報であり、NA個の各断層画像群に対応する値が与えられる。このtidは、処理スレッドを特定する識別情報でもある。 First, initial setting is performed (step S331). Specifically, z specifying a tomographic image, x and y as coordinate values of the tomographic image, variables Xmin(tid) and Xmax(tid) for determining the minimum and maximum values of x, respectively, Variables Ymin(tid) and Ymax(tid) for determining the minimum and maximum values of y, respectively, and variables Zmin(tid) and Zmax(tid) for determining the minimum and maximum values of z are initialized. give a value. (tid) is identification information for specifying a tomographic image group, and a value corresponding to each of NA tomographic image groups is given. This tid is also identification information that identifies the processing thread.

x,yとしては、ステップS10においてROIクリッピング設定が行われている場合、その最小値Xs、最小値Ysをそれぞれ与える。また、Xmin(tid)、Xmax(tid)、Ymin(tid)、Ymax(tid)、Zmin(tid)、Zmax(tid)としては、ステップS10においてROIクリッピング設定が行われている場合、最小値を決定するための変数には、ROIクリッピング設定による最大値を与え、最大値を決定するための変数には、ROIクリッピング設定による最小値を与える。したがって、ROIクリッピング設定が行われている場合、以下の〔数式1〕に示すように初期値が設定される。 As x and y, when ROI clipping is set in step S10, the minimum value Xs and the minimum value Ys are given, respectively. In addition, as Xmin(tid), Xmax(tid), Ymin(tid), Ymax(tid), Zmin(tid), and Zmax(tid), the minimum values are set to The variable for determination is given the maximum value by the ROI clipping setting, and the variable for determining the maximum value is given the minimum value by the ROI clipping setting. Therefore, when ROI clipping is set, the initial values are set as shown in [Formula 1] below.

〔数式1〕
Xmin(tid)=Xe
Xmax(tid)=Xs
Ymin(tid)=Ye
Ymax(tid)=Ys
Zmin(tid)=Ze
Zmax(tid)=Zs
[Formula 1]
Xmin(tid) = Xe
Xmax(tid) = Xs
Y min (tid) = Ye
Ymax(tid)=Ys
Zmin(tid)=Ze
Zmax(tid)=Zs

なお、ステップS10においてROIクリッピング設定が省略されている場合には、[Xs,Xe]、[Ys,Ye]、[Zs,Ze]に代えて断層画像群の最小値、最大値である[Xso,Xeo]、[Yso,Yeo]、[Zso,Zeo]が初期値として設定される。 Note that if the ROI clipping setting is omitted in step S10, [Xso , Xeo], [Yso, Yeo], and [Zso, Zeo] are set as initial values.

初期設定が行われたら、断層画像の対象画素の信号値により図5に示したカラーマップを参照し、不透明度αを取得する(ステップS332)。次に、取得した不透明度α、マスクデータMask(x,y,z)の少なくとも一方が“0”であるか否かを判定する(ステップS333)。なお、ステップS20におけるマスク設定が省略されている場合には、マスクデータMask(x,y,z)が“0”であるか否かの判定は行わず、不透明度αのみが“0”であるか否かの判定を行う。 After the initial setting is performed, the color map shown in FIG. 5 is referenced by the signal value of the target pixel of the tomographic image to acquire the opacity α (step S332). Next, it is determined whether or not at least one of the acquired opacity α and mask data Mask (x, y, z) is "0" (step S333). If the mask setting in step S20 is omitted, it is not determined whether the mask data Mask (x, y, z) is "0", and only the opacity α is "0". It is determined whether or not there is

ステップS333において、“No”すなわち不透明度α、マスクデータMask(x,y,z)の両方が“0”でない場合には、不透明とすべき画素であると考えられるため、最小値を決定するための変数Xmin(tid)、Ymin(tid)、Zmin(tid)、最大値を決定するための変数Xmax(tid)、Ymax(tid)、Zmax(tid)を変更する(ステップS334)。具体的には、以下の〔数式2〕に従った処理を実行することにより、変数の値を変更する。 In step S333, if "No", that is, if both the opacity α and the mask data Mask (x, y, z) are not "0", the pixel is considered to be opaque, so the minimum value is determined. variables Xmin(tid), Ymin(tid), and Zmin(tid) for determining the maximum value, and variables Xmax(tid), Ymax(tid), and Zmax(tid) for determining the maximum value (step S334). Specifically, the value of the variable is changed by executing the processing according to [Formula 2] below.

〔数式2〕
x<Xmin(tid)の場合、Xmin(tid)=x
x>Xmax(tid)の場合、Xmax(tid)=x
y<Ymin(tid)の場合、Ymin(tid)=y
y>Ymax(tid)の場合、Ymax(tid)=y
z<Zmin(tid)の場合、Zmin(tid)=z
z>Zmax(tid)の場合、Zmax(tid)=z
[Formula 2]
If x<Xmin(tid) then Xmin(tid)=x
If x>Xmax(tid) then Xmax(tid)=x
If y<Ymin(tid) then Ymin(tid)=y
If y>Ymax(tid) then Ymax(tid)=y
If z<Zmin(tid) then Zmin(tid)=z
If z>Zmax(tid) then Zmax(tid)=z

〔数式2〕により、対象とする断層画像群(tid)における不透明外接領域を定義するxyz各軸方向の最小値または最大値の各値が、前述の不透明度α、マスクデータMask(x,y,z)の両方が“0”でないという条件を満足する断層画像(z)における画素(x,y)の3次元座標値(x,y,z)により更新される。 By [Equation 2], each value of the minimum value or maximum value in each of the xyz axis directions defining the opaque circumscribed region in the target tomographic image group (tid) is the above-mentioned opacity α, the mask data Mask (x, y , z) are not "0".

ステップS333において、すなわち不透明度α等が“0”であると判定された場合、“0”でないと判定されてステップS334により変数を変更された場合のいずれにおいても、対象とする画素に対する処理を終えたことになるので、次に、対象画素をx軸方向において変更する(ステップS335)。具体的には、x座標の値をインクリメントする。x座標の変更の結果、x≦Xeである場合は、ステップS333に戻って、次の画素に対する処理を行う。一方、ステップS335において、x>Xeとなった場合は、対象画素をy軸方向において変更する(ステップS336)。具体的には、y座標の値をインクリメントする。x座標の変更の結果、y≦Yeである場合は、ステップS333に戻って、次の画素に対する処理を行う。このようにして、あるzで特定される断層画像の全ての画素(x,y)に対して処理を終えたら、対象画素をz軸方向において変更する(ステップS337)。すなわち、対象とする断層画像を変更する。ステップS337において、Z>z2となった場合は、1つの断層画像群における(Z2-Z1+1)個の断層画像に対して処理を終えたことになるので、図7に示したステップS330の処理を終了する。 In step S333, that is, when it is determined that the opacity α or the like is "0", or when it is determined not to be "0" and the variable is changed in step S334, the process for the target pixel is performed. Since this is the end, the target pixel is changed in the x-axis direction (step S335). Specifically, the x-coordinate value is incremented. As a result of changing the x-coordinate, if x≤Xe, the process returns to step S333 to process the next pixel. On the other hand, if x>Xe in step S335, the target pixel is changed in the y-axis direction (step S336). Specifically, the value of the y-coordinate is incremented. As a result of changing the x-coordinate, if y≤Ye, the process returns to step S333 to process the next pixel. When all the pixels (x, y) of the tomographic image specified by a certain z have been processed in this way, the target pixel is changed in the z-axis direction (step S337). That is, the target tomographic image is changed. If Z>z2 in step S337, it means that (Z2-Z1+1) tomographic images in one tomographic image group have been processed. finish.

1つの断層画像群における全ての断層画像、画素について処理を行うことにより、不透明度α、マスクデータMask(x,y,z)の両方が“0”でない全ての断層画像、画素について、ステップS334における〔数式2〕に従った処理が実行されることになる。これにより、途中に不透明度α、マスクデータMask(x,y,z)いずれかが“0”の画素があったとしても不透明度α、マスクデータMask(x,y,z)の両方が“0”でない最も外側の断層画像、画素の位置を取得することができる。 By performing processing on all tomographic images and pixels in one tomographic image group, all tomographic images and pixels for which both the opacity α and the mask data Mask (x, y, z) are not "0" are processed in step S334. A process according to [Formula 2] in is executed. As a result, even if there is a pixel in which either the opacity α or the mask data Mask (x, y, z) is “0”, both the opacity α and the mask data Mask (x, y, z) are “0”. The outermost tomographic image that is not 0″, the position of the pixel can be obtained.

図7に示したステップS330の処理をz=Z1~z=Z2まで行うことにより、分割された1つの断層画像群における不透明外接領域が算出される。そして、ステップS360において、NA個の全ての断層画像群を集めた断層画像群全体の不透明外接領域を算出する。ステップS360の処理の詳細について説明する。図8は、ステップS360における断層画像群全体の不透明外接領域の算出処理を示すフローチャートである。まず、初期設定を行う(ステップS361)。具体的には、断層画像群を特定する識別情報であるtidと、処理スレッド数を示す固定値NAと、xの最小値、最大値をそれぞれ決定するための変数Xmin、Xmaxと、yの最小値、最大値をそれぞれ決定するための変数Ymin、Ymaxと、zの最小値、最大値をそれぞれ決定するための変数Zmin、Zmaxに初期値を与える。 By performing the processing of step S330 shown in FIG. 7 from z=Z1 to z=Z2, an opaque circumscribed area in one divided tomographic image group is calculated. Then, in step S360, an opaque circumscribing region of the entire tomographic image group including all NA tomographic image groups is calculated. Details of the processing of step S360 will be described. FIG. 8 is a flow chart showing the calculation processing of the opaque circumscribed region of the entire group of tomographic images in step S360. First, initialization is performed (step S361). Specifically, tid, which is identification information for specifying a group of tomographic images, a fixed value NA indicating the number of processing threads, variables Xmin and Xmax for determining the minimum and maximum values of x, respectively, and the minimum value of y Initial values are given to variables Ymin and Ymax for determining the value and maximum value, respectively, and variables Zmin and Zmax for determining the minimum value and maximum value of z, respectively.

次に、各分割画像群において算出された最小値Xmin(tid)、Ymin(tid)、Zmin(tid)、最大値Xmax(tid)、Ymax(tid)、Zmax(tid)を用いて、最小値を決定するための変数Xmin、Ymin、Zmin、最大値を決定するための変数Xmax、Ymax、Zmaxを変更する(ステップS362)。具体的には、以下の〔数式3〕に従った処理を実行することにより、変数の値を変更する。 Next, using the minimum values Xmin(tid), Ymin(tid), Zmin(tid) and the maximum values Xmax(tid), Ymax(tid), Zmax(tid) calculated for each divided image group, the minimum value The variables Xmin, Ymin, and Zmin for determining , and the variables Xmax, Ymax, and Zmax for determining the maximum value are changed (step S362). Specifically, the value of the variable is changed by executing the processing according to [Formula 3] below.

〔数式3〕
Xmin(tid)<Xminの場合、Xmin=Xmin(tid)
Xmax(tid)>Xmaxの場合、Xmax=Xmax(tid)
Ymin(tid)<Yminの場合、Ymin=Ymin(tid)
Ymax(tid)>Ymaxの場合、Ymax=Ymax(tid)
Zmin(tid)<Zminの場合、Zmin=Zmin(tid)
Zmax(tid)>Zmaxの場合、Zmax=Zmax(tid)
[Formula 3]
If Xmin(tid)<Xmin then Xmin=Xmin(tid)
If Xmax(tid)>Xmax then Xmax=Xmax(tid)
If Ymin(tid)<Ymin then Ymin=Ymin(tid)
If Ymax(tid)>Ymax, then Ymax=Ymax(tid)
If Zmin(tid)<Zmin then Zmin=Zmin(tid)
If Zmax(tid)>Zmax then Zmax=Zmax(tid)

〔数式3〕により、対象とする断層画像群(tid)における不透明外接領域のxyz各軸方向の最小値または最大値の各値が、全体の不透明外接領域を定義する範囲を超える場合、当該断層画像群(tid)における不透明外接領域のxyz各軸方向の最小値または最大値の値により、全体の不透明外接領域を定義する範囲が拡大更新される。 According to [Equation 3], when the minimum or maximum values in the xyz axis directions of the opaque circumscribed region in the target tomographic image group (tid) exceed the range defining the entire opaque circumscribed region, the tomographic The range defining the entire opaque circumscribing region is expanded and updated according to the minimum or maximum values in the xyz axis directions of the opaque circumscribing region in the image group (tid).

次に、対象とする断層画像群を変更する(ステップS363)。具体的には、tidの値をインクリメントする。tidの値をインクリメントした結果、tidがNAより小さい場合は、全ての断層画像群に対して処理を終えていないことを意味するので、ステップS362に戻って、次の断層画像群に対して最小値、最大値を決定するための変数を変更する処理を行う。tidの値をインクリメントした結果、tidがNA以上である場合は、全ての断層画像群に対して処理を終えたことを意味するので、不透明外接領域の境界処理を行う(ステップS364)。ステップS364では、モアレ対策として、不透明度αが0の透明な画素で構成される境界面(x=Xisまたはx=Xieまたはy=Yisまたはy=Yieまたはz=Zisまたはz=Zie)を不透明外接領域の最外周となる外接直方体のエッジに1画素幅だけ付加する。具体的には、ステップS362を繰り返すことにより算出された領域をxyz各軸方向に1画素ずつ拡張する処理を行う。より具体的には、以下の〔数式4〕に従った処理を実行することにより、変数の値を変更する。 Next, the target tomographic image group is changed (step S363). Specifically, the value of tid is incremented. If tid is smaller than NA as a result of incrementing the value of tid, it means that processing has not been completed for all tomographic image groups. Perform processing to change variables for determining values and maximum values. If tid is greater than or equal to NA as a result of incrementing the value of tid, it means that the processing has been completed for all tomographic image groups, and boundary processing of the opaque circumscribed area is performed (step S364). In step S364, as a countermeasure against moire, a boundary plane (x=Xis or x=Xie or y=Yis or y=Yie or z=Zis or z=Zie) composed of transparent pixels with an opacity α of 0 is made opaque. One pixel width is added to the edge of the circumscribed rectangular parallelepiped that is the outermost circumference of the circumscribed area. Specifically, a process of expanding the calculated area by repeating step S362 by one pixel in each of the xyz axis directions is performed. More specifically, the value of the variable is changed by executing the processing according to [Formula 4] below.

〔数式4〕
Xis=Xmin-1とし、Xis<Xsの場合、Xis=Xs
Xie=Xmax+1とし、Xie>Xeの場合、Xie=Xe
Yis=Ymin-1とし、Yis<Ysの場合、Yis=Ys
Yie=Ymax+1とし、Yie>Yeの場合、Yie=Ye
Zis=Zmin-1とし、Zis<Zsの場合、Zis=Zs
Zie=Zmax+1とし、Zie>Zeの場合、Zie=Ze
[Formula 4]
If Xis=Xmin−1 and Xis<Xs, then Xis=Xs
When Xie=Xmax+1 and Xie>Xe, Xie=Xe
If Yis=Ymin−1 and Yis<Ys, then Yis=Ys
If Yie=Ymax+1 and Yie>Ye, then Yie=Ye
If Zis=Zmin−1 and Zis<Zs, then Zis=Zs
If Zie=Zmax+1 and Zie>Ze, then Zie=Ze

ステップS364においては、境界となる画素を1画素分だけ外側に移動させている。このようにして外側に1画素分広げた領域を処理対象として有効な有効領域とする。有効領域の最外側の画素は、不透明度αが“0”であるはずなので、有効領域の最外周の画素、いわゆる有効領域の境界面に位置する画素は、全て透明な画素となる。したがって、不透明外接領域算出手段50は、各軸方向における最外周となる画素に対応する不透明度が0となるように有効領域を算出することになる。ただし、有効領域の境界面に位置する画素の色成分(RGB値)は、マスクデータMask(x,y,z)が0またはROIの範囲外であるか否かにかかわらず、断層画像の信号値を基にカラーマップで定義されるRGB値をそのまま付与する。これにより、有効領域の内部と外部で、不透明度は不連続になるがRGB値は連続性が維持され、この有効領域に対応するボクセル画像に対してレンダリング処理を行った場合、有効領域の境界面に発生するモアレを抑制することが可能となる。 In step S364, the boundary pixels are moved outward by one pixel. The area expanded outward by one pixel in this manner is used as an effective area to be processed. Since the pixels on the outermost edge of the effective area should have an opacity α of "0", the pixels on the outermost periphery of the effective area, so-called pixels located on the boundary surface of the effective area, are all transparent pixels. Therefore, the opaque circumscribed area calculation means 50 calculates the effective area so that the opacity corresponding to the outermost pixels in each axial direction is zero. However, the color components (RGB values) of the pixels located on the boundary surface of the effective area are the signals of the tomographic image regardless of whether the mask data Mask (x, y, z) is 0 or outside the range of the ROI. Based on the value, the RGB value defined by the color map is given as it is. As a result, the opacity becomes discontinuous inside and outside the effective area, but the continuity of the RGB values is maintained. It is possible to suppress moiré that occurs on the surface.

ステップS364における処理の結果得られる[Xis,Xie]、[Yis,Yie]、[Zis,Zie]の直方体で定義される範囲を有効領域と定義し処理対象として特定する。なお、図8のステップS364においては、不透明外接領域の外側に1画素分広げた領域を有効領域とすることにより、有効領域の各軸方向における最外周となるボクセル(画素)に対応する不透明度が0となるようにした。しかし、これに限定されず、不透明外接領域で規定される領域をそのまま有効領域とし、最外周となるボクセルの不透明度が0でない場合であっても、最外周となるボクセルの不透明度を強制的に0に置き換えることにより、最外周となるボクセルに対応する不透明度が0となるようにしてもよい。 A range defined by rectangular parallelepipeds of [Xis, Xie], [Yis, Yie], and [Zis, Zie] obtained as a result of the processing in step S364 is defined as an effective region and specified as a processing target. In step S364 of FIG. 8, by setting the area expanded by one pixel outside the opaque circumscribed area as the effective area, the opacity corresponding to the outermost voxel (pixel) in each axial direction of the effective area is is set to 0. However, it is not limited to this, and the area defined by the opaque circumscribed area is used as it is as an effective area. may be replaced with 0 so that the opacity corresponding to the outermost voxel becomes 0.

上記のようにして、ステップS30の処理により不透明外接領域が算出される。ここで、ステップS10のROIクリッピング処理により得られるROIと、ステップS30の処理により得られる不透明外接領域を比較してみる。図9は、ROIと不透明外接領域を比較した図である。このうち、図9(a)は、ROI、図9(b)は、不透明外接領域を示している。図9(a)(b)において、楕円状の実線は、複数の断層画像による空間内における不透明画素(α>0)の分布範囲を示している。ここで、不透明画素とは、カラーマップを参照した結果、不透明度αが0より大きい値をもつ画素であり、不透明画素の分布範囲とは、不透明画素が存在している最大範囲を示している。すなわち、不透明画素の分布範囲内には、不透明度αが0である透明画素も存在している。ここでは、図9(a)(b)に示す不透明画素の分布範囲は同一のものを示している。 As described above, the opaque circumscribed area is calculated by the process of step S30. Now, let us compare the ROI obtained by the ROI clipping process of step S10 and the opaque circumscribed area obtained by the process of step S30. FIG. 9 is a diagram comparing an ROI and an opaque circumscribed region. Of these, FIG. 9(a) shows the ROI, and FIG. 9(b) shows the opaque circumscribed area. In FIGS. 9A and 9B, elliptical solid lines indicate the distribution range of opaque pixels (α>0) in the space of multiple tomographic images. Here, opaque pixels are pixels whose opacity α is greater than 0 as a result of referring to the color map, and the distribution range of opaque pixels indicates the maximum range in which opaque pixels exist. . In other words, transparent pixels with an opacity α of 0 also exist within the distribution range of opaque pixels. Here, the distribution range of opaque pixels shown in FIGS. 9A and 9B is the same.

図9(a)においては、実線の直方体がROIを示し、破線の直方体が不透明外接領域を示している。図9(b)においては、実線の直方体が不透明外接領域を示している。上述のように、ROIは、ステップS10におけるROIクリッピング設定において、xyz各軸方向のそれぞれの座標範囲を数値で指定することにより行われる。また、不透明外接領域は、ステップS30における不透明外接領域の算出において、不透明画素の分布範囲に外接する不透明外接領域を算出することにより行われる。通常、ステップS10におけるROIクリッピング設定においては、不透明画素の分布範囲を含むように利用者が設定し、ステップS30における不透明外接領域の算出においては、不透明画素の分布範囲を含む最小の不透明外接領域が算出される。そのため、図9(a)に実線の直方体と破線の直方体で示したように、不透明外接領域がROIに完全に包含され、不透明外接領域の方がROIよりも小さくなる。 In FIG. 9A, solid-line rectangular parallelepipeds indicate ROIs, and broken-line rectangular parallelepipeds indicate opaque circumscribed regions. In FIG. 9B, solid-line rectangular parallelepipeds indicate opaque circumscribed regions. As described above, the ROI is performed by numerically specifying the respective coordinate ranges in the xyz axis directions in the ROI clipping setting in step S10. The opaque circumscribing area is calculated by calculating the opaque circumscribing area that circumscribes the distribution range of the opaque pixels in the calculation of the opaque circumscribing area in step S30. Normally, the ROI clipping setting in step S10 is set by the user so as to include the distribution range of opaque pixels, and in the calculation of the opaque circumscribing region in step S30, the minimum opaque circumscribing region including the distribution range of opaque pixels is Calculated. Therefore, as shown by solid-line rectangular parallelepipeds and broken-line rectangular parallelepipeds in FIG. 9A, the opaque circumscribing region is completely included in the ROI, and the opaque circumscribing region is smaller than the ROI.

しかし、ROIは、ステップS10におけるROIクリッピング設定において任意に設定できるため、必ずしも不透明画素の分布範囲全体を含むように設定されるとは限らない。その場合、有効領域は、ROIと不透明外接領域の両方に含まれる範囲内で定義される。また、マスク設定処理(S20)においてマスクが定義されている場合、図9のα>0の範囲として示されている楕円体のような任意の3次元形状で囲まれる範囲の外側がマスクされα=0となるが、不透明画素の分布範囲とは独立して定義される。即ち、図9のα>0の範囲として示されている楕円体のような分布が2種類存在し、これらの2種類の分布が重なったα>0の分布範囲に外接するように不透明外接領域が設定されることになり、不透明外接領域は更に小さくなる。 However, since the ROI can be arbitrarily set in the ROI clipping setting in step S10, it is not necessarily set so as to include the entire distribution range of opaque pixels. In that case, the active area is defined within the bounds of both the ROI and the opaque bounding area. Further, when a mask is defined in the mask setting process (S20), the outside of the range surrounded by an arbitrary three-dimensional shape such as an ellipsoid shown as the range of α>0 in FIG. 9 is masked by α = 0, but is defined independently of the distribution range of opaque pixels. That is, there are two types of ellipsoid-like distributions shown as the range of α>0 in FIG. is set, and the opaque circumscribing area becomes even smaller.

ここで、不透明外接領域の内部における画素の分布について説明する。図9(c)は、図9(b)に対し、ドーナツ型のマスクデータMask(x,y,z)を追加したもので、図9(c)の三重の楕円で挟まれた白色の領域がMask(x,y,z)=0となるマスク領域である。図9(c)においては、不透明度α、マスクデータMask(x,y,z)の両方が“0”でない画素を網掛けで示しており、不透明度α、マスクデータMask(x,y,z)のいずれかが“0”の画素を網掛けせずに示している。図9(c)に示すように、不透明度α、マスクデータMask(x,y,z)の両方が“0”でない画素の分布が内側と外側の二重になっていたとしても、不透明度α、マスクデータMask(x,y,z)の両方が“0”でない画素の分布の最も外側を含むように、不透明外接領域は設定される。内側のマスクデータMask(x,y,z)の両方が“0”でない画素の分布に対しては、不透明外接領域は設定されない。 Now, the distribution of pixels inside the opaque circumscribing region will be described. FIG. 9(c) is obtained by adding doughnut-shaped mask data Mask (x, y, z) to FIG. 9(b). is the mask area where Mask(x, y, z)=0. In FIG. 9C, pixels where both the opacity α and the mask data Mask (x, y, z) are not “0” are shaded. z) is "0" is shown without shading. As shown in FIG. 9(c), even if the distribution of pixels where both the opacity α and the mask data Mask (x, y, z) are not “0” is doubled inside and outside, the opacity The opaque circumscribed area is set so as to include the outermost part of the distribution of pixels where both α and mask data Mask (x, y, z) are not "0". No opaque circumscribed area is set for the distribution of pixels in which both inner mask data Mask (x, y, z) are not "0".

このようにして、不透明外接領域に対応する範囲に縮小した有効領域を定義してボリュームレンダリングを行っても、得られるレンダリング画像は、従来の断層画像全体(ボクセル画像)を有効領域としてボリュームレンダリングを行う場合と差異は無い。しかし、後述するレンダリング画像の各画素に対応して探索される仮想光線上の有効領域における起点座標を迅速に求めることが可能になる。 In this way, even if volume rendering is performed by defining an effective area reduced to the range corresponding to the opaque circumscribed area, the rendered image obtained is the same as the conventional volume rendering using the entire tomographic image (voxel image) as the effective area. There is no difference from the case of doing. However, it is possible to quickly obtain the starting point coordinates in the effective area on the virtual ray that is searched for each pixel of the rendering image described later.

ステップS30における不透明外接領域算出処理を終了したら、レンダリング手段60が、レンダリング処理を行う(ステップS40)。図10は、ステップS40におけるレンダリング処理を各CPUコアで並行して行う処理を示すフローチャートである。 After completing the opaque circumscribed area calculation processing in step S30, the rendering means 60 performs rendering processing (step S40). FIG. 10 is a flow chart showing the process of performing the rendering process in step S40 in parallel by each CPU core.

レンダリング画像の生成は、設定されたサイズにより定まる生成領域を複数に分割し、得られた各分割生成領域について並行して処理を行って分割画像を生成することにより行う。レンダリング画像のサイズは、x軸方向y軸方向ともに同一であり、画素数Size×Sizeに設定される。まず、レンダリング手段60は、並列処理を行うための分割する分割生成領域を初期設定する(ステップS410)。本実施形態では、y座標については分割せず、x座標についてNB個に分割する。具体的には、各分割生成領域のx座標の先頭座標をX1、末尾座標をX2とし、先頭座標X1、末尾座標X2に、設定されたサイズSize×Sizeで特定される全体のレンダリング画像の分割生成領域を割り当てていく。初期値として、X1=0、X2=Size/NB-1が設定される。 Rendering images are generated by dividing a generation region determined by a set size into a plurality of regions, and processing the obtained divided generation regions in parallel to generate divided images. The size of the rendered image is the same in both the x-axis direction and the y-axis direction, and is set to the number of pixels Size×Size. First, the rendering means 60 initializes divided generation areas to be divided for parallel processing (step S410). In this embodiment, the y-coordinate is not divided, but the x-coordinate is divided into NB pieces. Specifically, the start coordinate of the x coordinate of each divided generation area is set to X1, and the end coordinate is set to X2. Allocate the generation area. As initial values, X1=0 and X2=Size/NB-1 are set.

次に、生成する座標変換パラメータの設定を行う(ステップS420)。レンダリング手段60は、以後のステップにおいて座標変換を実施する際に共通に用いるパラメータである座標変換パラメータを設定する。座標変換パラメータの設定は、ボクセルに対して仮想光線を照射する際、ボクセル単位に逐次座標変換処理を円滑に行うことができるようにするために、視点を基準とする視点座標系における3次元座標を基にボクセル画像が定義されているボクセル座標系の3次元座標に変換し、ボクセル座標系において対応するボクセルの信号値を取得するための処理である。 Next, coordinate transformation parameters to be generated are set (step S420). The rendering means 60 sets coordinate transformation parameters that are commonly used when performing coordinate transformation in subsequent steps. The setting of the coordinate transformation parameters is performed by setting the three-dimensional coordinates in the viewpoint coordinate system based on the viewpoint so that the sequential coordinate transformation processing can be performed smoothly for each voxel when irradiating the voxel with a virtual ray. is converted into three-dimensional coordinates in the voxel coordinate system in which the voxel image is defined based on , and the signal values of the corresponding voxels in the voxel coordinate system are acquired.

ここで、座標変換の概念図と座標変換パラメータの具体例については説明する。図11は、座標変換の概念図である。レンダリングにより得られるレンダリング画像は視点から見た画像であるので、レンダリング画像の各画素(x,y)の基準となる視点座標系は必ずしもボクセル座標系とは一致していない。そこでレンダリング手段60は、ボクセル座標系に定義されているボクセル画像を視点座標系に変換する必要がある。すなわち、本来は、図11(a)に示すように、投影面の各点からボクセル画像に対して任意の方向に仮想光線(レイ)を発射し、仮想光線が交差するボクセル画像内の指定範囲における信号値を複数抽出し、抽出された複数のボクセルの信号値を基にレンダリング画像の画素値を算出する。しかし、計算を簡単にするため、ボクセル画像に座標変換を施し、図11(b)に示すように、投影面の各点よりz軸負方向に指定範囲における画素値を算出する。ただし、図11(b)に示すような座標変換されたボクセル画像は実際には別途作成されるものではなく、各ボクセルごとに逆方向に座標変換を行いながらボクセル画像の画素値を都度取得するようにしている。 Here, a conceptual diagram of coordinate transformation and specific examples of coordinate transformation parameters will be described. FIG. 11 is a conceptual diagram of coordinate transformation. Since a rendered image obtained by rendering is an image viewed from a viewpoint, the viewpoint coordinate system that serves as a reference for each pixel (x, y) of the rendered image does not necessarily match the voxel coordinate system. Therefore, the rendering means 60 needs to convert the voxel image defined in the voxel coordinate system to the viewpoint coordinate system. That is, originally, as shown in FIG. 11(a), a virtual ray is emitted from each point on the projection surface to the voxel image in an arbitrary direction, and the specified range in the voxel image where the virtual ray intersects A plurality of signal values are extracted at , and the pixel values of the rendering image are calculated based on the extracted signal values of the plurality of voxels. However, in order to simplify the calculation, the voxel image is subjected to coordinate transformation, and the pixel values in the specified range in the negative z-axis direction from each point on the projection plane are calculated as shown in FIG. 11(b). However, the coordinate-transformed voxel image as shown in FIG. 11(b) is not actually created separately, and the pixel value of the voxel image is acquired each time while performing the coordinate transformation in the opposite direction for each voxel. I'm trying

座標変換を実施する際には、様々な座標変換パラメータを用いる。視点座標系とボクセル座標系の位置関係が同じであれば、座標変換パラメータも同じであると考えられる。即ち、レンダリング手段60において、視点座標系で参照される全てのボクセルに対して、ボクセル座標系に座標変換を実施するための座標変換パラメータは同一である。そこでレンダリング手段60は、ステップS420において座標変換パラメータをあらかじめ算出し、以後のステップにおいてはその座標変換パラメータを共通の座標変換パラメータとして流用する。座標変換パラメータとしては例えば以下のようなものが挙げられる。 Various coordinate transformation parameters are used when performing the coordinate transformation. If the positional relationship between the viewpoint coordinate system and the voxel coordinate system is the same, it is considered that the coordinate transformation parameters are also the same. That is, in the rendering means 60, coordinate transformation parameters for carrying out coordinate transformation to the voxel coordinate system are the same for all voxels referred to by the viewpoint coordinate system. Therefore, the rendering means 60 calculates coordinate transformation parameters in advance in step S420, and uses the coordinate transformation parameters as common coordinate transformation parameters in subsequent steps. Examples of coordinate transformation parameters include the following.

・所定の3次元座標系における回転を定義した3×3行列(逆方向に投影変換が行われるため、指示入力I/F4により指示され定義された3×3行列の逆行列)
・xyz軸方向のオフセット値:Xoff、Yoff、Zoff(単位:ボクセル)
・ROIクリッピングで設定された領域:x軸方向:Xs~Xe,y軸方向:Ys~Ye,z軸方向:Zs~Ze
・不透明外接領域:x軸方向:Xis~Xie,y軸方向:Yis~Yie,z軸方向:Zis~Zie
・拡大又は縮小倍率:Scale(xyz各軸について同じ値を用いる。)
・z軸方向変倍率:Scz=Rxy/Rz(xy軸方向の解像度Rxyとz軸方向の解像度Rzの間の比率)
・座標変換サブサンプル・微小オフセット値:x軸方向dx,y軸方向dy,z軸方向dz
・仮想光線のサブサンプリング倍率:Sray(通常は1、値が大きいと粗くなる、1未満だと高精細になる)
・3×3 matrix defining rotation in a predetermined three-dimensional coordinate system (the inverse matrix of the 3×3 matrix specified and defined by the instruction input I/F 4 because projection transformation is performed in the opposite direction)
・Offset value in xyz axis direction: Xoff, Yoff, Zoff (unit: voxel)
・Area set by ROI clipping: x-axis direction: Xs to Xe, y-axis direction: Ys to Ye, z-axis direction: Zs to Ze
・Opaque circumscribed area: x-axis direction: Xis to Xie, y-axis direction: Yis to Yie, z-axis direction: Zis to Zie
・Enlargement or reduction ratio: Scale (use the same value for each xyz axis)
z-axis direction scaling factor: Scz=Rxy/Rz (ratio between xy-axis direction resolution Rxy and z-axis direction resolution Rz)
・Coordinate transformation sub-sampling ・Small offset value: x-axis direction dx, y-axis direction dy, z-axis direction dz
・ Virtual ray subsampling magnification: Sray (usually 1, the larger the value, the coarser the value, the less than 1, the finer)

座標変換パラメータが設定されたら、座標変換サブサンプルのオフセットを行う(ステップS430)。具体的には、dx=dy=dz=0に設定する。また、l=0に設定する。次に、分割生成領域について分割画像の生成処理を行う(ステップS440)。上述のように、レンダリング画像の生成領域は、x座標においてのみNB個に分割されているため、分割画像のy座標の画素数はSizeであり、分割画像のx座標の画素数は(X2-X1+1)となる。したがって、ステップS440においては、Size×(X2-X1+1)画素の分割画像を生成することになる。このステップS440の処理については後述する。 After the coordinate transformation parameters are set, the coordinate transformation sub-sampling is offset (step S430). Specifically, dx=dy=dz=0 is set. Also, set l=0. Next, division image generation processing is performed for the division generation area (step S440). As described above, the rendering image generation area is divided into NB pieces only on the x-coordinate. X1+1). Therefore, in step S440, a divided image of Size.times.(X2-X1+1) pixels is generated. The processing of step S440 will be described later.

続いて、座標変換サブサンプルの更新を行う(ステップS450)。具体的には、l←l+1, dx←dx+1/L, dy←dy+1/L, dz←dz+1/L を実行する。座標変換サブサンプルを更新しながら、ステップS440の処理はL回実行されることになる。 Subsequently, the coordinate transformation sub-samples are updated (step S450). Specifically, execute l←l+1, dx←dx+1/L, dy←dy+1/L, dz←dz+1/L. The process of step S440 is performed L times while updating the coordinate transformation sub-samples.

ステップS440の処理は、複数のCPUコアにより並行して行われる。このため、最初の分割範囲について分割画像の生成処理を1つのCPUコアに割り当てて実行処理を起動したら、処理終了を待たずに次の分割生成領域を設定および生成処理の起動を進める(ステップS460)。具体的には、X1、X2の値をそれぞれSize/NBだけ増加し、次の分割生成領域におけるx座標の先頭座標X1、末尾座標X2を新たに設定する。 The process of step S440 is performed in parallel by a plurality of CPU cores. Therefore, after assigning the divided image generation processing for the first divided range to one CPU core and starting the execution processing, the next divided generation area is set and the generation processing is started without waiting for the end of the processing (step S460). ). Specifically, the values of X1 and X2 are each increased by Size/NB, and the leading coordinate X1 and the trailing coordinate X2 of the x coordinate in the next divided generation area are newly set.

ステップS460において新たな分割生成領域を設定した後、新たな分割生成領域がレンダリング画像全体のサイズを超えている場合、すなわち、ここでは、X2>Size-1を満たす場合は、全ての分割生成領域について設定および分割画像生成の処理の起動を終えたとして、図10に示すステップS40の処理を終了する。X2≦Size-1を満たす場合は、全ての分割生成領域について処理を終えていないため、ステップS420に戻って、他のCPUコアに割り当て、分割画像の生成を起動する処理を繰り替えす。 After setting a new segmented region in step S460, if the new segmented region exceeds the size of the entire rendered image, that is, if X2>Size-1 is satisfied here, all segmented regions , the process of step S40 shown in FIG. 10 is terminated. If X2≦Size−1 is satisfied, the process has not been completed for all divided generation areas, so the process returns to step S420 to allocate another CPU core and repeat the process of activating divided image generation.

図10のステップS440の分割画像生成処理について説明する。図12は、ステップS440の分割画像生成処理の詳細を示すフローチャートである。ここで、生成するレンダリング画像の分割画像を定義しておく。レンダリング画像は、各2次元座標(x,y) (X1≦x≦X2, 0≦y≦Size-1)で特定される画素においてRGB各色8ビット計24ビットの画素値を有する画像である。そして、このレンダリング画像に対して、まず背景色を設定する(ステップS610)。具体的には、8ビットで0~255の値をとる背景色bg(c)、c=0(R),1(G),2(B)を定義する。そして、対象とするレンダリング画像の画素をx=X1、y=0とする。 The divided image generation processing in step S440 of FIG. 10 will be described. FIG. 12 is a flow chart showing details of the divided image generation processing in step S440. Here, the divided images of the rendered image to be generated are defined. The rendered image is an image having 24-bit pixel values in total of 8 bits for each color of RGB at pixels specified by two-dimensional coordinates (x, y) (X1≤x≤X2, 0≤y≤Size-1). Then, the background color is first set for this rendered image (step S610). Specifically, the background color bg(c), c=0(R), 1(G), 2(B), which takes values from 0 to 255 in 8 bits, is defined. Let x=X1 and y=0 be the pixel of the target rendering image.

次に、仮想光線強度と累積輝度値を初期化する(ステップS620)。具体的には、仮想光線強度Trans=1.0、累積輝度値Energy(c)=0.0に初期化する。累積輝度値Energy(c)は、R,G,Bにそれぞれ対応するc=0,1,2ごとに設定される。 Next, the virtual ray intensity and the cumulative brightness value are initialized (step S620). Specifically, the virtual light intensity Trans=1.0 and the cumulative luminance value Energy(c)=0.0 are initialized. The cumulative luminance value Energy(c) is set for each c=0, 1, 2 corresponding to R, G, B, respectively.

次に、有効領域と仮想光線との交点z座標を算出する(ステップS630)。具体的には、レイキャスティング処理の対象とするレンダリング画像上の対象画素(x,y)に対して、視点座標系におけるz=Zo(=Size/Sray-1)からz=0の範囲で、視点z=Zoに最も近い有効領域([Xis,Xie]、[Yis,Yie]、[Zis,Zie])との交点Zcを算出する。 Next, the z coordinate of the intersection point between the effective area and the virtual ray is calculated (step S630). Specifically, with respect to the target pixel (x, y) on the rendering image that is the target of the ray casting process, in the range from z = Zo (=Size/Sray-1) to z = 0 in the viewpoint coordinate system, An intersection point Zc with the effective area ([Xis, Xie], [Yis, Yie], [Zis, Zie]) closest to the viewpoint z=Zo is calculated.

交点Zcの算出にあたり、まず、仮想光線ベクトルを算出する。具体的には、視点座標系の(x,y,Zo)および(x,y,0)に対して上記座標変換パラメータを用いて各々座標変換を行い、実数値のボクセル座標を各々(x1,y1,z1)、(x2,y2,z2)とし、仮想光線ベクトルの各要素vx=x2-x1、vy=y2-y1、vz=z2-z1を算出する。 In calculating the intersection point Zc, first, a virtual ray vector is calculated. Specifically, coordinate transformation is performed on (x, y, Zo) and (x, y, 0) of the viewpoint coordinate system using the above coordinate transformation parameters, and real-valued voxel coordinates are converted to (x1, y1, z1), (x2, y2, z2), and each element vx=x2-x1, vy=y2-y1, vz=z2-z1 of the virtual ray vector is calculated.

次に、仮想光線ベクトルと有効領域の6面との交点を算出する。具体的には、以下の〔数式6〕に従った処理を実行する。 Next, the points of intersection between the virtual ray vector and the six surfaces of the effective area are calculated. Specifically, a process according to [Formula 6] below is executed.

〔数式6〕
tx=ty=tz=10に初期化
|vx|≧1の場合、tx1=(Xis-x1)/vx,tx2=(Xie-x1)/vxを算出し、tx1、tx2のうち小さい方をtxに設定する。
|vy|≧1の場合、ty1=(Yis-y1)/vy,ty2=(Yie-y1)/vyを算出し、ty1、ty2のうち小さい方をtyに設定する。
|vz|≧1の場合、tz1=(Zis-z1)/vz,tz2=(Zie-z1)/vzを算出し、tz1、tz2のうち小さい方をtzに設定する。
[Formula 6]
Initialize to tx = ty = tz = 10 If |vx|≧1, calculate tx1=(Xis-x1)/vx, tx2=(Xie-x1)/vx, and set the smaller one of tx1 and tx2 to tx set to
If |vy|≧1, ty1=(Yis−y1)/vy and ty2=(Yie−y1)/vy are calculated, and the smaller one of ty1 and ty2 is set as ty.
If |vz|≧1, calculate tz1=(Zis−z1)/vz, tz2=(Zie−z1)/vz, and set the smaller one of tz1 and tz2 to tz.

〔数式6〕に従った処理により、tx、ty、tzが得られる。続いて、視点(z=Zo)に最も近い交点Zcを決定する。具体的には、以下の〔数式7〕に従った処理を実行する。 tx, ty, and tz are obtained by processing according to [Equation 6]. Subsequently, the intersection point Zc closest to the viewpoint (z=Zo) is determined. Specifically, a process according to [Formula 7] below is executed.

〔数式7〕
Zc=-1に初期化し、以下の1)~3)を実行
1)tx≦1の場合、Y=vy・tx+y1,Z=vz・tx+z1を算出、Yis≦Y≦YieかつZis≦Z≦Zieならば、Zはボクセル座標系における交点のz座標であるから視点座標系における交点のz座標をZvとしてZv=Zo・(1-tx)を算出、Zv>ZcならばZc=Zvに置換
2)ty≦1の場合、X=vx・ty+x1,Z=vz・ty+z1を算出、Xis≦X≦XieかつZis≦Z≦Zieならば、Zv=Zo・(1-ty)を算出、Zv>ZcならばZc=Zvに置換
3)tz≦1の場合、X=vx・tz+x1,Y=vy・tz+y1算出、Xis≦X≦XieかつYis≦Y≦Yieならば、Zv=Zo・(1-tz)を算出、Zv>ZcならばZc=Zvに置換
[Formula 7]
Initialize to Zc = -1 and execute the following 1) to 3) 1) If tx ≤ 1, calculate Y = vy tx + y1 and Z = vz tx + z1, Yis ≤ Y ≤ Yie and Zis ≤ Z ≤ Zie Then, Z is the z-coordinate of the intersection point in the voxel coordinate system, so Zv = Zo (1-tx) is calculated with the z-coordinate of the intersection point in the viewpoint coordinate system as Zv. ) If ty ≤ 1, calculate X = vx ty + x1, Z = vz ty + z1, if Xis ≤ X ≤ Xie and Zis ≤ Z ≤ Zie, calculate Zv = Zo (1-ty), Zv > Zc Then replace with Zc=Zv 3) If tz≦1, X=vx tz+x1 and Y=vy tz+y1 are calculated. If Xis≦X≦Xie and Yis≦Y≦Yie, Zv=Zo (1−tz ) is calculated, and if Zv>Zc, replace with Zc=Zv

〔数式7〕において、1)~3)は、複数実行される場合もあれば、1つも実行されない場合もある。〔数式7〕に従った処理を実行することにより交点Zcが得られる。ただし、得られた結果が視点(z=Zo)より手前(Zc>Zo)となった場合、Zc=Zoと補正し、視点の位置が交点となる。ステップS630においては、レイキャスティング手段61は、レンダリング画像の各画素において、有効領域と、視点に最も近い視線方向のベクトルとの交点Zcを算出している。 In [Equation 7], 1) to 3) may be executed more than once or may not be executed at all. The intersection point Zc is obtained by executing the processing according to [Equation 7]. However, when the obtained result is in front of the viewpoint (z=Zo) (Zc>Zo), the position of the viewpoint is corrected to Zc=Zo and the position of the viewpoint becomes the intersection point. In step S630, the ray casting means 61 calculates the intersection point Zc between the effective area and the line-of-sight direction vector closest to the viewpoint for each pixel of the rendering image.

このようにしてステップS630の処理により、有効領域と仮想光線との交点z座標Zcが算出されたら、次にボクセルの参照処理を実行する(ステップS640)。ボクセルの参照処理においては、参照したボクセルの信号値に対してカラーマップを参照しながら不透明度に変換して不透明なボクセルを探索し探索された不透明なボクセルの信号値に対して更にカラーマップを参照しながらRGB値に変換して、仮想光線強度Trans、RGB各色(c=0,1,2)の累積輝度値Energy(c)を算出する。ステップS640の処理については後述する。 After the z-coordinate Zc of the intersection point between the effective area and the virtual ray is calculated by the process of step S630, the voxel reference process is executed (step S640). In the voxel reference process, the signal value of the referenced voxel is converted to opacity while referring to the color map, and the opaque voxel is searched for. Convert to RGB values while referring to it, and calculate the virtual light intensity Trans and the cumulative luminance value Energy(c) of each color of RGB (c=0, 1, 2). The processing of step S640 will be described later.

仮想光線強度Trans、RGB各色(c=0,1,2)の累積輝度値Energy(c)が算出されたら、レンダリング画像の画素(x,y)における画素値を決定する(ステップS650)。具体的には、以下の〔数式8〕に従った処理を実行する。 After calculating the virtual light intensity Trans and the cumulative luminance value Energy(c) of each color of RGB (c=0, 1, 2), the pixel value of the pixel (x, y) of the rendering image is determined (step S650). Specifically, a process according to [Formula 8] below is executed.

〔数式8〕
Image(x,y,c)←Image(x,y,c)+K・{Energy(c)+Trans・bg(c)}/L
[Formula 8]
Image (x, y, c) ← Image (x, y, c) + K · {Energy (c) + Trans · bg (c)} / L

〔数式8〕において、Kは強度倍率であり、本実施形態では、K=1.0である。このようにして、画素(x,y)における画素値が決定したら、レンダリング画像の対象画素をx軸方向に1つだけ移動させた(ステップS660)後、ステップS620~ステップS650の処理を繰り返して実行し、次の画素(x,y)を対象として画素値を算出する。x軸方向の上限X2に達したら、レンダリング画像の対象画素をx軸方向の初期値に移動させる(ステップS670)。この際、x=X1とする。そして、ステップS620~ステップS650の処理を繰り返して実行し、次の画素(x,y)を対象として画素値を算出する。このようにして、X1≦x≦X2、0≦y≦Size-1の範囲の全ての画素について画素値を算出したら、図12に示すステップS440のレイキャスティング処理を終了する。 In [Equation 8], K is an intensity magnification, and in this embodiment, K=1.0. After the pixel value of the pixel (x, y) is determined in this manner, the target pixel of the rendered image is moved in the x-axis direction by one (step S660), and then the processing of steps S620 to S650 is repeated. Execute and calculate the pixel value for the next pixel (x, y). When the upper limit X2 in the x-axis direction is reached, the target pixel of the rendering image is moved to the initial value in the x-axis direction (step S670). At this time, x=X1. Then, the processing of steps S620 to S650 is repeatedly executed to calculate the pixel value for the next pixel (x, y). After calculating the pixel values for all the pixels in the range of X1≦x≦X2 and 0≦y≦Size−1 in this way, the ray casting process in step S440 shown in FIG. 12 ends.

ここで、ステップS640のボクセルの参照処理について説明する。図13は、ステップS640のボクセルの参照処理の詳細を示すフローチャートである。まず、探索開始座標を設定する(ステップS641)。具体的には、探索開始のz座標Zst=Zcに設定する。次に、探索開始座標Zstから先頭の不透明ボクセルのz座標を起点座標として探索する(ステップS642)。 Here, the voxel reference processing in step S640 will be described. FIG. 13 is a flowchart showing the details of the voxel reference process in step S640. First, search start coordinates are set (step S641). Specifically, the search start z-coordinate Zst=Zc is set. Next, a search is performed using the z-coordinate of the first opaque voxel from the search start coordinate Zst as the starting coordinate (step S642).

ステップS642の起点座標探索処理については、図14を用いて説明する。図14は、起点座標探索手段62が各レンダリング画像の画素において起点座標を探索する処理を示すフローチャートである。起点座標探索手段62は、各対象画素(x,y)について図14に示したフローチャートに従った処理を実行する。 The origin coordinate search processing in step S642 will be described using FIG. FIG. 14 is a flow chart showing the process by which the starting point coordinate searching means 62 searches for the starting point coordinates in each pixel of the rendered image. The origin coordinate searching means 62 executes the processing according to the flowchart shown in FIG. 14 for each target pixel (x, y).

起点座標探索手段62は、起点座標を探索する対象画素(x,y)、視点座標系の3次元座標(x,y,z)をセットする(ステップS901)。探索開始座標であるz座標の初期値はz=Zst(上限値)とする。z座標の下限値は0、上限値はZstである。上限値であるZstは視点のz座標である。 The starting point coordinate searching means 62 sets the target pixel (x, y) for which the starting point coordinates are to be searched, and the three-dimensional coordinates (x, y, z) of the viewpoint coordinate system (step S901). The initial value of the z coordinate, which is the search start coordinate, is set to z=Zst (upper limit). The z-coordinate has a lower limit of 0 and an upper limit of Zst. Zst, which is the upper limit, is the z-coordinate of the viewpoint.

起点座標探索手段62は、3次元座標(x,y,z)について、座標変換を実施して対応するボクセル画像のボクセルが、透明か否かを判定する(ステップS902)。座標変換は、視点座標系をボクセル座標系に変換する操作であり、GUI側の変換操作とは逆になる。GUI側ではROIによるクリッピング、スケーリング、z軸方向変倍処理、回転、オフセット(xyz軸方向同時)の順に行うものと仮定し、与えられた視点座標系の3次元座標(x,y,z)(整数値)に対応するDICOM形式の複数の断層画像Do(x,y,z)で構成されるボクセル画像のボクセルに対応する実数の座標(xr,yr,zr)を算出する。 The starting point coordinate searching means 62 determines whether or not the corresponding voxel of the voxel image by performing coordinate transformation on the three-dimensional coordinates (x, y, z) is transparent (step S902). Coordinate transformation is an operation for transforming the viewpoint coordinate system into the voxel coordinate system, which is the reverse of the transformation operation on the GUI side. On the GUI side, it is assumed that clipping by ROI, scaling, z-axis direction scaling processing, rotation, and offset (simultaneously in the xyz-axis direction) are performed in this order, and the three-dimensional coordinates (x, y, z) of the given viewpoint coordinate system are assumed to be performed. Real number coordinates (xr, yr, zr) corresponding to voxels of a voxel image composed of a plurality of DICOM-format tomographic images Do (x, y, z) corresponding to (integer values) are calculated.

具体的には、まず、整数値である視点座標系の3次元座標(x,y,z)を実数値(xx,yy,zz)に変換する。視点座標系は、Size×Size×Size/Srayの直方体であり、Sx×Sy×Szのボクセル画像とは独立して定義される。DICOM形式の断層画像のサイズSx×Syは、通常Sx=Sy=512であるため、Size=512とすることが多い。 Specifically, first, the three-dimensional coordinates (x, y, z) of the viewpoint coordinate system, which are integer values, are converted into real values (xx, yy, zz). The viewpoint coordinate system is a rectangular parallelepiped of Size×Size×Size/Sray, and is defined independently of the voxel image of Sx×Sy×Sz. Since the size Sx×Sy of a DICOM-format tomographic image is usually Sx=Sy=512, Size=512 is often used.

視点座標系のz軸方向は仮想光線サブサンプル(1/Sray)倍(Sray≦1)に拡大されていることを考慮して、最初に、以下の〔数式9〕に従った処理を実行してxyz軸方向同時にオフセット処理を行う。 Considering that the z-axis direction of the viewpoint coordinate system is enlarged by the virtual ray subsample (1/Sray) times (Sray≤1), first, the processing according to [Equation 9] below is executed. offset processing is performed simultaneously in the xyz-axis directions.

〔数式9〕
xx=x-Size/2+dx+Xoff
yy=y-Size/2+dy+Yoff
zz=z・Sray-Size/2+dz+Zoff
[Formula 9]
xx=x−Size/2+dx+Xoff
yy=y−Size/2+dy+Yoff
zz=z.Sray-Size/2+dz+Zoff

続いて、生成された3×3回転逆行列を用いて、以下の〔数式10〕に従った処理を実行して回転処理を行う。 Subsequently, using the generated 3×3 rotation inverse matrix, the rotation processing is performed by executing the processing according to [Equation 10] below.

〔数式10〕
xx←R11・xx+R12・yy+R13・zz
yy←R21・xx+R22・yy+R23・zz
zz←R31・xx+R32・yy+R33・zz
[Formula 10]
xx←R11・xx+R12・yy+R13・zz
yy←R21・xx+R22・yy+R23・zz
zz←R31・xx+R32・yy+R33・zz

回転処理後の座標として(xx,yy,zz)が得られる。続いて、以下の〔数式11〕に従った処理を実行して、スケーリング、z軸方向変倍処理を同時に行う。 (xx, yy, zz) are obtained as the coordinates after the rotation processing. Subsequently, processing according to the following [Equation 11] is executed to perform scaling and z-axis direction variable magnification processing at the same time.

〔数式11〕
xr=xx/Scale+Sx/2
yr=yy/Scale+Sy/2
zr=zz/(Scale・Scz)+Sz/2
[Formula 11]
xr=xx/Scale+Sx/2
yr=yy/Scale+Sy/2
zr=zz/(Scale·Scz)+Sz/2

このようにしてボクセル座標系の座標(xr,yr,zr)が算出される。この座標(xr,yr,zr)は実数値である。次に、起点座標探索手段62は、算出されたボクセル座標系の座標(xr,yr,zr)を整数値化する。具体的には、以下の〔数式12〕に従った処理を実行して、整数値化を行う。 Thus, the coordinates (xr, yr, zr) of the voxel coordinate system are calculated. The coordinates (xr, yr, zr) are real values. Next, the origin coordinate searching means 62 converts the calculated coordinates (xr, yr, zr) of the voxel coordinate system into integer values. Specifically, a process according to [Formula 12] below is executed to convert to an integer value.

〔数式12〕
xi=INT[xr+0.5]
yi=INT[yr+0.5]
zi=INT[zr+0.5]
[Formula 12]
xi=INT[xr+0.5]
yi=INT[yr+0.5]
zi=INT[zr+0.5]

〔数式12〕において、INTは[]内の数値の小数点以下を切り捨てて整数化することを意味する。したがって、〔数式12〕に従った処理により、実数値の座標(xr,yr,zr)の各値は、四捨五入されて、整数値の座標(xi,yi,zi)が得られる。 In [Numerical formula 12], INT means rounding off the decimal point of the numerical value in [ ] to make it an integer. Therefore, by the processing according to [Equation 12], each value of the real-valued coordinates (xr, yr, zr) is rounded off to obtain the integer-valued coordinates (xi, yi, zi).

このようにして、視点座標系の座標(x,y,z)に対応するボクセル座標系の座標(xi,yi,zi)が得られたら、有効領域、マスクデータMaskおよび不透明度補正テーブルSαを用いて、以下の〔数式13〕に従った処理を実行して、ボクセル座標系の座標(xi,yi,zi)に対応するボクセルが、透明か、不透明か、有効領域外であるかを求める。不透明度補正テーブルSα(x,y,z)は、あらかじめ3次元空間に不透明度に対する補正倍率が定義された多次元伝達関数である。同関数は、内臓が存在する中心部の領域の補正倍率を最大に設定し、周辺に向けて補正倍率を所定の関数で減衰させ、骨領域より外側(体表面:脂肪・筋肉・皮膚層、体外:寝台、ヘッドレスト・固定治具)において補正倍率が0になるように定義される。これを用いて、ボリュームレンダリングを実行すると、骨領域より外側が透明になり、内臓領域のみが露出したボリュームレンダリング像を得ることができる。マスクデータMaskおよび不透明度補正テーブルSαが定義されていない場合、Mask(x,y,z)=Sα(x,y,z)=1とする。 When the coordinates (xi, yi, zi) of the voxel coordinate system corresponding to the coordinates (x, y, z) of the viewpoint coordinate system are thus obtained, the effective area, the mask data Mask, and the opacity correction table Sα is used to execute the processing according to the following [Equation 13] to determine whether the voxel corresponding to the coordinates (xi, yi, zi) in the voxel coordinate system is transparent, opaque, or outside the effective area. . The opacity correction table Sα(x, y, z) is a multidimensional transfer function in which a correction magnification for opacity is defined in advance in a three-dimensional space. The same function sets the correction magnification to the maximum in the central area where the internal organs exist, decreases the correction magnification toward the periphery by a predetermined function, Outside the body: bed, headrest/fixing jig) is defined so that the correction magnification is 0. When volume rendering is performed using this, a volume rendering image in which the outside of the bone region becomes transparent and only the visceral region is exposed can be obtained. If the mask data Mask and the opacity correction table Sα are not defined, Mask(x, y, z)=Sα(x, y, z)=1.

〔数式13〕
xi<Xisまたはxi>Xieまたはyi<Yisまたはyi>Yieまたはzi<Zisまたはzi>Zieの場合(すなわち有効領域の外の場合):Vα=-1(無効値)
上記以外の場合(すなわち有効領域の場合):Vα=Vo(xi,yi,zi)
ただし、Vo(x,y,z)=Cmap(Do(x,y,z),3)・Mask(x,y,z)・Sα(x,y,z)と定義する。Cmap(d,c)はカラーマップで、dは断層画像の信号値、cは色および不透明度の成分でc=0(R),1(G),2(B),3(α)である。
[Formula 13]
If xi<Xis or xi>Xie or yi<Yis or yi>Yie or zi<Zis or zi>Zie (i.e. outside the valid area): Vα=−1 (invalid value)
Otherwise (i.e. valid area): Vα=Vo(xi, yi, zi)
However, it is defined as Vo(x, y, z)=Cmap(Do(x, y, z), 3)·Mask(x, y, z)·Sα(x, y, z). Cmap(d, c) is the color map, d is the signal value of the tomographic image, c is the color and opacity component, and c=0 (R), 1 (G), 2 (B), 3 (α). be.

〔数式13〕において、有効領域の外である場合は、Vαに-1を設定しているが、信号値が有効領域の外であって無効であることを示すことができる値であれば、どのような値であってもよい。 In [Equation 13], if the signal value is outside the effective range, -1 is set to Vα. can be any value.

Vα=0であればステップS903へ進み、Vα<0であればステップS904へ進み、Vα>0であればステップS905へ進む。すなわち、ボクセルが透明であればステップS903へ進み、ボクセルが有効領域外であればステップS904へ進み、ボクセルが不透明であればステップS905へ進む。 If Vα=0, the process proceeds to step S903; if Vα<0, the process proceeds to step S904; and if Vα>0, the process proceeds to step S905. That is, if the voxel is transparent, the process proceeds to step S903, if the voxel is outside the valid area, the process proceeds to step S904, and if the voxel is opaque, the process proceeds to step S905.

ステップS903において、起点座標探索手段62は、z軸方向に所定数のボクセルをスキップする。具体的には現在のz座標から所定数m2(例えばm2=4)を減算する。なお、ステップS740、S760で用いられる所定数m1と比較すると、m2>m1である。本実施形態ではm1=1である。減算した結果、z座標が0以上である場合はステップS902へ戻って同様の処理を繰り返す。z座標が0未満になった場合は、ステップS904へ進む。 In step S903, the origin coordinate searching means 62 skips a predetermined number of voxels in the z-axis direction. Specifically, a predetermined number m2 (for example, m2=4) is subtracted from the current z-coordinate. Note that when compared with the predetermined number m1 used in steps S740 and S760, m2>m1. In this embodiment, m1=1. As a result of the subtraction, if the z-coordinate is greater than or equal to 0, the process returns to step S902 and repeats the same processing. If the z-coordinate is less than 0, the process proceeds to step S904.

ステップS904において、起点座標探索手段62は、現在の対象画素(x,y)に対応するz座標に対して、起点座標が見つからなかった旨を示す値(zの本来の下限値が0である場合、例えば-1などの負値)をセットして起点座標の探索処理を終了する。 In step S904, the starting point coordinate searching means 62 obtains a value indicating that the starting point coordinate was not found for the z coordinate corresponding to the current target pixel (x, y) (the original lower limit value of z is 0). If so, a negative value such as -1 is set, and the search processing for the coordinates of the starting point is terminated.

ステップS905に進んだ場合、起点座標探索手段62は、変数iを初期化した後(ステップS905)、m1だけ加算する(ステップS906)。iがm2まで到達した場合、または現在のz座標にiを加算すると視点z座標である上限値Zstに達する場合は、ステップS908に進み、z座標に対して、現在のz座標にm1を加算する前のiを加算した値をセットする。iがm2まで到達しておらず、かつ現在のz座標にiを加算しても視点z座標である上限値Zstまで達しない場合は、ステップS907へ進む。 When proceeding to step S905, the origin coordinate search means 62 initializes the variable i (step S905), and then adds m1 (step S906). If i has reached m2, or if adding i to the current z-coordinate reaches the upper limit value Zst, which is the viewpoint z-coordinate, the process advances to step S908 to add m1 to the current z-coordinate. Set the value obtained by adding i before If i has not reached m2 and if adding i to the current z-coordinate does not reach the upper limit value Zst, which is the viewpoint z-coordinate, the process proceeds to step S907.

ステップS907において、起点座標探索手段62は、3次元座標(x,y,z+i)について、座標変換を実施して対応するボクセルが透明か否かを判定する。判定手順はステップS902と同じである。ただし、有効領域外であるか否かの判定は行わない。Vα>0であればステップS906へ戻ってiにm1を加算して同様の処理を繰り返す。Vα=0であればステップS908へ進む。 In step S907, the starting point coordinate searching means 62 performs coordinate transformation on the three-dimensional coordinates (x, y, z+i) and determines whether or not the corresponding voxels are transparent. The determination procedure is the same as step S902. However, it is not determined whether or not it is outside the effective area. If Vα>0, the process returns to step S906, m1 is added to i, and the same processing is repeated. If Vα=0, the process proceeds to step S908.

ステップS908において、起点座標探索手段62は、現在の対象画素(x,y)に対応して、ステップS907の1つ手前のz座標(z+i-m1)をセットして起点座標の探索を終了する。 In step S908, the starting point coordinate search means 62 sets the z coordinate (z+i−m1) immediately before step S907 corresponding to the current target pixel (x, y), and ends the search for the starting point coordinates. .

結局、起点座標探索手段62は、図14に示した処理に従い、視点座標系において、レンダリング画像の各画素(x,y)におけるz座標を探索開始座標Zstより下限値0まで所定数m2ずつ変化させながら、視点座標系の3次元座標(x,y,z)ごとに所定の座標変換を行って対応するボクセル画像のボクセルのボクセル値を順次取得し、最初に見つかった不透明なボクセルの視点座標系におけるz座標を、起点座標として探索している。より具体的には、z座標を所定の上限値より所定の下限値の範囲で前記所定数m1より大きい所定数m2(m2>m1)で減算させて、各3次元座標に対して、座標変換を行ってボクセルが不透明か否かを判定し(S902)、所定数m2の減算後のz座標におけるボクセルの信号値が不透明である場合(S905)は、減算後のz座標より所定数m1を増加させて(S906)各3次元座標(x,y,z)に対して、座標変換を行ってボクセルが不透明か否かを判定している(S907)。 14, the starting point coordinate searching means 62 changes the z coordinate of each pixel (x, y) of the rendering image from the search starting coordinate Zst to the lower limit value of 0 by a predetermined number of m2 in the viewpoint coordinate system. while performing a predetermined coordinate transformation for each of the three-dimensional coordinates (x, y, z) of the viewpoint coordinate system, sequentially obtaining the voxel values of the corresponding voxel image, and obtaining the viewpoint coordinates of the opaque voxel found first. The z coordinate in the system is searched as the origin coordinate. More specifically, the z-coordinate is subtracted by a predetermined number m2 (m2>m1) larger than the predetermined number m1 within a range from a predetermined upper limit value to a predetermined lower limit value, and coordinate transformation is performed for each three-dimensional coordinate. is performed to determine whether or not the voxel is opaque (S902), and if the signal value of the voxel at the z-coordinate after the subtraction of the predetermined number m2 is opaque (S905), the predetermined number m1 is subtracted from the z-coordinate after the subtraction. After increasing (S906), each three-dimensional coordinate (x, y, z) is subjected to coordinate transformation to determine whether or not the voxel is opaque (S907).

図14に示した処理を実行して、起点座標zが探索されたら、図13に示すステップS642の処理を終えたことになる。得られた起点座標zがz<0である場合は、不透明なボクセルが存在しなかったことを意味するので、図13に示したステップS640の処理を終了する。得られた起点座標zがz≧0である場合は、3次元座標(x,y,z)を座標変換してボクセルの不透明度を取得する(ステップS643)。 When the origin coordinate z is found by executing the process shown in FIG. 14, the process of step S642 shown in FIG. 13 is completed. If the obtained starting point coordinate z is z<0, it means that there is no opaque voxel, and the process of step S640 shown in FIG. 13 is terminated. If the obtained origin coordinate z satisfies z≧0, the three-dimensional coordinates (x, y, z) are coordinate-transformed to acquire the voxel opacity (step S643).

具体的には、ステップS902、S907と同様に〔数式9〕~〔数式11〕に従った処理を実行して、与えられた視点座標系の3次元座標(x,y,z)(整数値)に対応するDICOM形式の複数の断層画像Do(x,y,z)の各画素に1対1で対応するボクセル画像のボクセルに対応する実数の座標(xr,yr,zr)を算出する。 Specifically, as in steps S902 and S907, the processing according to [Formula 9] to [Formula 11] is executed to obtain the three-dimensional coordinates (x, y, z) (integer values) of the given viewpoint coordinate system. ), real number coordinates (xr, yr, zr) corresponding to voxels of a voxel image corresponding to each pixel of a plurality of DICOM-format tomographic images Do (x, y, z) corresponding to ) are calculated.

次に、算出されたボクセル座標系の座標(xr,yr,zr)を整数値化する。ステップS902、S907の処理とは異なり、まず、小数点以下を切り捨て整数化した座標を(xia,yia,zia)とし、切り捨てた小数点以下の端数を(wx,wy,wz)とする。すなわち、xr=xia+wx,yr=yia+wy,zr=zia+wzとなる。 Next, the calculated coordinates (xr, yr, zr) of the voxel coordinate system are converted to integer values. Unlike the processing in steps S902 and S907, first, the coordinates obtained by truncating the decimal point are set to (xia, yia, zia), and the truncated fraction is set to (wx, wy, wz). That is, xr=xia+wx, yr=yia+wy, and zr=zia+wz.

次に、有効領域およびマスクデータMaskを用いて、以下の〔数式14〕に従った処理を実行して、ボクセル座標系の座標(xia,yia,zia)に対応するボクセルの不透明度Vαを求める。以下の〔数式14〕においては、3通りに分けて処理が行われる。〔数式14〕において、Vo(x,y,z)=Cmap(Do(x,y,z),3)・Mask(x,y,z)・Sα(x,y,z)と定義する。 Next, using the effective area and the mask data Mask, the process according to the following [Equation 14] is executed to obtain the voxel opacity Vα corresponding to the coordinates (xia, yia, zia) in the voxel coordinate system. . In the following [Formula 14], the processing is divided into three types. In [Equation 14], Vo(x, y, z)=Cmap(Do(x, y, z), 3)·Mask(x, y, z)·Sα(x, y, z).

〔数式14〕
1)、xia<Xisまたはxia>Xieまたはyia<Yisまたはyia>Yieまたはzia<Zisまたはzia>Zie(有効領域外)の場合:Vα=-1
2)上記1)を満たさず、xia+1>Xieまたはyia+1>Yieまたはzia+1>Zieの場合、補間処理を実行せずにVα=Vo(xia,yia,zia)
3)上記1)2)を満たさない場合、以下の補間処理を実行
Vα=(1-wz)(1-wy)(1-wx)・Vo(xia,yia,zia)
+(1-wz)(1-wy)・wx・Vo(xia+1,yia,zia)
+(1-wz)・wy・(1-wx)・Vo(xia,yia+1,zia)
+(1-wz)・wy・wx・Vo(xia+1,yia+1,zia)
+wz・(1-wy)(1-wx)・Vo(xia,yia,zia+1)
+wz・(1-wy)・wx・Vo(xia+1,yia,zia+1)
+wz・wy・(1-wx)・Vo(xia,yia+1,zia+1)
+wz・wy・wx・Vo(xia+1,yia+1,zia+1)
[Formula 14]
1) If xia<Xis or xia>Xie or yia<Yis or yia>Yie or zia<Zis or zia>Zie (outside the effective area): Vα=−1
2) If the above 1) is not satisfied and xia+1>Xie or yia+1>Yie or zia+1>Zie, Vα=Vo(xia, yia, zia) without performing interpolation processing
3) If the above 1) and 2) are not satisfied, the following interpolation processing is executed Vα=(1−wz)(1−wy)(1−wx)·Vo(xia, yia, zia)
+(1−wz)(1−wy)・wx・Vo(xia+1, yia, zia)
+(1−wz)・wy・(1−wx)・Vo(xia, yia+1, zia)
+(1-wz).wy.wx.Vo(xia+1, yia+1, zia)
+wz・(1−wy)(1−wx)・Vo(xia, yia, zia+1)
+wz.(1-wy).wx.Vo(xia+1, yia, zia+1)
+wz.wy.(1-wx).Vo(xia, yia+1, zia+1)
+wz.wy.wx.Vo(xia+1, yia+1, zia+1)

〔数式14〕の3)においては、補間処理を行う際に、実数値のボクセル座標(xr,yr,zr)の近傍に位置する整数値のボクセル座標(xia,yia,zia)等を8個取得し、これら8個の座標値に対応する断層画像、マスクデータ、不透明度補正テーブルの各値を取得し、カラーマップを参照しながら断層画像より取得した各信号値を不透明度に変換した値に所定の重みwx、wy、wz、(1-wx)、(1-wy)、(1-wz)を掛けながら加算した値を、3次元座標に対応するボクセルの不透明度Vαとして与えている。〔数式14〕において、有効領域の外である場合、すなわち有効な領域の外である場合は、Vαに-1を設定しているが、無効であることを示すことができる値であれば、どのような値であってもよい。さらに、ステップS643においては、不透明度Vαを8ビットで取り得る最大値である255で除算して、最大値が1以下となるAlpha(=Vα/255)を算出する。 In 3) of [Equation 14], eight integer voxel coordinates (xia, yia, zia), etc. located in the vicinity of the real voxel coordinates (xr, yr, zr) are used for interpolation processing. Each value of the tomographic image, mask data, and opacity correction table corresponding to these eight coordinate values is obtained, and each signal value obtained from the tomographic image is converted into opacity while referring to the color map. is multiplied by predetermined weights wx, wy, wz, (1-wx), (1-wy), and (1-wz), and the values added are given as the voxel opacity Vα corresponding to the three-dimensional coordinates. . In [Equation 14], when it is outside the effective area, that is, when it is outside the effective area, -1 is set to Vα. can be any value. Further, in step S643, the opacity Vα is divided by 255, which is the maximum value that can be taken by 8 bits, to calculate Alpha (=Vα/255) with a maximum value of 1 or less.

ステップS643における処理の結果、Alpha=0かつz>0であれば、有効領域内で透明な画素を意味するので、ステップS647へ進む。Alpha>0であれば、不透明な画素であることを意味するので、ステップS644へ進む。Alpha<0、またはAlpha=0かつz=0であれば、有効領域外であるか、探索範囲の下限に達したことを意味するので、図13に示したステップS640の処理を終了する。 If Alpha=0 and z>0 as a result of the processing in step S643, it means a transparent pixel within the effective area, so the process proceeds to step S647. If Alpha>0, it means that the pixel is opaque, so the process proceeds to step S644. If Alpha<0 or Alpha=0 and z=0, it means that it is outside the effective area or the lower limit of the search range has been reached, so the process of step S640 shown in FIG. 13 is terminated.

ステップS647において、レイキャスティング手段61は、視点の座標を所定数m1だけ減じる。この所定数m1は整数である。上述のように、本実施形態では、m1=1であり、m1<m2である。そして、ステップS642へ戻って同様の処理を繰り返す。 In step S647, the ray casting means 61 subtracts the coordinates of the viewpoint by a predetermined number m1. This predetermined number m1 is an integer. As described above, in this embodiment, m1=1 and m1<m2. Then, the process returns to step S642 and repeats the same processing.

上述のように、Alpha>0であれば、不透明な画素であることを意味するので、レイキャスティング手段61は、RGB値V(c)を取得する(ステップS644)。 As described above, if Alpha>0, it means that the pixel is opaque, so the ray casting means 61 acquires the RGB value V(c) (step S644).

具体的には、ステップS643と同様、〔数式9〕~〔数式11〕に従った処理を実行して、与えられた視点座標系の3次元座標(x,y,z)(整数値)に対応するDICOM形式の複数の断層画像Do(x,y,z)で構成されるボクセル画像のボクセルに対応する実数の座標(xr,yr,zr)を算出し、小数点以下を切り捨て整数化した座標を(xia,yia,zia)とし、切り捨てた小数点以下の端数を(wx,wy,wz)とする。すなわち、xr=xia+wx,yr=yia+wy,zr=zia+wzとなる。 Specifically, as in step S643, the processing according to [Formula 9] to [Formula 11] is executed to obtain the three-dimensional coordinates (x, y, z) (integer values) of the given viewpoint coordinate system. Calculate the real number coordinates (xr, yr, zr) corresponding to the voxel of the voxel image composed of the corresponding multiple tomographic images Do (x, y, z) in DICOM format, and round the decimal point to the integer. is (xia, yia, zia), and the truncated fraction below the decimal point is (wx, wy, wz). That is, xr=xia+wx, yr=yia+wy, and zr=zia+wz.

次に、有効領域を用いて、以下の〔数式15〕に従った処理を実行して、ボクセル座標系の座標(xia,yia,zia)に対応するボクセルRGB値V(c)を求める。以下の〔数式15〕においては、3通りに分けて処理が行われる。〔数式15〕において、Vc(x,y,z,c)=Cmap(Do(x,y,z),c)(c=0(R),1(G),2(B))と定義する。尚、RGB値V(c)を算出する際。〔数式14〕と異なり、マスクデータMaskおよび不透明度補正テーブルSαは参照しない。 Next, using the effective area, the processing according to the following [Equation 15] is executed to obtain the voxel RGB value V(c) corresponding to the coordinates (xia, yia, zia) in the voxel coordinate system. In the following [Formula 15], the processing is divided into three types. In [Formula 15], defined as Vc (x, y, z, c) = Cmap (Do (x, y, z), c) (c = 0 (R), 1 (G), 2 (B)) do. Note that when calculating the RGB value V(c). Unlike [Equation 14], the mask data Mask and the opacity correction table Sα are not referred to.

〔数式15〕
1)xia<Xisまたはxia>Xieまたはyia<Yisまたはyia>Yieまたはzia<Zisまたはzia>Zie(有効領域外)の場合:V(c)=0(c=0,1,2)
2)上記1)を満たさず、xia+1>Xieまたはyia+1>Yieまたはzia+1>Zieの場合、補間処理を実行せずにV(c)=Vc(xia,yia,zia,c)
3)上記1)2)を満たさない場合、以下の補間処理を実行
V(c)=(1-wz)(1-wy)(1-wx)・Vc(xia,yia,zia,c)+(1-wz)(1-wy)・wx・Vc(xia+1,yia,zia,c)
+(1-wz)・wy・(1-wx)・Vc(xia,yia+1,zia,c)
+(1-wz)・wy・wx・Vc(xia+1,yia+1,zia,c)
+wz・(1-wy)(1-wx)・Vc(xia,yia,zia+1,c)
+wz・(1-wy)・wx・Vc(xia+1,yia,zia+1,c)
+wz・wy・(1-wx)・Vc(xia,yia+1,zia+1,c)
+wz・wy・wx・Vc(xia+1,yia+1,zia+1,c)
[Formula 15]
1) If xia<Xis or xia>Xie or yia<Yis or yia>Yie or zia<Zis or zia>Zie (outside effective area): V(c)=0 (c=0, 1, 2)
2) If the above 1) is not satisfied and xia+1>Xie or yia+1>Yie or zia+1>Zie, V(c)=Vc(xia, yia, zia, c) without performing interpolation processing
3) If the above 1) and 2) are not satisfied, execute the following interpolation processing V(c)=(1−wz)(1−wy)(1−wx)·Vc(xia, yia, zia, c)+ (1-wz) (1-wy) wx Vc (xia+1, yia, zia, c)
+ (1-wz) wy (1-wx) Vc (xia, yia+1, zia, c)
+(1-wz) wy wx Vc (xia+1, yia+1, zia, c)
+wz (1-wy) (1-wx) Vc (xia, yia, zia+1, c)
+ wz (1-wy) wx Vc (xia+1, yia, zia+1, c)
+wz.wy.(1-wx).Vc(xia, yia+1, zia+1, c)
+wz wy wx Vc (xia+1, yia+1, zia+1, c)

〔数式15〕の3)においては、補間処理を行う際に、実数値のボクセル座標(xr,yr,zr)の近傍に位置する整数値のボクセル座標(xia,yia,zia)等を8個取得し、これら8個の座標値に対応する断層画像の各信号値を取得し、カラーマップを参照しながら断層画像より取得した各信号値をRGB値に変換した値に所定の重みwx、wy、wz、(1-wx)、(1-wy)、(1-wz)を掛けながら加算した値を、3次元座標に対応するボクセルのRGB値V(c)として与えている。〔数式15〕の1)において、有効領域の外である場合は、V(c)に0を設定している。 In 3) of [Equation 15], eight integer voxel coordinates (xia, yia, zia), etc. located in the vicinity of real-valued voxel coordinates (xr, yr, zr) are used for interpolation processing. Each signal value of the tomographic image corresponding to these eight coordinate values is obtained, and each signal value obtained from the tomographic image is converted into an RGB value while referring to the color map, and given weights wx and wy , wz, (1-wx), (1-wy), and (1-wz) are multiplied and added as the RGB value V(c) of the voxel corresponding to the three-dimensional coordinates. In 1) of [Equation 15], V(c) is set to 0 if it is outside the effective region.

本実施形態では、ステップS644においてRGB値V(c)を取得する際、さらに陰影付加処理を行っている。ステップS644においては、陰影付加手段63が、陰影付加処理を行う。これは、所定の照明環境に対応した陰影をボクセル画像に付加する処理であり、具体的にはXs≦x≦XeかつYs≦y≦YeかつZs≦z≦Zeの範囲のボクセルの不透明度αを参照しながら、Xs<x<XeかつYs<y<YeかつZs<z<Zeの範囲のボクセルの色成分を更新する処理である。このために、ある平行光源と環境光成分を設定し、付加すべき陰影の計算を行う。具体的には、視線の向きを示す単位ベクトルとして視線ベクトル(Ex,Ey,Ez)、平行光源の向きを示す単位ベクトルとして光源ベクトル(Lx,Ly,Lz)、環境光成分Ab、拡散反射係数Df(0以上の実数)、鏡面反射係数Sp(0以上の実数)および鏡面光沢度Sh(1以上の整数)を設定する。 In the present embodiment, when the RGB values V(c) are acquired in step S644, shadow addition processing is also performed. In step S644, the shadow addition means 63 performs shadow addition processing. This is a process of adding a shadow corresponding to a predetermined lighting environment to a voxel image. Specifically, the voxel opacity α , the color components of voxels in the range of Xs<x<Xe, Ys<y<Ye and Zs<z<Ze are updated. For this purpose, a certain parallel light source and ambient light components are set, and shadows to be added are calculated. Specifically, the line-of-sight vector (Ex, Ey, Ez) as a unit vector indicating the direction of the line of sight, the light source vector (Lx, Ly, Lz) as a unit vector indicating the direction of the parallel light source, the ambient light component Ab, the diffuse reflection coefficient Df (real number of 0 or more), specular reflection coefficient Sp (real number of 0 or more), and specular glossiness Sh (integer of 1 or more) are set.

視線ベクトル(Ex,Ey,Ez)は通常z軸負方向で(Ex,Ey,Ez)=(0,0,-1)の固定値で、光源ベクトル(Lx,Ly,Lz)、拡散反射係数Df、鏡面反射係数Sp、鏡面光沢度Sh、環境光成分Abの数値は、表現したい像の状況に応じて適宜設定することができるが、例えば、(Lx,Ly,Lz)=(0.57735,0.57735,-0.57735)、Df=1.2、Sp=1.7、Sh=8、Ab=0.2と設定する。Lx,Ly,Lzは絶対値が1未満の実数値(負値を含む)、Dfは0以上の実数値、Spは0以上の実数値、Shは1以上の整数値、Abは0以上1以下の実数値である。 The line-of-sight vector (Ex, Ey, Ez) is usually a fixed value of (Ex, Ey, Ez) = (0, 0, -1) in the negative z-axis direction, the light source vector (Lx, Ly, Lz), the diffuse reflection coefficient The numerical values of Df, specular reflection coefficient Sp, specular glossiness Sh, and ambient light component Ab can be appropriately set according to the situation of the image to be expressed. , 0.57735, −0.57735), Df=1.2, Sp=1.7, Sh=8, Ab=0.2. Lx, Ly, Lz are real numbers with an absolute value of less than 1 (including negative values), Df is a real number of 0 or more, Sp is a real number of 0 or more, Sh is an integer of 1 or more, Ab is 0 or more of 1 The following are real numbers.

まず、変換パラメータとして生成された3×3回転逆行列を用いて、以下の〔数式16〕に従った処理を実行して、光源ベクトル(Lx,Ly,Lz)、視線ベクトル(Ex,Ey,Ez)の回転処理を行い、ボクセル座標系におけるベクトルに変換する。 First, using the 3×3 rotation inverse matrix generated as the transformation parameter, the processing according to the following [Equation 16] is executed to obtain the light source vector (Lx, Ly, Lz), the sight line vector Ez) is rotated and converted into a vector in the voxel coordinate system.

〔数式16〕
Lx←R11・Lx+R12・Ly+R13・Lz
Ly←R21・Lx+R22・Ly+R23・Lz
Lz←R31・Lx+R32・Ly+R33・Lz
Ex←R11・Ex+R12・Ey+R13・Ez
Ey←R21・Ex+R22・Ey+R23・Ez
Ez←R31・Ex+R32・Ey+R33・Ez
[Formula 16]
Lx←R11・Lx+R12・Ly+R13・Lz
Ly←R21・Lx+R22・Ly+R23・Lz
Lz←R31・Lx+R32・Ly+R33・Lz
Ex←R11・Ex+R12・Ey+R13・Ez
Ey←R21・Ex+R22・Ey+R23・Ez
Ez ← R31 · Ex + R32 · Ey + R33 · Ez

回転処理後の座標としてボクセル座標系における光源ベクトル(Lx,Ly,Lz)、視線ベクトル(Ex,Ey,Ez)が得られる。次に、陰影付加の対象とするボクセル(xia,yia,zia)に対して、ボクセル画像のxy軸方向の解像度をRxy(画素間隔の逆数でmmあたりの画素数で、x軸方向とy軸方向は同一)、ボクセル画像のz軸方向の解像度をRz(断層画像のスライス間隔の逆数で、mmあたりの断層画像のスライス数)として、Rz/Rxy<1の場合、以下の〔数式17〕に従った処理を実行して、実数値z座標zr1、zr2を算出する。これは、z軸方向の解像度がxy軸方向の解像度に比べて低い場合、算出される勾配ベクトルおよび陰影値にz軸方向に沿って段差が発生するため、勾配ベクトルに対してz軸方向に平滑化を施すためである。 A light source vector (Lx, Ly, Lz) and a line-of-sight vector (Ex, Ey, Ez) in a voxel coordinate system are obtained as coordinates after rotation processing. Next, for the voxel (xia, yia, zia) to be shaded, the resolution in the xy-axis direction of the voxel image is set to Rxy (the reciprocal of the pixel interval, the number of pixels per mm, the x-axis and y-axis The direction is the same), the resolution in the z-axis direction of the voxel image is Rz (reciprocal of the slice interval of the tomographic image, the number of slices of the tomographic image per mm), and Rz/Rxy<1, the following [Equation 17] to calculate real-valued z-coordinates zr1 and zr2. This is because when the resolution in the z-axis direction is lower than the resolution in the xy-axis direction, a step occurs in the calculated gradient vector and shadow value along the z-axis direction. This is for smoothing.

〔数式17〕
zr1=(zia+1)・Rz/Rxy
zr2=(zia-1)・Rz/Rxy
[Formula 17]
zr1=(zia+1).Rz/Rxy
zr2=(zia−1)·Rz/Rxy

次に、算出された実数値z座標zr1、zr2を整数値化する。まず、小数点以下を切り捨て整数化した実数値z座標をzi1、zi2とし、切り捨てた小数点以下の端数成分をwz1、wz2とする。すなわち、zr1=zi1+wz1,zr2=zi2+wz2となる。 Next, the calculated real-value z-coordinates zr1 and zr2 are converted to integer values. First, let zi1 and zi2 be real-valued z-coordinates obtained by truncating the decimal point and converting them to integers, and wz1 and wz2 be the truncated fractional components. That is, zr1=zi1+wz1 and zr2=zi2+wz2.

続いて、ボクセル(x,y,z)における不透明度をVα(x,y,z)=Cmap(Do(x,y,z),3)として、ボクセル(xia,yia,zia)に対して、xy軸方向に各々正負2近傍、z軸正負方向に各々2近傍からなる全8近傍ボクセルの不透明度であるVα(xia+1,yia,zia)、Vα(xia-1,yia,zia)、Vα(xia,yia+1,zia)、Vα(xia,yia-1,zia)、Vα(xia,yia,zi1)、Vα(xia,yia,zi1+1)、Vα(xia,yia,zi2)、Vα(xia,yia,zi2+1)を取得する。 Subsequently, the opacity at voxel (x, y, z) is Vα (x, y, z) = Cmap (Do (x, y, z), 3), and for voxel (xia, yia, zia) , the opacity of all 8 neighboring voxels Vα (xia+1, yia, zia), Vα (xia−1, yia, zia), Vα (xia, yia+1, zia), Vα (xia, yia-1, zia), Vα (xia, yia, zi1), Vα (xia, yia, zi1+1), Vα (xia, yia, zi2), Vα (xia, yia, zi2+1).

Rz/Rxy≧1の場合、〔数式17〕は実行されないため、Vα(xia,yia,zi1)、Vα(xia,yia,zi1+1)、Vα(xia,yia,zi2)、Vα(xia,yia,zi2+1)の代わりに、z軸方向に正負2近傍のボクセルの不透明度Vα(xia,yia,zia+1)とVα(xia,yia,zia-1)を取得する。 When Rz/Rxy≧1, [Formula 17] is not executed, so Vα(xia, yia, zi1), Vα(xia, yia, zi1+1), Vα(xia, yia, zi2), Vα(xia, yia, zi2+1), obtain the opacities Vα(xia, yia, zia+1) and Vα(xia, yia, zia−1) of voxels that are positive and negative 2 in the z-axis direction.

ただし、
xia+1>XieのときVα(xia+1,yia,zia)=0、
xia-1<XisのときVα(xia-1,yia,zia)=0、
yia+1>YieのときVα(xia,yia+1,zia)=0、
yia-1<YisのときVα(xia,yia-1,zia)=0、
Rz/Rxy<1の場合、
zi1>ZieのときVα(xia,yia,zi1)=0、
zi1+1<ZieのときVα(xia,yia,zi1+1)=0、
zi2<ZisのときVα(xia,yia,zi2)=0、
zi2+1>ZisのときVα(xia,yia,zi2+1)=0、
Rz/Rxy≧1の場合、
zia+1>ZieのときVα(xia,yia+1,zia+1)=0、
zia-1<ZisのときVα(xia,yia-1,zia-1)=0、
とする。
however,
Vα(xia+1, yia, zia)=0 when xia+1>Xie,
Vα(xia-1, yia, zia)=0 when xia-1<Xis,
Vα(xia, yia+1, zia)=0 when yia+1>Yie,
Vα(xia, yia-1, zia)=0 when yia-1<Yis,
If Rz/Rxy<1,
Vα(xia, yia, zi1)=0 when zi1>Zie,
Vα(xia, yia, zi1+1)=0 when zi1+1<Zie,
Vα(xia, yia, zi2)=0 when zi2<Zis,
Vα(xia, yia, zi2+1)=0 when zi2+1>Zis,
If Rz/Rxy≧1,
Vα(xia, yia+1, zia+1)=0 when zia+1>Zie,
Vα(xia, yia-1, zia-1)=0 when zia-1<Zis,
and

続いて、Rz/Rxy<1の場合、Vα(xia,yia,zi1)、Vα(xia,yia,zi1+1)、Vα(xia,yia,zi2)、Vα(xia,yia,zi2+1)の4近傍ボクセルに対して、端数成分wz1、wz2を用いて、以下の〔数式18〕に従った処理を実行して、z方向に補間し、z軸方向補間成分V´a、V´bを算出する。 Subsequently, when Rz/Rxy<1, four neighboring voxels of Vα(xia, yia, zi1), Vα(xia, yia, zi1+1), Vα(xia, yia, zi2), Vα(xia, yia, zi2+1) is interpolated in the z-direction using the fractional components wz1 and wz2 to calculate the z-axis direction interpolation components V'a and V'b.

〔数式18〕
V´a=(1-wz1)・Vα(xia,yia,zi1)+wz1・Vα(xia,yia,zi1+1)
V´b=(1-wz2)・Vα(xia,yia,zi2)+wz2・Vα(xia,yia,zi2+1)
[Formula 18]
V′a=(1−wz1)·Vα(xia, yia, zi1)+wz1·Vα(xia, yia, zi1+1)
V′b=(1−wz2)·Vα(xia, yia, zi2)+wz2·Vα(xia, yia, zi2+1)

そして、ボクセル画像のボクセル(xia,yia,zia)における勾配ベクトル(Gx,Gy,Gz)を以下の〔数式19〕に従った処理を実行することにより算出する。 Then, the gradient vector (Gx, Gy, Gz) at the voxel (xia, yia, zia) of the voxel image is calculated by executing the process according to [Equation 19] below.

〔数式19〕
Gx=Vα(xia+1,yia,zia)-Vα(xia-1,yia,zia)
Gy=Vα(xia,yia+1,zia)-Vα(xia,yia-1,zia)
Rz/Rxy<1の場合、Gz=V´a-V´b
Rz/Rxy≧1の場合、
Gz=Vα(xia,yia,zia+1)-Vα(xia,yia,zia-1)
G=(Gx2+Gy2+Gz21/2
[Formula 19]
Gx = Vα (xia+1, yia, zia) - Vα (xia-1, yia, zia)
Gy = V α (xia, yia + 1, zia) - V α (xia, yia - 1, zia)
If Rz/Rxy<1, then Gz=V'a-V'b
If Rz/Rxy≧1,
Gz=Vα(xia, yia, zia+1)−Vα(xia, yia, zia−1)
G=(Gx 2 +Gy 2 +Gz 2 ) 1/2

〔数式19〕において、勾配ベクトルのz軸方向成分Gzは、当該ボクセルに対して、z軸方向に+Rz/Rxyずれた座標の近傍の2つのボクセルの不透明度に所定の重みをかけて加算した不透明度と、z軸方向に-Rz/Rxyずれた座標の近傍の2つのボクセルの不透明度に所定の重みをかけて加算した不透明度との差分としている。〔数式19〕において、Gは勾配ベクトル(Gx,Gy,Gz)の大きさである。〔数式19〕に示すように、陰影付加手段63は、ボクセル画像の当該ボクセルのx軸方向、y軸方向、z軸方向の各々2近傍(Rz/Rxy<1の場合、z軸方向は4近傍)のボクセルの不透明度の差分値を勾配ベクトルのx軸方向成分、y軸方向成分、z軸方向成分として算出し、あらかじめ定義されたz軸方向変倍率に基づいてx軸方向・y軸方向成分またはz軸方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出する。さらに、G≧1の場合、勾配ベクトル(Gx,Gy,Gz)をGで除算し、勾配ベクトル(Gx,Gy,Gz)を単位ベクトルに置き換える。G<1の場合、ボクセル(xia,yia,zia)において不透明度の勾配が無いため陰影値を算出できず、(Gx,Gy,Gz)=(0,0,0)とし陰影係数Sとして環境光成分Abを与える。 In [Equation 19], the z-axis direction component Gz of the gradient vector is obtained by multiplying the opacity of two voxels near the coordinates shifted +Rz/Rxy in the z-axis direction with respect to the voxel and adding a predetermined weight. It is the difference between the opacity and the opacity obtained by multiplying the opacity of two voxels in the vicinity of the coordinates shifted by -Rz/Rxy in the z-axis direction with a predetermined weight and adding them. In [Formula 19], G is the magnitude of the gradient vector (Gx, Gy, Gz). As shown in [Equation 19], the shading means 63 shades the voxel of the voxel image in the x-axis direction, the y-axis direction, and the z-axis direction by 2 each (when Rz/Rxy<1, the z-axis direction is 4 (neighborhood) voxels are calculated as x-axis, y-axis, and z-axis components of the gradient vector. A unit vector obtained by correcting the directional component or the z-axis component is calculated as the gradient vector in the voxel. Further, if G≧1, divide the gradient vector (Gx, Gy, Gz) by G and replace the gradient vector (Gx, Gy, Gz) with a unit vector. When G<1, the shadow value cannot be calculated because there is no opacity gradient at the voxel (xia, yia, zia). Gives the light component Ab.

勾配ベクトルが算出されたら、公知のPhongシェーディングモデルにより陰影係数Sを算出する。具体的には、まず、鏡面反射係数Sp>0の場合、単位ベクトルである勾配ベクトル(Gx,Gy,Gz)、光源ベクトル(Lx,Ly,Lz)を用いて、以下の〔数式20〕に従った処理を実行することにより、正反射ベクトル(Fx,Fy,Fz)を算出する。鏡面反射係数Sp=0の場合、(Fx,Fy,Fz)=(0,0,0)とする。 Once the gradient vectors have been calculated, the shading coefficient S is calculated using the well-known Phong shading model. Specifically, first, when the specular reflection coefficient Sp>0, using the gradient vector (Gx, Gy, Gz) and the light source vector (Lx, Ly, Lz), which are unit vectors, the following [Equation 20] is A specular reflection vector (Fx, Fy, Fz) is calculated by executing the processing according to the above. If the specular reflection coefficient Sp=0, then (Fx, Fy, Fz)=(0, 0, 0).

〔数式20〕
Fx=2・Gx・(Gx・Lx+Gy・Ly+Gz・Lz)-Lx
Fy=2・Gy・(Gx・Lx+Gy・Ly+Gz・Lz)-Ly
Fz=2・Gz・(Gx・Lx+Gy・Ly+Gz・Lz)-Lz
[Formula 20]
Fx=2.Gx.(Gx.Lx+Gy.Ly+Gz.Lz)-Lx
Fy = 2 · Gy · (Gx · Lx + Gy · Ly + Gz · Lz) - Ly
Fz=2.Gz.(Gx.Lx+Gy.Ly+Gz.Lz)-Lz

〔数式20〕においては、正反射ベクトルは、勾配ベクトルとのなす角が光源ベクトルと勾配ベクトルとのなす角と同一で、かつ光源ベクトルとのなす角が光源ベクトルと勾配ベクトルとのなす角の2倍になるように定義している。次に、勾配ベクトル(Gx,Gy,Gz)、光源ベクトル(Lx,Ly,Lz)、正反射ベクトル(Fx,Fy,Fz)、視線ベクトル(Ex,Ey,Ez)を全て単位ベクトルとして用い、反射係数Df(0以上の実数)、鏡面反射係数Sp(0以上の実数)、鏡面光沢度Sh(1以上の整数)、環境光成分Abの各係数を用いて、以下の〔数式21〕に従った処理を実行することにより、ボクセル(xia,yia,zia)における陰影係数S(xia,yia,zia)を算出する。 In [Equation 20], the angle formed by the specular reflection vector and the gradient vector is the same as the angle formed by the light source vector and the gradient vector, and the angle formed by the light source vector is equal to the angle formed by the light source vector and the gradient vector. Defined to double. Next, gradient vectors (Gx, Gy, Gz), light source vectors (Lx, Ly, Lz), specular reflection vectors (Fx, Fy, Fz), line-of-sight vectors (Ex, Ey, Ez) are all used as unit vectors, Using the reflection coefficient Df (real number of 0 or more), the specular reflection coefficient Sp (real number of 0 or more), the specular gloss Sh (integer of 1 or more), and the ambient light component Ab, the following [Formula 21] A shadow coefficient S(xia, yia, zia) at the voxel (xia, yia, zia) is calculated by executing the processing according to the above.

〔数式21〕
S(xia,yia,zia)=Df・(Gx・Lx+Gy・Ly+Gz・Lz)+Sp・(Fx・Ex+Fy・Ey+Fz・Ez)Sh+Ab
[Formula 21]
S (xia, yia, zia) = Df · (Gx · Lx + Gy · Ly + Gz · Lz) + Sp · (Fx · Ex + Fy · Ey + Fz · Ez) Sh + Ab

〔数式21〕における“Df・(Gx・Lx+Gy・Ly+Gz・Lz)”は拡散反射光であり、 “Sp・(Fx・Ex+Fy・Ey+Fz・Ez)Sh” は鏡面反射光である。〔数式21〕においては、算出された勾配ベクトル(Gx,Gy,Gz)と光源ベクトル(Lx,Ly,Lz)との内積値を基にボクセルの拡散反射光を算出し、鏡面反射係数Spに正の値が設定されている場合、更に勾配ベクトル(Gx,Gy,Gz)に対する所定の光源ベクトル(Lx,Ly,Lz)の正反射ベクトル(Fx,Fy,Fz)を算出し、正反射ベクトル(Fx,Fy,Fz)と所定の視線ベクトル(Ex,Ey,Ez)との内積値を基にボクセルの鏡面反射光を算出し、算出された拡散反射光と鏡面反射光を基に算出した陰影値をレイキャスティング手段により取得された当該ボクセルの色成分に乗算し、当該ボクセルの色成分を下記のように更新する。また、鏡面反射光として、正反射ベクトル(Fx,Fy,Fz)と視線ベクトル(Ex,Ey,Ez)との内積値に対して、鏡面光沢度Shで累乗した値に鏡面反射係数Spを乗算した値としている。陰影係数S(xia,yia,zia)が算出されたら、陰影係数S(xia,yia,zia)を用いて、〔数式15〕により算出されたボクセル(xia,yia,zia)におけるRGB値V(c)=0(c=0,1,2)を、以下の〔数式22〕に従った処理を実行することにより、補正する。すなわち、陰影を付加する。 "Df.(Gx.Lx+Gy.Ly+Gz.Lz)" in [Equation 21] is diffusely reflected light, and "Sp.(Fx.Ex+Fy.Ey+Fz.Ez) Sh " is specularly reflected light. In [Equation 21], the diffuse reflection light of the voxel is calculated based on the inner product value of the calculated gradient vector (Gx, Gy, Gz) and the light source vector (Lx, Ly, Lz), and the specular reflection coefficient Sp is When a positive value is set, the specular reflection vector (Fx, Fy, Fz) of the predetermined light source vector (Lx, Ly, Lz) with respect to the gradient vector (Gx, Gy, Gz) is calculated, and the specular reflection vector Based on the inner product value of (Fx, Fy, Fz) and a predetermined line-of-sight vector (Ex, Ey, Ez), the specular reflection light of the voxel was calculated, and the calculated diffuse reflection light and specular reflection light were calculated. The color component of the voxel obtained by the ray casting means is multiplied by the shadow value to update the color component of the voxel as follows. As the specular reflection light, the inner product value of the regular reflection vector (Fx, Fy, Fz) and the line-of-sight vector (Ex, Ey, Ez) is multiplied by the specular reflection coefficient Sp to the power of the specular glossiness Sh. value. After the shadow coefficient S (xia, yia, zia) is calculated, the RGB value V ( c)=0 (c=0, 1, 2) is corrected by executing the process according to [Equation 22] below. That is, add shadows.

〔数式22〕
V(c)←S(xia,yia,zia)・V(c)
[Formula 22]
V(c)←S(xia, yia, zia) V(c)

〔数式22〕において、c=0,1,2であり、それぞれR,G,Bの色成分に対応する。すなわち、〔数式22〕においては、色成分のみを補正する。結局、陰影付加手段63は、〔数式16〕~〔数式22〕に従った処理を実行することにより、各ボクセルを含むxyz軸方向の近傍に位置する画素の不透明度αを参照して、各ボクセルの色成分の値を補正し、陰影付加を行っている。本実施形態では、好ましい例として、不透明度αを参照する画素として隣接する画素を用いたが、隣接する画素に限定されず、近傍の他の画素を参照するようにしてもよい。 In [Equation 22], c=0, 1, 2, corresponding to the R, G, and B color components, respectively. That is, in [Formula 22], only the color component is corrected. As a result, the shading means 63 executes the processing according to [Formula 16] to [Formula 22], and refers to the opacity α of the pixels located near the voxels in the xyz-axis direction. Values of color components of voxels are corrected and shading is added. In this embodiment, as a preferred example, adjacent pixels are used as pixels for which the opacity α is referred to, but the pixels are not limited to adjacent pixels, and other nearby pixels may be referred to.

ステップS645において、陰影付加されたボクセルのRGB値V(c)が得られたら、累積輝度値Energy(c)と透過光強度Transの更新を行う(ステップS646)。具体的には、以下の〔数式23〕に従った処理を実行して、α値を補正した後、累積輝度値Energy(c)と透過光強度Transを更新する。 In step S645, when the RGB value V(c) of the shaded voxel is obtained, the accumulated luminance value Energy(c) and the transmitted light intensity Trans are updated (step S646). Specifically, the process according to the following [Formula 23] is executed to correct the α value, and then the cumulative luminance value Energy(c) and the transmitted light intensity Trans are updated.

〔数式23〕
Alpha←1-(1-Alpha)1/Sray
Energy(c)←Energy(c)+Trans・Alpha・V(c)/255
Trans←Trans・(1.0-Alpha)
[Formula 23]
Alpha ← 1-(1-Alpha) 1/Sray
Energy (c) <- Energy (c) + Trans Alpha V (c)/255
Trans←Trans・(1.0-Alpha)

累積輝度Energy(c)、透過光強度Transが更新されたら、Trans<0.001である場合は、図13に示したステップS640の処理を終了する。Trans≧0.001である場合は、zを所定数m1だけ減じる(ステップS646)。本実施形態では、m1=1であり、m1<m2である。そして、zが0以上であれば、ステップS643へ戻って同様の処理を繰り返す。zが0未満であれば、対象とするボクセルがなくなるので、図13に示したステップS640の処理を終了する。 After updating the cumulative luminance Energy(c) and the transmitted light intensity Trans, if Trans<0.001, the process of step S640 shown in FIG. 13 is terminated. If Trans≧0.001, z is reduced by a predetermined number m1 (step S646). In this embodiment, m1=1 and m1<m2. Then, if z is 0 or more, the process returns to step S643 to repeat the same processing. If z is less than 0, there is no voxel to be processed, so the process of step S640 shown in FIG. 13 ends.

〔数式9〕の第3式に示したように、ステップS902におけるオフセット処理の際、zは仮想光線のサブサンプリング倍率Srayと乗じられる。そのため、実質的には、z軸方向においては、所定の参照間隔(m1・Sray)ごとにボクセルが参照されてボクセル画素値V(c)が取得されることになる。したがって、(m1・Sray)>1であれば、z軸方向に対しては、全てのボクセルを参照して処理するのではなく、間引いたボクセルを参照して処理を行うことになる。そのため、z軸方向に対して処理するボクセル数が少なくなり効率化が図られるが、ボリュームレンダリングの場合は画質劣化が目立ってくる(信号値でレンダリング像を生成する3D-MIPの場合は処理負荷がボリュームレンダリングより大きいため、(m1・Sray)>1に設定し、通常はm1=1、Sray=2に設定する)。本実施形態では、m1=1およびSray≦1であることが好ましく、通常はSray=1に設定する。 As shown in the third formula of [Equation 9], z is multiplied by the sub-sampling magnification Sray of the virtual ray during the offset processing in step S902. Therefore, substantially, in the z-axis direction, voxels are referenced at predetermined reference intervals (m1·Sray) to obtain the voxel pixel value V(c). Therefore, if (m1·Sray)>1, processing is performed with reference to thinned voxels instead of all voxels in the z-axis direction. Therefore, the number of voxels to be processed in the z-axis direction is reduced and efficiency is improved, but in the case of volume rendering, image quality degradation becomes noticeable (in the case of 3D-MIP, which generates a rendering image based on signal values, the processing load is is larger than the volume rendering, so set (m1·Sray)>1, usually set m1=1, Sray=2). In this embodiment, it is preferable that m1=1 and Sray≦1, and normally Sray=1.

図12に示したステップS630、S640においては、レイキャスティング手段61は、ボクセル画像をレンダリング画像に投影変換した座標系を視点座標系とすると、視点座標系において視線方向であるz軸の上限値を、レンダリング画像の画素(x,y)ごとに算出された視線方向のベクトルと直方体との交点に対応するZcに設定し、視線方向であるz軸の下限値を、視点座標系のz軸方向の下限値である0に設定し、起点座標探索手段62が、探索開始座標をZcとして視点座標系のz軸上のZcから0の範囲で仮想光線の照射を開始する起点座標Zstを探索している。 In steps S630 and S640 shown in FIG. 12, the ray-casting means 61 sets the upper limit of the z-axis, which is the line-of-sight direction, in the viewpoint coordinate system to , Zc corresponding to the intersection of the line-of-sight direction vector calculated for each pixel (x, y) of the rendered image and the cuboid, and the lower limit of the z-axis, which is the line-of-sight direction, is set to the z-axis direction of the viewpoint coordinate system. is set to 0, which is the lower limit of , and the starting point coordinate searching means 62 searches for the starting point coordinate Zst at which the irradiation of the virtual ray starts in the range from Zc to 0 on the z-axis of the viewpoint coordinate system, with the search start coordinate being Zc. ing.

以上のようにして各画素の色成分を得る、図10に示したステップS440の処理を、NB個の各CPUコアが、NB個に分割された各分割画像に対して実行する。そして、得られた分割画像を統合することにより、設定されたSize×SizeのRGBのカラー2次元投影画像であるレンダリング画像が生成される。なお、必ずしも設定されたSize×Sizeの2次元投影画像に一度に統合する必要はなく、各分割画像を処理が完了次第、順次表示させながら、最終的に全ての分割画像を統合させるようにしてもよい。 Each of the NB CPU cores executes the process of step S440 shown in FIG. 10 for obtaining the color component of each pixel as described above for each of the NB divided images. Then, by integrating the obtained divided images, a rendering image, which is an RGB color two-dimensional projection image of the set Size×Size, is generated. Note that it is not necessary to integrate the set Size×Size two-dimensional projection image all at once, and all the divided images are finally integrated while sequentially displaying each divided image as soon as the processing is completed. good too.

有効領域の境界面、すなわち有効領域の最外周のボクセルの不透明度αの値を0に設定するとともに色成分のRGB値には画素の信号値を基にカラーマップで定義される自然なRGB値を与えることにより、処理負荷を抑制しながら境界面に発生するモアレを抑制することができる。 The boundary surface of the effective area, that is, the value of the opacity α of the outermost voxel of the effective area is set to 0, and the RGB value of the color component is the natural RGB value defined by the color map based on the signal value of the pixel. By providing , it is possible to suppress moiré generated on the boundary surface while suppressing the processing load.

上述のように、本実施形態に係るボリュームレンダリング装置100では、マルチコアCPUであるCPU1がプログラムを実行することにより、不透明外接領域算出手段50、レンダリング手段60が実現される。このプログラムは、読み込んだ断層画像を複数(例えばNAまたはNB個)の断層画像群に分割し、各CPUスレッドに各断層画像群を割り当てて、各CPUスレッドが不透明外接領域の一部を算出する処理、分割生成領域に画素値を割り当てる処理を並行して行う。ボリュームレンダリング装置100を、汎用的なコンピュータであるパソコンで実現した場合について説明する。図15は、コンピュータによりボリュームレンダリング装置100を実現する場合の並列化処理を示す図である。図15は不透明外接領域算出手段50をNA=4個の断層画像群に分割して実行させる例を示しているが、レンダリング手段60をNB=4個の分割生成領域に分割して実行させる場合も同様な構成になる。図15に示すように、不透明外接領域算出手段50、レンダリング手段60が、アプリケーションプログラムにより実現される。例えばNA=4個の断層画像群に分割する場合、アプリケーションプログラムは、4個の各断層画像群に対する処理を4つの処理スレッド♯n1~処理スレッド♯n4に分割する。例えばNB=4個の分割生成領域に分割する場合、アプリケーションプログラムは、4個の各分割生成領域に対する処理を4つの処理スレッド♯n1~処理スレッド♯n4に分割する。そして、不透明外接領域算出手段50、レンダリング手段60(アプリケーションプログラム)が稼働するマルチタスク・オペレーティングシステムのジョブスケジューラが、複数のCPUコアが有するCPUスレッド#1~CPUスレッド#8に割り当てる。 As described above, in the volume rendering device 100 according to the present embodiment, the opaque circumscribed area calculation means 50 and the rendering means 60 are implemented by the CPU 1, which is a multi-core CPU, executing programs. This program divides the loaded tomographic image into a plurality of (for example, NA or NB) tomographic image groups, assigns each tomographic image group to each CPU thread, and each CPU thread calculates a part of the opaque circumscribed area. Processing and processing for assigning pixel values to divided generation regions are performed in parallel. A case in which the volume rendering apparatus 100 is realized by a personal computer, which is a general-purpose computer, will be described. FIG. 15 is a diagram showing parallel processing when the volume rendering device 100 is implemented by a computer. FIG. 15 shows an example in which the opaque circumscribed region calculation means 50 is divided into NA=4 tomographic image groups and executed. will have a similar configuration. As shown in FIG. 15, the opaque circumscribed area calculation means 50 and the rendering means 60 are implemented by an application program. For example, when dividing into tomographic image groups of NA=4, the application program divides the processing for each of the four tomographic image groups into four processing threads #n1 to #n4. For example, when dividing into NB=4 divided generation areas, the application program divides the processing for each of the four divided generation areas into four processing threads #n1 to #n4. Then, the job scheduler of the multitasking operating system in which the opaque circumscribed area calculating means 50 and the rendering means 60 (application program) operate allocates them to the CPU threads #1 to #8 of the plurality of CPU cores.

図16は、コンピュータによりボリュームレンダリング装置100を実現する場合の並列化処理のソフトウェアによる流れを示す図である。図16は不透明外接領域算出手段50をNA=4個の断層画像群に分割して実行させる例を示しているが、レンダリング手段60をNB=4個の分割生成領域に分割して実行させる場合も同様な構成になる。図16に示すように、不透明外接領域算出手段50、レンダリング手段60を実現するアプリケーションプログラムは、4個の各断層画像群に対する処理、4個の各分割生成領域に対する処理を4つの処理スレッド♯n1~処理スレッド♯n4に分割した後、それぞれ並列処理関数を起動する。そうすると、マルチタスク・オペレーティングシステムのジョブスケジューラが、4つのスレッド♯n1~スレッド♯n4を複数のCPUコアが有するCPUスレッド#3、CPUスレッド#5、CPUスレッド#7、CPUスレッド#2、にそれぞれ割り当てる。このようにして、オペレーティングシステムにより空いているCPUコアのCPUスレッドに、処理すべき処理スレッドが割り当てられるため、並列処理が可能となる。図16の例では、アプリケーションプログラムが各CPUスレッドからの終了メッセージを待ち、全てのCPUスレッドから終了メッセージが得られたら、次の処理に移行する。 FIG. 16 is a diagram showing a software flow of parallel processing when the volume rendering apparatus 100 is realized by a computer. FIG. 16 shows an example in which the opaque circumscribed region calculation means 50 is divided into NA=4 tomographic image groups and executed. will have a similar configuration. As shown in FIG. 16, the application program that realizes the opaque circumscribed region calculation means 50 and the rendering means 60 processes four tomographic image groups and four divided generation regions using four processing threads #n1. ∼ After dividing into processing threads #n4, each starts a parallel processing function. Then, the job scheduler of the multitasking operating system assigns four threads #n1 to #n4 to CPU thread #3, CPU thread #5, CPU thread #7, and CPU thread #2 each having a plurality of CPU cores. assign. In this way, the operating system allocates the processing threads to be processed to the CPU threads of the CPU cores that are free, thereby enabling parallel processing. In the example of FIG. 16, the application program waits for end messages from each CPU thread, and when the end messages are obtained from all CPU threads, the next process is performed.

4コア構成のCPU(Intel CORE-i7)が実装されているWindows10/64bitsのパーソナルコンピュータで実測した結果、図16の構成で512×512×370のボクセル画像を用いてレンダリング手段60をNB=8個の分割生成領域に分割して陰影計算なし実行させる場合にはシングルスレッド実行時(512×512のフル解像度レンダリング画像のCPUによる生成時間:約1.05秒)の3.5倍弱程度の処理速度が得られた (同生成時間:約0.3秒)。しかし、一部のCPUスレッドに処理待ちが生じた。そこで、本願提案の鏡面反射を含む陰影を付加し、8処理スレッドで並列処理を行ったところ、シングルスレッド実行時(同生成時間:約1.8秒)のほぼ4倍の処理性能が得られた(同生成時間:約0.45sec)。さらに、NA>8に上げて実験した結果、処理性能は殆ど変化せず4倍で頭打ちであり、陰影計算を加えると絶対的な処理時間は増大するが、4コア構成による並列化効果は得られやすかった。尚、上記処理時間には不透明外接領域算出手段50による処理時間も含まれており、レンダリング手段60に比べ桁違いに処理時間が短いため、不透明外接領域算出手段50による単独のマルチスレッド化による並列処理の効果は実測困難であった。 As a result of actual measurement on a Windows10/64bits personal computer equipped with a 4-core configuration CPU (Intel CORE-i7), the rendering means 60 was set to NB=8 using a 512×512×370 voxel image with the configuration shown in FIG. When divided into divided generation areas and executed without shadow calculation, it takes about 3.5 times less than single thread execution (512 × 512 full resolution rendering image generation time by CPU: about 1.05 seconds) A processing speed was obtained (same generation time: about 0.3 seconds). However, some CPU threads were waiting for processing. Therefore, when shadows including specular reflection proposed in the present application are added and parallel processing is performed with 8 processing threads, the processing performance is almost 4 times that of single thread execution (same generation time: about 1.8 seconds). (Generation time: about 0.45 sec). Furthermore, as a result of experimenting with NA > 8, the processing performance hardly changed and reached a ceiling at 4 times. it was easy to get The above processing time includes the processing time by the opaque circumscribed area calculation means 50, which is much shorter than the processing time of the rendering means 60. The effect of treatment was difficult to measure.

<3.断層画像の階調落とし>
上記実施形態では、各画素が16ビットの信号値を記録した断層画像をそのまま用いてレンダリング画像を作成するようにしたが、断層画像を8ビットに階調変換して階調低下画像を作成した後、レンダリング画像を作成するようにしてもよい。断層画像を8ビットに階調変換することにより、各画素の処理における負荷を削減することができ、ボリュームレンダリング像の高速な生成に寄与する。実測の結果、2割程度の削減効果が得られ、4コアCPU構成で8スレッドで陰影付きレンダリングを実行した場合、16ビット信号値の断層画像を用いた場合、約0.45secであったのに対し、8ビット信号値の階調低下断層画像を用いた場合、約0.36secに短縮され、生成されるレンダリング画像の差異は殆ど認められなかった。
<3. Gradation Reduction of Tomographic Image>
In the above embodiment, a tomographic image in which each pixel records a 16-bit signal value is used as it is to create a rendered image. A rendered image may be created later. By converting the tomographic image into 8-bit gradation, the load in processing each pixel can be reduced, contributing to high-speed generation of volume rendering images. As a result of actual measurement, a reduction effect of about 20% was obtained, and when rendering with shadows was executed with 8 threads on a 4-core CPU configuration, it was about 0.45 sec when using a tomographic image with a 16-bit signal value. On the other hand, when the 8-bit signal value gradation reduction tomographic image was used, the time was shortened to about 0.36 sec, and almost no difference was observed in the generated rendered image.

この場合、断層画像階調変換手段を更に設け、断層画像読込手段10が単一の断層画像を読み込むごとに、階調変換を行う。具体的には、一連のDICOM形式の断層画像Do(x,y,z)(-32768≦Do(x,y,z)≦32767,0≦x≦Sx-1,0≦y≦Sy-1,0≦z≦Sz-1; 解像度:Rxy,Rz)の中で、Sz/2番目の中間の断層画像Do(x,y,z/2)を最初に読み込み、同断層画像における全ての画素の最小値をDmin、最大値をDmaxとする。DminとDmaxは全ての断層画像より最小値と最大値を求める方法をとっても良いが、中間の断層画像だけで決定する方法をとると、大容量の16ビットの原断層画像の全てのスライス分を読み込んでメモリ上に保持することなく、階調低下画像である階調圧縮断層画像D8(x,y,z)だけをメモリ上に直接構築できる。続いて、以下の〔数式24〕に従った処理を実行して、下限値Lmin および上限値Lmaxを算出する。 In this case, tomographic image tone conversion means is further provided, and tone conversion is performed each time the tomographic image reading means 10 reads a single tomographic image. Specifically, a series of DICOM format tomographic images Do (x, y, z) (-32768 ≤ Do (x, y, z) ≤ 32767, 0 ≤ x ≤ Sx-1, 0 ≤ y ≤ Sy-1 , 0 ≤ z ≤ Sz-1; resolution: Rxy, Rz), the Sz/2th intermediate tomographic image Do (x, y, z/2) is first read, and all pixels in the same tomographic image Let Dmin be the minimum value of and Dmax be the maximum value of . For Dmin and Dmax, a method of determining the minimum and maximum values from all tomographic images may be used, but if a method of determining only from intermediate tomographic images is used, all slices of the large-capacity 16-bit original tomographic image may be used. Only the gradation-compressed tomographic image D8(x, y, z), which is a gradation-reduced image, can be constructed directly on the memory without reading it and storing it on the memory. Subsequently, a process according to [Equation 24] below is executed to calculate the lower limit value Lmin and the upper limit value Lmax.

〔数式24〕
下限値Lmin=(Dmax-Dmin)・γ+Dmin
上限値Lmax=(Dmax-Dmin)・(1-γ)+Dmin
[Formula 24]
Lower limit Lmin = (Dmax-Dmin) γ + Dmin
Upper limit value Lmax=(Dmax−Dmin)・(1−γ)+Dmin

〔数式24〕において、γは階調圧縮画像のコントラスト調整幅で、0に近いほどコントラストが増大するが輝度が小さくなる。γは0.3未満の実数値であるが、通常はγ=0.1に設定する。レンダリング画像の輝度コントラストはカラーマップなど種々の設定で調整できるので、γは固定で良い。そして、下限値Lminおよび上限値Lmaxの範囲を256段階に圧縮して階調圧縮断層画像D8(x,y,z)を得る。具体的には、階調圧縮断層画像D8(x,y,z)(0≦D8(x,y,z)≦255,0≦x≦Sx-1,0≦y≦Sy-1,0≦z≦Sz-1; 解像度:Rxy,Rz)としたとき、以下の〔数式25〕に従った処理を実行して、階調圧縮断層画像D8(x,y,z) を算出する。 In [Equation 24], γ is the contrast adjustment width of the gradation-compressed image, and the closer to 0, the higher the contrast but the lower the luminance. γ is a real value less than 0.3, but is usually set to γ=0.1. Since the luminance contrast of the rendered image can be adjusted by various settings such as a color map, γ may be fixed. Then, the range between the lower limit value Lmin and the upper limit value Lmax is compressed in 256 steps to obtain a gradation-compressed tomographic image D8(x, y, z). Specifically, the gradation compression tomographic image D8 (x, y, z) (0≤D8 (x, y, z)≤255, 0≤x≤Sx-1, 0≤y≤Sy-1, 0≤ When z≦Sz−1; resolution: Rxy, Rz), the process according to the following [Equation 25] is executed to calculate a gradation compression tomographic image D8(x, y, z).

〔数式25〕
D8(x,y,z)=(Do(x,y,z)-Lmin)・255/(Lmax-Lmin)
D8(x,y,z)>255の場合:D8(x,y,z)=255、D8(x,y,z)<0の場合:D8(x,y,z)=0
[Formula 25]
D8 (x, y, z) = (Do (x, y, z) - Lmin) 255 / (Lmax - Lmin)
If D8(x,y,z)>255: D8(x,y,z)=255 If D8(x,y,z)<0: D8(x,y,z)=0

〔数式25〕の第2式に示すように、信号値が上限値Lmaxを超える場合は255、下限値Lminを下回る場合は0として、下限値Lminから上限値Lmaxの範囲を0から255に線形変換する。なお、階調圧縮断層画像を用いてボクセル画像を作成する場合、図5のカラーマップに代えて、階調低下画像用のカラーマップとして、8ビットの信号値用のカラーマップを用意しておく。具体的には、信号値0~255に対応付けてR,G,B、αが記録されたカラーマップを用いる。 As shown in the second formula of [Equation 25], when the signal value exceeds the upper limit value Lmax, it is set to 255, and when it is below the lower limit value Lmin, it is set to 0. Convert. When creating a voxel image using a gradation-compressed tomographic image, a color map for 8-bit signal values is prepared as a color map for a gradation-reduced image instead of the color map in FIG. . Specifically, a color map in which R, G, B, and α are recorded in association with signal values 0 to 255 is used.

以上、本開示の好適な実施形態について説明したが、本開示は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、CPU1として、複数のCPUコアを有し、並列処理が可能なマルチコアCPUを用いるようにしたが、1つのCPUコアが1つの処理スレッドの処理のみを行うシングルコアCPUを用いるようにしてもよい。 Although the preferred embodiments of the present disclosure have been described above, the present disclosure is not limited to the above embodiments, and various modifications are possible. For example, in the above embodiment, a multi-core CPU having a plurality of CPU cores and capable of parallel processing is used as the CPU 1, but a single-core CPU in which one CPU core only processes one processing thread is used. may be used.

また、上記実施形態では、モアレ対策を行うため、有効領域の最外周のボクセルの不透明度を0とするようにしたが、モアレが目立たない場合は、必ずしも有効領域の最外周のボクセルの不透明度を0とする必要はない。 In the above embodiment, the opacity of the outermost voxels in the effective area is set to 0 in order to prevent moiré. need not be 0.

1・・・CPU(Central Processing Unit)
2・・・RAM(Random Access Memory)
3・・・記憶装置
4・・・指示入力I/F
5・・・データ入出力I/F
6・・・表示部
7・・・GPU
8・・・フレームメモリ
10・・・断層画像読込手段
20・・・カラーマップ読込手段
30・・・ROIクリッピング設定手段
40・・・マスク設定手段
50・・・不透明外接領域算出手段
60・・・レンダリング手段
61・・・レイキャスティング手段
62・・・起点座標探索手段
63・・・陰影付加手段
70・・・レンダリング画像出力手段
100・・・ボリュームレンダリング装置
1 CPU (Central Processing Unit)
2 RAM (random access memory)
3... Storage device 4... Instruction input I/F
5 Data input/output I/F
6... Display unit 7... GPU
8 frame memory 10 tomographic image reading means 20 color map reading means 30 ROI clipping setting means 40 mask setting means 50 opaque circumscribed area calculation means 60 Rendering Means 61 Ray Casting Means 62 Starting Point Coordinate Searching Means 63 Shadow Adding Means 70 Rendered Image Output Means 100 Volume Rendering Apparatus

Claims (16)

所定の対象物について所定の間隔で撮影された複数の2次元の断層画像で構成されるボクセル画像に基づいて、信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照してレンダリング画像を生成するためのボリュームレンダリング装置であって、
前記ボクセル画像と前記カラーマップを用いてレンダリング画像を生成するレンダリング手段を備え、
前記レンダリング手段は、前記レンダリング画像の各画素において、前記ボクセル画像に対して所定の座標変換を行いながら前記ボクセル画像の複数のボクセルを参照し、参照する各ボクセルに対して、前記カラーマップを参照しながら当該ボクセルの色成分および不透明度を取得するとともに、当該ボクセルの複数の近傍のボクセルの不透明度を取得するレイキャスティング手段と、
前記レイキャスティング手段により取得された当該ボクセルの複数の近傍のボクセルの不透明度を基に当該ボクセルにおける勾配ベクトルを算出するとともに、算出された勾配ベクトルに対する所定の光源ベクトルの正反射ベクトルを算出し、前記勾配ベクトルと前記光源ベクトルとの内積値を基に当該ボクセルの拡散反射光を算出し、前記正反射ベクトルと所定の視線ベクトルとの内積値を基に当該ボクセルの鏡面反射光を算出し、算出された拡散反射光と鏡面反射光を基に算出した陰影値を前記レイキャスティング手段により取得された当該ボクセルの色成分に乗算し、当該ボクセルの色成分を更新する陰影付加手段と、を有するボリュームレンダリング装置。
A color map defined by associating color component values and opacity with signal values based on a voxel image composed of a plurality of two-dimensional tomographic images taken at predetermined intervals of a predetermined target. A volume rendering device for generating a rendered image with reference to
rendering means for generating a rendered image using the voxel image and the color map;
The rendering means refers to a plurality of voxels of the voxel image while performing a predetermined coordinate transformation on the voxel image for each pixel of the rendering image, and refers to the color map for each voxel to be referred to. a ray casting means for obtaining the color component and opacity of the voxel while obtaining the opacity of a plurality of neighboring voxels of the voxel;
calculating a gradient vector in the voxel based on the opacity of a plurality of voxels near the voxel obtained by the ray casting means, and calculating a regular reflection vector of a predetermined light source vector with respect to the calculated gradient vector; calculating the diffusely reflected light of the voxel based on the inner product value of the gradient vector and the light source vector, and calculating the specular reflected light of the voxel based on the inner product value of the regular reflection vector and a predetermined line-of-sight vector; and a shadow adding means for updating the color component of the voxel by multiplying the color component of the voxel obtained by the ray casting means by a shadow value calculated based on the calculated diffuse reflection light and the specular reflection light. Volume rendering device.
前記所定の光源ベクトルは、あらかじめ定義された光源ベクトルに対して前記所定の座標変換における回転処理を行ったものであり、前記所定の視線ベクトルは、あらかじめ定義された視線ベクトルに対して前記所定の座標変換における回転処理を行ったものである請求項1に記載のボリュームレンダリング装置。 The predetermined light source vector is obtained by subjecting a predefined light source vector to rotation processing in the predetermined coordinate transformation. 2. The volume rendering apparatus according to claim 1, wherein rotation processing is performed in coordinate transformation. 前記回転処理は、
所定の3次元座標系における回転を定義した3×3行列を用いて、前記あらかじめ定義された光源ベクトルまたは前記あらかじめ定義された視線ベクトルに対して回転処理を行う請求項2に記載のボリュームレンダリング装置。
The rotation process is
3. The volume rendering apparatus according to claim 2, wherein a rotation process is performed on the predefined light source vector or the predefined line-of-sight vector using a 3×3 matrix that defines rotation in a predetermined three-dimensional coordinate system. .
前記ボクセル画像のxy軸方向の解像度をRxy、z軸方向の解像度をRzとすると、
前記陰影付加手段は、
当該ボクセルに対してx軸方向に+1ボクセルおよび-1ボクセルずれたボクセルの不透明度の差分を前記勾配ベクトルのx軸方向成分とし、
当該ボクセルに対してy軸方向に+1ボクセルおよび-1ボクセルずれたボクセルの不透明度の差分を前記勾配ベクトルのy軸方向成分とし、
当該ボクセルに対してz軸方向に+1ボクセルおよび-1ボクセルずれたボクセルの不透明度の差分にRz/Rxyを乗じた値をを前記勾配ベクトルのz軸方向成分としている請求項1から請求項3のいずれか一項に記載のボリュームレンダリング装置。
Assuming that the resolution in the xy-axis direction of the voxel image is Rxy and the resolution in the z-axis direction is Rz,
The shading means includes:
The difference in opacity between voxels shifted +1 voxel and -1 voxel in the x-axis direction with respect to the voxel is defined as the x-axis component of the gradient vector,
The difference in opacity between voxels shifted +1 voxel and -1 voxel in the y-axis direction with respect to the voxel is defined as the y-axis direction component of the gradient vector,
Claims 1 to 3, wherein a value obtained by multiplying a difference in opacity of voxels shifted by +1 voxel and -1 voxel in the z-axis direction from the voxel concerned by Rz/Rxy is taken as the z-axis direction component of the gradient vector. A volume rendering device according to any one of Claims 1 to 3.
前記ボクセル画像のxy軸方向の解像度をRxy、z軸方向の解像度をRzとすると、
前記陰影付加手段は、
当該ボクセルに対してx軸方向に+1ボクセルおよび-1ボクセルずれたボクセルの不透明度の差分を前記勾配ベクトルのx軸方向成分とし、
当該ボクセルに対してy軸方向に+1ボクセルおよび-1ボクセルずれたボクセルの不透明度の差分を前記勾配ベクトルのy軸方向成分とし、
当該ボクセルに対して、z軸方向に+Rz/Rxyずれた座標の近傍の2つのボクセルの不透明度に所定の重みをかけて加算した不透明度と、z軸方向に-Rz/Rxyずれた座標の近傍の2つのボクセルの不透明度に所定の重みをかけて加算した不透明度との差分を前記勾配ベクトルのz軸方向成分としている請求項1から請求項3のいずれか一項に記載のボリュームレンダリング装置。
Assuming that the resolution in the xy-axis direction of the voxel image is Rxy and the resolution in the z-axis direction is Rz,
The shading means includes:
The difference in opacity between voxels shifted +1 voxel and -1 voxel in the x-axis direction with respect to the voxel is defined as the x-axis component of the gradient vector,
The difference in opacity between voxels shifted +1 voxel and -1 voxel in the y-axis direction with respect to the voxel is defined as the y-axis direction component of the gradient vector,
For the voxel, the opacity obtained by multiplying and adding the opacity of two voxels in the vicinity of the coordinates shifted +Rz/Rxy in the z-axis direction by a predetermined weight, and the opacity of the coordinates shifted -Rz/Rxy in the z-axis direction. 4. The volume rendering according to any one of claims 1 to 3, wherein the difference between the opacities obtained by multiplying the opacities of two neighboring voxels by a predetermined weight and adding them is used as the z-axis direction component of the gradient vector. Device.
前記陰影付加手段は、
あらかじめ所定の拡散反射係数,鏡面反射係数,鏡面光沢度,環境光を各々定義し、
前記正反射ベクトルは、前記勾配ベクトルとのなす角が前記光源ベクトルと前記勾配ベクトルとのなす角と同一になるように定義し、
前記勾配ベクトル、前記正反射ベクトル、前記光源ベクトル、前記視線ベクトルのいずれも単位ベクトルとするとき、
前記拡散反射光として、前記勾配ベクトルと前記光源ベクトルとの内積値に前記拡散反射係数を乗算した値とし、
前記鏡面反射光として、前記正反射ベクトルと前記視線ベクトルとの内積値に対して、前記鏡面光沢度で累乗した値に前記鏡面反射係数を乗算した値とし、
前記陰影値として、前記拡散反射光と前記鏡面反射光に前記環境光を加算した値としている請求項1から請求項5のいずれか一項に記載のボリュームレンダリング装置。
The shading means includes:
Predetermined diffuse reflection coefficient, specular reflection coefficient, specular glossiness, and ambient light are defined in advance,
the specular reflection vector is defined so that the angle formed by the gradient vector is the same as the angle formed by the light source vector and the gradient vector;
When all of the gradient vector, specular reflection vector, light source vector, and line-of-sight vector are unit vectors,
The diffusely reflected light is a value obtained by multiplying the inner product value of the gradient vector and the light source vector by the diffuse reflection coefficient,
As the specular reflected light, a value obtained by multiplying the inner product value of the specular reflection vector and the line-of-sight vector by the specular reflection coefficient to a value raised to the power of the specular glossiness,
6. The volume rendering apparatus according to any one of claims 1 to 5, wherein the shadow value is a value obtained by adding the ambient light to the diffuse reflection light and the specular reflection light.
前記レンダリング画像の生成領域をx軸方向にNB(NB>1)個の分割生成領域に分割し、
前記レンダリング手段は、NB個の互いに異なる分割生成領域に対して、NB個の互いに異なるプロセッサで同時に実行させることにより、NB個の分割画像で構成されるレンダリング画像を生成するようにしている請求項1から請求項6のいずれか一項に記載のボリュームレンダリング装置。
dividing the generation area of the rendered image into NB (NB>1) divided generation areas in the x-axis direction;
3. The rendering means generates a rendering image composed of NB divided images by causing NB different processors to simultaneously execute NB divided generation regions that are different from each other. A volume rendering device according to any one of claims 1 to 6.
前記各断層画像の各画素のうち、前記カラ-マップを参照して得られた不透明度が0でない画素が存在する領域に3次元の各軸方向において外接する領域である不透明外接領域を算出する不透明外接領域算出手段と、を更に有し、
前記レンダリング手段は、前記各断層画像のうち、前記不透明外接領域に対応する領域を有効領域として定義し、
前記レイキャスティング手段は、前記レンダリング画像の各画素において、前記有効領域と、視点に最も近い視線方向のベクトルとの交点を算出し、前記レンダリング画像の各画素において、前記算出される交点より前記ボクセル画像に対して視線方向に仮想光線を照射し、レイキャスティング法に基づいて所定の座標変換を行いながら前記ボクセル画像の複数のボクセルを参照する請求項1から請求項7のいずれか一項に記載のボリュームレンダリング装置。
calculating an opaque circumscribed region, which is a region that circumscribes in each three-dimensional axial direction the region in which pixels having non-zero opacity obtained by referring to the color map exist among the pixels of each of the tomographic images; and an opaque circumscribed area calculation means,
The rendering means defines an area corresponding to the opaque circumscribed area in each of the tomographic images as an effective area,
The ray casting means calculates, at each pixel of the rendered image, an intersection point between the effective area and a line-of-sight direction vector closest to a viewpoint, and calculates the voxel from the calculated intersection point at each pixel of the rendered image. 8. The voxel image according to any one of claims 1 to 7, wherein a virtual ray is applied to the image in a line-of-sight direction, and a plurality of voxels of the voxel image are referred to while performing a predetermined coordinate transformation based on a ray casting method. volume rendering device.
前記断層画像に対応して、0(表示しない)または1(表示する)の値をもつマスクデータが定義されている場合、
前記不透明外接領域算出手段は、更に前記マスクデータを参照して、前記マスクデータの値が1で、かつ前記不透明度が0でない画素を特定するようにしている請求項8に記載のボリュームレンダリング装置。
When mask data having a value of 0 (not displayed) or 1 (displayed) is defined corresponding to the tomographic image,
9. The volume rendering apparatus according to claim 8, wherein said opaque circumscribing region calculating means further refers to said mask data to specify pixels whose value of said mask data is 1 and whose opacity is not 0. .
前記不透明外接領域算出手段は、所定の分割数をNA(NA>1)として、各前記断層画像をNA個の断層画像群に分割し、NA個の各断層画像群に対して、前記不透明外接領域の一部を作成する処理を並行して実行する請求項8または請求項9に記載のボリュームレンダリング装置。 The opaque circumscribing region calculating means divides each of the tomographic images into NA tomographic image groups with a predetermined division number NA (NA>1), and divides each of the NA tomographic image groups into the opaque circumscribing region. 10. A volume rendering apparatus according to claim 8 or 9, wherein processes for creating a part of the region are executed in parallel. 2次元の前記各断層画像の1つ目の次元の最小の座標をXso、1つ目の次元の最大の座標をXeo、2つ目の次元の最小の座標をYso、2つ目の次元の最大の座標をYeo、第1番目の断層画像が配置されるz座標をZso、第M番目の断層画像が配置されるz座標をZeoとすると、Xso≦Xs<Xe≦Xeo、Yso≦Ys<Ye≦Yeo、Zso≦Zs<Ze≦Zeoを満たす、6つの座標Xs,Xe,Ys,Ye,Zs,Zeが定義されている場合、
前記不透明外接領域算出手段は、Xs以上Xe以下、Ys以上Ye以下、Zs以上Zeの範囲において前記不透明外接領域を算出する請求項8から請求項10のいずれか一項に記載のボリュームレンダリング装置。
Xso is the minimum coordinate in the first dimension of each of the two-dimensional tomographic images, Xeo is the maximum coordinate in the first dimension, Yso is the minimum coordinate in the second dimension, and Yso is the minimum coordinate in the second dimension. Let Yeo be the maximum coordinate, Zso be the z coordinate at which the first tomographic image is arranged, and Zeo be the z coordinate at which the Mth tomographic image is arranged. If six coordinates Xs, Xe, Ys, Ye, Zs, Ze are defined that satisfy Ye≤Yeo and Zso≤Zs<Ze≤Zeo,
11. The volume rendering apparatus according to any one of claims 8 to 10, wherein the opaque circumscribing area calculating means calculates the opaque circumscribing area in a range of Xs to Xe, Ys to Ye, and Zs to Ze.
前記レイキャスティング手段は、前記ボクセル画像を前記レンダリング画像に投影変換した座標系を視点座標系とすると、視点座標系において視線方向であるz軸の上限値を、前記レンダリング画像の画素(x,y)ごとに前記算出された交点に対応するZcに設定し、
視点座標系のz軸上のZcから所定の下限値の範囲で仮想光線の照射を開始する起点座標Zoを探索する起点座標探索手段を備えている請求項8から請求項11のいずれか一項に記載のボリュームレンダリング装置。
Assuming that a coordinate system obtained by projectively transforming the voxel image into the rendering image is a viewpoint coordinate system, the ray casting means sets the upper limit value of the z-axis, which is the viewing direction in the viewpoint coordinate system, to the pixel (x, y ) is set to Zc corresponding to the calculated intersection point,
12. The apparatus according to any one of claims 8 to 11, further comprising starting point coordinate searching means for searching for starting point coordinates Zo at which irradiation of the virtual ray starts within a predetermined lower limit range from Zc on the z-axis of the viewpoint coordinate system. The volume rendering device according to .
前記起点座標探索手段は、
前記視点座標系において、前記レンダリング画像の各画素(x,y)におけるz座標を探索開始座標Zstより前記下限値まで所定数ずつ変化させながら、前記視点座標系の3次元座標(x,y,z)ごとに前記所定の座標変換を行って対応する前記ボクセル画像のボクセルのボクセル値を順次取得し、最初に見つかった不透明なボクセルの視点座標系におけるz座標を、起点座標Zoとして探索するようにしている請求項12に記載のボリュームレンダリング装置。
The origin coordinate search means is
In the viewpoint coordinate system, the three-dimensional coordinates (x, y, The predetermined coordinate transformation is performed for each z) to sequentially acquire the voxel values of the corresponding voxel of the voxel image, and the z coordinate of the opaque voxel found first in the viewpoint coordinate system is searched as the starting point coordinate Zo. 13. A volume rendering apparatus according to claim 12, wherein:
前記レイキャスティング手段は、
前記レンダリング画像の各画素(x,y)に対して、前記起点座標探索手段より探索された起点座標よりz軸に沿って下限値に向けて、所定の光強度をもつ仮想光線を照射する際、前記視点座標系の3次元座標(x,y,z)ごとに前記所定の座標変換を行って、対応する前記ボクセル画像のボクセルのボクセル値として前記カラーマップを参照しながら不透明度を取得し、取得された不透明度が0でない場合、ボクセル値として前記カラーマップを参照しながら色成分(RGB)を更に取得し、
前記陰影付加手段は、当該ボクセルの複数の近傍のボクセルの不透明度を基に算出した陰影値を取得した色成分に乗算することにより前記色成分を更新し、
前記レンダリング手段は、
当該ボクセルの不透明度を基に前記光強度を減衰させるとともに、当該ボクセルの不透明度及び前記更新された色成分および前記減衰させた光強度に基づいて累積輝度値を算出する処理を行い、算出された累積輝度値を基に、前記レンダリング画像の当該画素(x,y)に対応する画素値(RGB)として与えるようにしている請求項12に記載のボリュームレンダリング装置。
The raycasting means comprises:
when irradiating each pixel (x, y) of the rendered image with a virtual ray having a predetermined light intensity from the starting point coordinates searched by the starting point coordinate searching means toward the lower limit value along the z-axis; , performing the predetermined coordinate transformation for each of the three-dimensional coordinates (x, y, z) of the viewpoint coordinate system, and acquiring the opacity as the voxel value of the corresponding voxel of the voxel image while referring to the color map. , if the obtained opacity is not 0, further obtain the color components (RGB) referring to the color map as voxel values;
The shading means updates the color component by multiplying the obtained color component by a shading value calculated based on the opacity of a plurality of neighboring voxels of the voxel;
The rendering means is
performing a process of attenuating the light intensity based on the opacity of the voxel and calculating a cumulative luminance value based on the opacity of the voxel, the updated color component, and the attenuated light intensity; 13. The volume rendering apparatus according to claim 12, wherein a pixel value (RGB) corresponding to the pixel (x, y) of the rendered image is given based on the accumulated brightness value.
所定の3次元座標系における回転を定義した3×3行列、xyz各軸方向のオフセット値および微小オフセット値、xyz各軸方向の拡大又は縮小倍率、z軸方向の変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系の整数値の3次元座標(x,y,z)を、前記パラメータに基づいて前記ボクセル画像の座標系に変換を行って、前記ボクセル画像の実数値のボクセル座標を算出し、
算出した実数値のボクセル座標の近傍の複数の整数値のボクセル座標に対応する前記ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの整数値のボクセル座標が前記有効領域に含まれる場合は、前記複数のボクセルの信号値を前記カラーマップを参照して色成分または不透明度に変換し、変換された色成分または不透明度の各々に所定の重みを掛けながら加算した値を、ボクセル値として色成分または不透明度を算出するようにしている請求項12から請求項14のいずれか一項に記載のボリュームレンダリング装置。
3×3 matrix defining rotation in a predetermined three-dimensional coordinate system, offset values and minute offset values in the directions of xyz axes, enlargement or reduction ratios in the directions of xyz axes, and the predetermined coordinates including scaling factors in the z-axis direction get the parameters of the transform,
calculating real-valued voxel coordinates of the voxel image by converting the integer-valued three-dimensional coordinates (x, y, z) of the viewpoint coordinate system into the coordinate system of the voxel image based on the parameters;
identifying a plurality of voxels of the voxel image corresponding to a plurality of integer-valued voxel coordinates near the calculated real-valued voxel coordinates;
If voxel coordinates of integer values of the identified voxels are included in the effective area, the signal values of the plurality of voxels are converted into color components or opacity with reference to the color map, and the converted color components 15. The volume rendering apparatus according to any one of claims 12 to 14, wherein a color component or opacity is calculated as a voxel value by adding a value obtained by multiplying each opacity with a predetermined weight. .
請求項1から請求項15のいずれか一項に記載のボリュームレンダリング装置として、コンピュータを機能させるためのプログラム。 A program for causing a computer to function as the volume rendering device according to any one of claims 1 to 15.
JP2018239791A 2018-12-21 2018-12-21 volume rendering device Active JP7167699B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018239791A JP7167699B2 (en) 2018-12-21 2018-12-21 volume rendering device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018239791A JP7167699B2 (en) 2018-12-21 2018-12-21 volume rendering device

Publications (2)

Publication Number Publication Date
JP2020102004A JP2020102004A (en) 2020-07-02
JP7167699B2 true JP7167699B2 (en) 2022-11-09

Family

ID=71139748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018239791A Active JP7167699B2 (en) 2018-12-21 2018-12-21 volume rendering device

Country Status (1)

Country Link
JP (1) JP7167699B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107093A (en) 2004-10-05 2006-04-20 Konica Minolta Medical & Graphic Inc Image processor and program
JP2009160306A (en) 2008-01-09 2009-07-23 Ziosoft Inc Image display device, control method of image display device and control program of image display device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175743A (en) * 1997-12-08 1999-07-02 Toshiba Mach Co Ltd Three-dimensional picture display method for slice picture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107093A (en) 2004-10-05 2006-04-20 Konica Minolta Medical & Graphic Inc Image processor and program
JP2009160306A (en) 2008-01-09 2009-07-23 Ziosoft Inc Image display device, control method of image display device and control program of image display device

Also Published As

Publication number Publication date
JP2020102004A (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US7439974B2 (en) System and method for fast 3-dimensional data fusion
US20060262112A1 (en) System and method for three-dimensional shape generation from partial and incomplete views, and interactive design system using same
US20050237336A1 (en) Method and system for multi-object volumetric data visualization
US4885688A (en) Minimization of directed points generated in three-dimensional dividing cubes method
US20110082667A1 (en) System and method for view-dependent anatomic surface visualization
US7893938B2 (en) Rendering anatomical structures with their nearby surrounding area
US9224236B2 (en) Interactive changing of the depiction of an object displayed using volume rendering
JP6215057B2 (en) Visualization device, visualization program, and visualization method
CN111311705B (en) High-adaptability medical image multi-plane reconstruction method and system based on webgl
US7692651B2 (en) Method and apparatus for providing efficient space leaping using a neighbor guided emptiness map in octree traversal for a fast ray casting algorithm
JP7275669B2 (en) Mask generation device, three-dimensional reconstruction image generation device, mask generation method, and program
JP2006000205A (en) Projection image processing method, projection image processing program, and projection image processor
JP6544472B1 (en) Rendering device, rendering method, and program
JP7167699B2 (en) volume rendering device
JP7223312B2 (en) volume rendering device
JP7003635B2 (en) Computer program, image processing device and image processing method
Kiss et al. GPU volume rendering in 3D echocardiography: real-time pre-processing and ray-casting
JP7206846B2 (en) volume rendering device
JP7131080B2 (en) volume rendering device
JP7180123B2 (en) Medical image processing apparatus, medical image processing method, program, and data creation method
JP5245811B2 (en) Voxel array visualization device
JP7095409B2 (en) Medical image processing device, medical image processing method, program, and MPR image generation method
JPH021083A (en) Apparatus and method for generating image
JP7283603B2 (en) COMPUTER PROGRAM, IMAGE PROCESSING APPARATUS AND IMAGE PROCESSING METHOD
JP6436258B1 (en) Computer program, image processing apparatus, and image processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221010

R150 Certificate of patent or registration of utility model

Ref document number: 7167699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150