【问题标题】:How can I return an image in an M-file? (MATLAB)如何返回 M 文件中的图像? (MATLAB)
【发布时间】:2011-10-03 07:54:41
【问题描述】:

我的函数文件以function drawline(point1,point2,color,img) 开头。最后,我应该返回一个图像。如何编码返回线?

我在另一个 Stack Overflow 问题中发布了代码,Color issue in MATLAB

【问题讨论】:

  • 由于您删除了包含代码的链接问题,因此此问题现在对未来的访问者毫无意义且无用。
  • 很抱歉。我刚刚添加了链接。

标签: image function matlab


【解决方案1】:

在您的代码中,您应该返回 img 变量,因为这是您正在修改的变量,而不是 image 变量,它不存在。

此外,由于 MATLAB 中的所有基本类型(有效地)通过值而不是引用传递,因此您需要分配输出参数以获取任何返回值。使用以下函数调用:

[img] = drawline(p1,p2,color,img);

编辑:您的函数应如下所示:

function img = drawline(p1,p2,color,img)
...
% code that updates IMG.
...

然后在命令窗口中你必须写

[img] = drawline(p1,p2,color,img);

关于 MATLAB 函数的介绍可以在这里找到:http://www.mathworks.co.uk/help/techdoc/learn_matlab/f4-2525.html

【讨论】:

  • 所以实际上我可以拿走输出参数 [image]?我的问题是我不知道如何返回。就像,我在命令窗口中声明了两个点,颜色和 img 大小。但是当我输入 'drawline(a,b,color,img)' 时,我看不到图形出来。我怀疑我是否没有返回导致问题发生的函数文件中的图像。
  • 我想我明白了。太感谢了!!真诚的。
【解决方案2】:

您无需编写返回行,只需定义函数使其返回图像即可:

function [ Image ] = drawline( point1,point2,color,img )
    ...
    function_instructions
    ...
end

重要的是您将图像存储在 Image 变量中。

在调用函数drawline的脚本中,你应该使用这种语句:

 [ Image ] = drawline( point1,point2,color,img ); 

如果您在 matlab 图像处理方面需要一些帮助,请查看以下内容:

【讨论】:

  • Matlab 不使用花括号作为开始/结束
  • 它的伪代码,而不是确切的代码。如果我用大括号代替 end 命令,它会发生什么变化。花括号对我来说似乎很清楚。尤其是你的陈述与答案无关
  • 我需要在函数指令的末尾添加'return'吗?我在命令窗口中测试过,但是输入'drawline(a,b,color,img)'后,什么都没有出来。是我输入了错误的命令吗?
  • @Ivy:你不应该使用 return 命令。只需将您在函数中创建或处理的图像存储在变量 Image 中即可。
  • 我执行并出现错误'???在调用“C:\Documents and Settings\student\xdd\drawline.m (drawline)”期间未分配输出参数“image”(可能还有其他参数)。 ',这是什么意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多