三维重建 却生成了二维的图像 错误在网上没有找到解释
vtk吧
全部回复
仅看楼主
level 1
希栀静仔 楼主
错误写的是File operation failed. row = 0, Read = 867, Skip0 = 1, Skip1 = 0, FilePos = -1, FileName = D://bisheshuju//all biaoding//50p//dong5//dong5//000.bmp
但是在网上找到的类似错误下面都没有回复解决方法
T-T 或许有大佬可以给个方向 我可以自己去找找资料
2021年02月08日 11点02分 1
level 1
希栀静仔 楼主
代码是这样的
import vtk
# 定义渲染窗口、交互模式
aRender = vtk.vtkRenderer()
Renwin = vtk.vtkRenderWindow()
Renwin.AddRenderer(aRender)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(Renwin)
# 定义个图片读取接口
#读取PNG图片就换成PNG_Reader = vtk.vtkPNGReader()
Jpg_Reader = vtk.vtkBMPReader()
Jpg_Reader.SetNumberOfScalarComponents(1)
Jpg_Reader.SetFileDimensionality(3) # 说明图像是三维的
# 定义图像大小,本行表示图像大小为(512*512*240)
Jpg_Reader.SetDataSpacing(3.2, 3.2, 1.5)
Jpg_Reader.SetDataExtent(0, 289, 0, 289, 0, 240)
# 设置图像的存放位置
Jpg_Reader.SetFilePrefix("D://bisheshuju//all biaoding//50p//dong5//dong5//")
# 设置图像前缀名字
#表示图像前缀为数字(如:0.jpg)
Jpg_Reader.SetFilePattern("%s%03d.bmp")
Jpg_Reader.SetAllow8BitBMP(16)
Jpg_Reader.Update()
Jpg_Reader.SetDataByteOrderToLittleEndian()
# 计算轮廓的方法
contour = vtk.vtkMarchingCubes()
contour.SetInputConnection(Jpg_Reader.GetOutputPort())
contour.ComputeNormalsOn()
contour.SetValue(0, 175)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(contour.GetOutputPort())
mapper.ScalarVisibilityOff()
actor = vtk.vtkActor()
actor.SetMapper(mapper)
renderer = vtk.vtkRenderer()
renderer.SetBackground([0.1, 0.1, 0.5])
renderer.AddActor(actor)
window = vtk.vtkRenderWindow()
window.SetSize(512, 512)
window.AddRenderer(renderer)
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(window)
# 开始显示
window.Render()
interactor.Initialize()
interactor.Start()
2021年02月08日 13点02分 2
level 1
希栀静仔 楼主
使用的是python vtk
2021年02月08日 13点02分 3
level 12
好好调参数 参数不对
2021年02月09日 00点02分 4
不好意思 又要来打扰一下了 T-T 代码中的参数就这几个 我控制变量调了一下 还是同样的错误 Jpg_Reader.SetNumberOfScalarComponents(1) Jpg_Reader.SetFileDimensionality(3) # 说明图像是三维的 Jpg_Reader.SetDataExtent(0, 289, 0, 289, 0, 208) ([0.1, 0.1, 0.5])
2021年02月09日 05点02分
@希栀静仔 Jpg_Reader.SetDataSpacing(2, 2, 2) contour.SetValue(0, 50) renderer.SetBackground([0.1, 0.1, 0.5]) window.SetSize(289, 289) 感觉参数没什么错啊 T-T
2021年02月09日 05点02分
level 12
Jpg_Reader.SetAllow8BitBMP(16)
这个16改下试试
2021年02月09日 05点02分 5
改成8试了一下 还是一样的错误
2021年02月09日 05点02分
level 1
希栀静仔 楼主
改了一下体素的高度 变成了这样 有点怀疑是不是图片读取的问题 但是设置应该是没问题的啊 T-T
2021年02月09日 05点02分 6
level 12
很大概率是读取进来之后的参数设置
这个有时候还挺烦
2021年02月09日 08点02分 7
好的 谢谢T-T
2021年02月09日 11点02分
1