How to capture the view in volshow as an image?

조회 수: 56 (최근 30일)
Lars Nelson
Lars Nelson 2023년 5월 9일
이동: Matt J 2023년 9월 14일
I have rendered a volume using volshow in viewer3d (shown below). I would like to save a capture of this view similarly to how I have taken a Windows screenshot below but without needing to use Windows screenshot so that I can automate my code to load in these volumes and output images of the desired view.
Print, saveas, and imsave do not seem to be working for this.

채택된 답변

Matt J
Matt J 2023년 5월 9일
편집: Matt J 2023년 5월 9일
  댓글 수: 2
Lars Nelson
Lars Nelson 2023년 5월 9일
Thank you! I'm still interested as to whether or not there's a way to create an image in a figure of the current view so that you could utilize MATLAB's normal image saving options. Is this function the only way you can think of to do this?
Matt J
Matt J 2023년 5월 9일
편집: Matt J 2023년 5월 9일
Yes. volshow is not part of the mainstream graphics system. I don't like it any more than you do.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2023년 5월 12일
I'm still interested as to whether or not there's a way to create an image in a figure of the current view so that you could utilize MATLAB's normal image saving options.
This example shows how to do so with getframe:
  댓글 수: 2
Lars Nelson
Lars Nelson 2023년 5월 12일
I also found a method by opening up a uifigure first and then placing the 3D viewer and volshow in that. That way you can use exportapp to capture an image.
Edmund Pickering
Edmund Pickering 2023년 9월 14일
이동: Matt J 2023년 9월 14일
I have this working with the following code.
% create viewer
viewer = viewer3d(BackgroundColor="white", GradientColor=[0.5 0.5 0.5],Lighting="on",BackgroundGradient="off");
% volshow
volBone = volshow(stack_(180:400,1:240,1179:1309)>250,'colormap',[214 184 150]/255,Parent=viewer);
% capture frame
frame = getframe(viewer.Parent);
If running in a loop, capturing succesive frames, I've found this helpful
viewer = viewer3d(...)
pause(5) % pause to give viewer time to fully open
for i = 1:...
viewer.clear % clear previous
pause(1) % pause to clear
volshow(...)
frame = getframe(viewer.Parent);
writeVideo(v,frame)
end

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 3-D Volumetric Image Processing에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by