基于序列图像的三维体绘的视线投射算法
基于序列图像的三维体绘的视线投射算法(Ray Casting)
将序列图像的象素数据部分剥离出来(如果是JPG等压缩类型的数据,还需要先解压缩),按照相对的上下层之间的关系,将其存到一内存区中,保存的原则比较简单,即能够根据象素的三维坐标最快的检索到体素的值(此处的象素值可以是灰度值、颜色值或者CT值等)。
某象素属于何种材质,归根到底还是由象素值来确定,所以在设置材质的时候必须首先设定材质的受用象素值的范围,即该材质的值的上限和下限,进而设定材质的色泽、透明度、镜面反射系数、漫反射系数等其他显示属性。
设置光源的数目,并设置每个光源的属性:点光源还是平行光源还是环境光源、在点光源的情况下光源的位置、在平行光源的情况下光线投射的方向、光线强度、光强是否有衰减、在衰减的情况下衰减因子如何设定、光源颜色等等。
根据视窗于物体的相对位置,我们很容易确定视线的方向向量。
遍历视窗中的所有象素,由每个象素都发出一条视线,并在视线经过的物体区域进行采样,一般采用用均匀采样的方式,即沿着视线方向,每隔一段距离就进行一次采样,如此便可获取采样位置的坐标,在获取采样坐标后对采样体素进行如下处理:
利用梯度法获取体素的法向量值:
设采样获得的体素坐标为(x0,y0,z0),f(x0,y0,z0)为体素值,那么该体素的法向量值应当为为:
{f(x0+△d,y0,z0)-f(x0-△d,y0,z0),f(x0,y0+△d,z0)-f(x0,y0-△d,z0),f(x0,y0,z0+△d)-f(x0,y0,z0-△d)}
根据材质属性以及光照的属性来设置体素的色泽,以单平行光源为例,体素的色泽可以表示为:
I=I0+(I1–I0)*Cosα
其中I为体素表现颜色、I0为体素材质颜色、I1为光线颜色、α为光线方向向量和体素法向量所成的角度。
如果物体是完全透明的,那么视线便可穿透物体,也就是说视线能量不会有任何损耗,如果物体并非完全透明,那么视线必然会被部分或者完全的阻挡,视线能量会有损失,因此可以将不透明度理解成为视线损失程度的概念:
C1=C0*C
此处的C1为视线被体素所阻挡的程度,即体素的不透明度、C0为视线射到体素之前的能量的,C为材质的不透明度。
值得指出的一点是当C0和C1相等的时候说明视线完全被阻挡,即视线到此处截止,所以完成该体素采样后,该视线的采样工作便可宣告完成
将视线上所有的采样点的色泽与其不透明度相乘之后再相加便可得该视线的象素值
2.增大将视窗的分辨率,从而产生更多的采样视线
2.减小视窗的分辨率,从而产生更少的采样视线
转载于:https://www.cnblogs.com/yxnchinahlj/archive/2011/03/25/1995851.html
基于序列图像的三维体绘的视线投射算法相关推荐
- VTK学习笔记(二)-----读入序列图像进行三维体渲染
体绘制管线Imagedata->=VolumeMapper->Volume->Render->RenderWindow->RenderWindowInteractor S ...
- Visual Hull基于序列图像的三维重建
Visual Hull是基于轮廓信息的三维重建,输入是序列图像以及对应序列图像的相机投影矩阵P.如果换成自己想要的序列图像, 相应的P矩阵也需要更换,因为P矩阵是相机标定后得到的.现在感觉自己作标定遇 ...
- MATLAB生成三维体数据
MATLAB生成三维体数据 一.三维体数据的生成 二.多二维矩阵生成三维体数据 三.多二维图像生成三维体数据 四.DICOM序列生成三维体数据 五.其他 by HPC_ZY 之前写了医学影像三维重建的 ...
- Matlab批量转换dicom,基于Matlab的批量转换DICOM格式CT序列图像的实现
龙源期刊网 http://www.doczj.com/doc/25ac806b59fb770bf78a6529647d27284a733760.html 基于Matlab的批量转换DICOM格式CT ...
- 【图像隐写】基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取含Matlab源码
1 简介 基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取. 1.1 LSB算法 根据LSB算法简单易实现的特点,结合在图像置乱技术中很好特性的Arnold变换.利用变化产生影子图像.通过 ...
- 【数学建模】2022亚太赛A题 结晶器熔炼结晶过程序列图像特征提取与建模分析
2022亚太赛A题 1 前言 2 问题重述 3 问题一 3.1 数据处理 3.1.1 图像裁剪 3.1.2 提取红色部分 3.2 汉字提取 3.2.1 失败的例子 3.2.2 正确的例子 4 问题二 ...
- matlab实现大气湍流退化模型算法,大气湍流下退化序列图像的目标检测方法
引言 目标检测是计算机视觉的重要应用之一, 是后续目标识别.跟踪.目标分类以及行为分析的前提.远距离成像时通常会受到复杂变化的大气湍流影响, 使得成像结果中存在不规则抖动.偏移和模糊等退化现象[.因此 ...
- BioNano生物纳米分子的“原始数据到完成装配和组装分析”管线与基于序列的基因组FASTA映射...
生物纳米分子的"原始数据到完成装配和组装分析"管线与基于序列的基因组FASTA映射 您完成本实验以及示例数据集所需的所有脚本将按照以下说明复制到计算机.您应该按照以下说明,将米色代 ...
- 三维体数据分割算法及实现
三维体数据分割算法及实现 本文基于分裂合并分割算法,提出了两种新的分割算法:基于八叉树的分裂合并算法和基于自适应包围盒的分裂合并算法.下面将对这两种算法进行描述. 1 分裂合并法分析 区域生长法的原理 ...
最新文章
- 用计算机能改装成万用表吗,用旧手机电池修改万用表
- 并发控制:(三)MVCC 多版本并发控制
- c语言邻接表的构建_c语言数据结构--图的邻接矩阵和邻接表操作的基本操作
- 《2020雇佣关系趋势报告》今发布:近三成受访者兼职,近七成工作量增加、考核变严格
- VC++如何处理自定义消息
- 【图网络】如何用Python实现算法:规划图技术(GraphPlanner)
- 【LeetCode笔记】42. 接雨水(Java、动态规划)
- centos6 mysql 启动_【17-02-18】 【求助】centos6 mysql重启后无法正常启动
- Scanner对象接收数据进行分类处理 java
- 知乎热榜:如何看待华为天才少年年薪201万?
- 如何从零开始搭建自己的博客
- MyEclipse安装包
- rtmp协议官方规范
- 凯恩帝绝对坐标清零_凯恩帝系统加工件数自动清零怎么设置
- 腰围尺寸2尺1、2、3、4、5、6、7、8寸分别等于是多少厘米/英寸(对照参考表)
- 基于文本检测模型检测文本框对图像进行旋转校正
- 设计模式之建造者模式与原型模式
- zlib简单使用说明(转)
- HCIA网络基础01
- 票据撮合区块链系统开发-去中心化的新型票据交易展现形式的系统