VC++和OpenGL开发实现,三维重建!

ireneki 2004-10-28 01:44:33
我的构想,但是因为对图形学不是了解很透彻,大家能否给我一些专业建议。具体怎么去做。如果有人有相似的代码那是更好了。
我现在有一个实物类似血管,通过多角度投影。获得投影图!需要根据这些投影图,重建出三维模型供旋转显示。下面是我的初步构想,大家觉得可行吗?不可行,我该怎么做?
1、在所获得的血管造影图像中应该只有血管和背景,如果将背景看成是穿过整个场的光线的话,血管就是阴影,二值化后,类似于完成了图像的分割,基本上将一些无用的信息去除了。
2、直接建立单一密度3D数据场是指这样一个概念:其实这个单一密度3D数据场就是在后面用来绘制3D图形的数据场,这个数据场应该包含所需要的所有信息,但是第一步只“建立单一密度3D数据场”,就像雕塑家雕刻一样,先取到一块雕塑的材料(如玉石、象牙、红木等等),可以认为这个材料的材质是均一的,单一密度3D数据场就是这个概念。下面要对这块材料进行艺术创作。
3、现在要通过自己的加工、镂空使这块材料成为一件艺术品,所用的工具,最原始的是各种雕刻刀,先进的有激光,在课题中,将穿过整个场的光线看成是雕刻工具对“单一密度3D数据场”进行镂空,通过多个角度的工作后,剩下的东东就是所需要的3D数据场。要注意是3D数据场,就像一个完成的雕塑作品,是一个实心的东东,而不是一个光有线条的轮廓。
4、接下来就可以将这个3D数据场可视化了。(用OpenGL)
...全文
494 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
syy64 2004-10-29
  • 打赏
  • 举报
回复
你这些题目应该到基础类里面去问,他们都很牛的;
你忘了,你的msn上面应该有我。
ireneki 2004-10-28
  • 打赏
  • 举报
回复
我说过啊。。。哎,脑子用多了,健忘了。。。请见谅。太平洋:你是哪里的阿?你qq或msn多少啊???
ireneki 2004-10-28
  • 打赏
  • 举报
回复
:)
下午3点左右接到一个电话,小姐称是微创软件公司,问我有没有空晚上6点去他们公司笔试,应聘软件工程师,我问了一下情况,就答应了,当作一次经历也不错的。于是乎,我骑着小电驴花了50分钟找到了延安东路222号外滩中心,大楼很PP,一幢非常高档的写字楼,进进出出都是白领,工作环境很不错,我看着自己穿的休闲服,还真不好意思进去,这楼还挺麻烦,要签名领牌子进去。终于上了21楼,看到了公司的门面,很气派,我喜欢的黄色系装潢,舒服的。不过接待的不是公司员工,是两个身穿制服的保安,递给我一份考卷,将我领进一间会议室,对我说90分钟后交卷。然后就走出去了。会议室里面有很多人,除了我和另外一个女生,其余都是男生,都在奋笔疾书!牛!我看了题目只有发傻~~~根本不是和我的岗位。唯一做的事情就是把题目摘录下来作为经验!不过我还是作了一部分的。嘻嘻
下面把题目贴出来,没有答案,大家可以讨论:)
Part A
1)实现string toHex(int)把一个十进制转换成十六进制。(完全用算法实现)
2)实现一个计算大位数(如100位以上)相乘结果的函数string multiply(sting,string)。(请完全用算法实现)
3)一个数据库中有两个表,一张表为Customer,含字段ID,Name,一张表为Order,含字段ID,CustomerID(连向Customer中ID的外键),Revenue;写出求每个Customer的Revenue总和的SQL语句。
4)一个学生成绩登记系统,其中学生和课程均是可添加的,请设计一个库表结构实现,尽量保证系统使用中库表结构不再改变。
5)请简要描述出你最熟悉的技术架构,包括架构中的各种中间件。(建议用图的形式)
Part B
1)请简述Critical Section和Mutex的不同点。
2)请描述下面函数声明中各个const的作用: const char* Test() const
3)举3个以上ASP.Net与ASP相比的进步。
4)ASP.Net中user control和custom control的区别。
5)用一个C语言用来删除单链表的头元素的函数,请找出其中的问题并加以纠正。
void RemoveHead(node* head)
{
free(head)
head=head->next
}


