最近需要紧急用到OpenGL写一个作业,学习了一段时间,我现在想做的是通过纹理贴图的形式把已经生成的dicom图片(c++库没有编译好,所以用了dcm4che转化的)贴到图形上,然后z轴叠加,形成三维效果。
对于教程中的图片生成纹理没有问题,(使用stbi_load加载图片)可是当换成我自己的图片的时候,已经生成的图片如下:
纹理编程全黑了,我感觉这过程中可能有几步存在问题。
首先长宽都可以读出,nrChannels为1(可能是灰度图),尝试修改源数据类型为GL_LUMINANCE8,失败了
路径问题好解决,查看一下就行,排除。生成图片的格式这个问题很迷,由于stbi_load返回错误no SOI,我想着是不是dcm4che生成的jpg和stbi_load要求的格式不一致,或者说不标准?我就尝试了生成png格式的图片,结果也是失败(而且对于两个png图片,都返回no SOI,但是只有我生成的图片是全黑。。)。
我于是尝试使用dcmtk直接读取dicom中的图像数据,然后把这个数据塞到glTexImage2D的data中,结果有点成效,如下图:
但是无论我怎末修改参数图片依旧这样(可能还有一些修改方式没想到?)
打算使用cximage和dcmtk,但是很不幸,cximage编译失败。。。所有努力到此为止。
我有点迷,不知道哪里出现的问题,当然也不知道怎末解决,有没有大佬指出问题出在哪里或者帮我调试一下bug,留言或者qq(2279633462)均可,很急,感谢!