【问题标题】:MATLAB imshow for 3D color imageMATLAB imshow 用于 3D 彩色图像
【发布时间】:2016-04-28 02:47:20
【问题描述】:

我有一个大小为 [200x200x200] 的医学成像矩阵。

为了显示它,我目前正在使用imshow3D 函数,这是一个很好的工具,由 Maysam Shahedi 构建。 此工具逐个切片显示 3D 图像,并通过鼠标进行切片浏览

在我当前的项目中,我从原始输入图像为每个 z 层生成一个 RGB 图像。输出是大小为 [200x200x200x3] 的 3D 彩色图像(现在每层由 3 个通道表示)。

imshow3D 函数在灰度图像上效果很好。是否可以用它来显示RGB图像?

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见答案和垃圾邮件。取而代之的是describe the problem 以及迄今为止为解决它所做的工作。

标签: matlab image-processing


【解决方案1】:

我从 Matlab FileExchange 中查看了这个漂亮的 imshow3D function,将其更改为允许处理一堆 RGB 图像非常简单。

函数的神奇部分是

imshow(Img(:,:,S))

显示图像Img 的切片S。我们可以简单地将其更改为Img(:,:,S,:),以显示图像S 的所有3 个通道。结果的大小为 200×200×1×3,而 MATLAB 预计 RGB 图像的大小为 200×200×3时间>。只需squeeze此图像即可获得正确的尺寸。这导致:

imshow(squeeze(Img(:,:,S,:))

所以要显示 RGB 图像,请在函数 imshow3D 内执行 搜索和替换,将所有出现的 Img(:,:,S) 替换为 squeeze(Img(:,:,S,:)),这样就可以了!

【讨论】:

  • @drorco 我建议向 Maysam 发送消息,将其添加为潜在的功能请求。检测图像中有多少维度,相应地调整imshow 命令。这似乎是一个非常有用的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2014-12-31
  • 2012-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多