6)试编写函数判断计算机的字节存储顺序是开序(little endian)还是降序(bigendian)
7)给定如下SQL数据库:Test(num INT(4)) 请用一条SQL语句返回num的最小值,但不许使用统计功能,如MIN,MAX等。
8)输出下面程序结果。

#include <iostream.h>
using namespace std;
class A
{
public:virtual void print(void)
{
cout<<"A::print()"<<endl;);
};
class B:public A
{
public:virtual void print(void)
{
cout<<"B::print()"<<endl;};
};
void print(A a)
{
a.print();
}
void main(void)
{
A a, *pa,*pb,*pc;
B b;
C c;

pa=&a;
pb=&b;
pc=&c;

a.print();
b.print();
c.print();

pa->print();
pb->print();
pc->print();

print(a);
print(b);
print(c);
}
syy64 2004-10-28
  • 打赏
  • 举报
回复
1、http://graphics.shu.edu.cn/paper/reconstruction/3dr01.htm
这篇文章我看了一下,一般是一些图象处理技术,至于它提到从二维到三维的方法,我表示疑虑;
2、http://cnwyy.vip.myrice.com/3DReconstruction.pdf 文章全是英文,短时间很难看明白;
3、楼主是在进行一项课题的研究吧,是当前国际国内的难点,CSDN有点承受不起,我们在关注着你的进展。

楼主真是贵人多忘事,我记得你提过你在上海。
yjh1982 2004-10-28
  • 打赏
  • 举报
回复
惭愧,题目都看不懂....
ireneki 2004-10-28
  • 打赏
  • 举报
回复
太平洋:真是一针见血,对的,显示应该不难,难是难在三位数据的获取。就是头痛这个。近景测量?不懂得。你们那里真厉害,我们这里根本没实验室,像是搞纯理论的,又要做出程序。哎,熬得辛苦啊。
http://graphics.shu.edu.cn/paper/reconstruction/3dr01.htm看了这篇文章,觉得血管三维重建是不是和这个类似。
1)图像分割和边缘检测
2)根据透视投影基本定律反求出图像轮廓(这个不是和我们看的那篇说的类似http://cnwyy.vip.myrice.com/3DReconstruction.pdf )
3)建立三维模型(文章中没有说明),进行显示。
问题就是三维模型构建。

闲话:上海话啊~~~没什么好听的呀。平时我是说普通话得多,接触的同学大都不是上海的。太平洋就是厉害连我是上海的都知道啊。
syy64 2004-10-28
  • 打赏
  • 举报
回复
楼主给我们讲几句上海话吧,让我们也学学,很惭愧没去过上海。
syy64 2004-10-28
  • 打赏
  • 举报
回复
其实你的问题的实质是如何获取影像的三维数据,而三维显示应该不难。
一般获取三维数据的方式是在立体方式下,你知道近景测量吗?就是那种为了恢复古建筑的原貌所作的工作,那也是通过两台摄影机对同一点进行拍摄,然后后处理来恢复它们的空间关系,既而获取每一个点的三维坐标,它的前提是两张照片需要一定的重叠,这样才能恢复它们的空间关系,我觉得你的问题跟这个有点相似。
我们这儿目前在进行三维录像和三维回放的工作,就是通过立体摄像机排摄物体,然后利用opengl进行立体三维回放。还在进行三维立体显微镜工作,就是在显微镜上安装立体CCD相机,对影像进行立体摄像,然后立体三维回放。
I_Love_CPP 2004-10-28
  • 打赏
  • 举报
回复
可以建立一个3维的矩阵!呵呵。。。我没有用OPENGL做过。帮你顶一下。
ireneki 2004-10-28
  • 打赏
  • 举报
回复
自己先顶
ireneki 2004-10-28
  • 打赏
  • 举报
回复
或者谁能给点建议关于建模,实体是:三维血管 ,模型化

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