【问题标题】:How do I display a surf of an image in MATLAB?如何在 MATLAB 中显示图像的冲浪?
【发布时间】:2014-06-17 22:07:27
【问题描述】:

我有一张使用颜色显示图像深度的图像,其中较暖的颜色代表图像的较近部分,较冷的颜色代表较远的对象。我想将此图像表示为显示深度的冲浪图。我必须在 java 中执行此操作,但我认为在继续之前先在 Matlab 中理解该过程更容易。我尝试使用图像的大小并绘制它,但它一直给我错误。任何帮助将不胜感激。

我试过冲浪功能:

`img = imread('sample.png');
grayImage = rgb2gray(img);
surf(double(img))`

得到了这个错误:

>> surf 
Attempt to execute SCRIPT surf as a function:
C:\Users\kuchin\Documents\MATLAB\surf.m
Error in surf (line 3)
surf(double(img))

【问题讨论】:

    标签: matlab


    【解决方案1】:

    编辑

    正如您在本帖中的评论中所见,您的问题是您拥有的另一个 surf.m 文件覆盖了 surf 功能。不要使用与 Matlab 构建函数相同的名称来命名您的 matlab 文件。转到C:\Users\kuchin\Documents\MATLAB\surf.m 并将其命名为mysurf.m。它会解决你的问题。

    原帖

    如果你有一张只有双打的深度图像 (​​MxN)

    surf(img);
    

    如果它们是 uint8

    surf(double(img));
    

    会成功的。 测试代码:

    img=imread( 'coins.png' );
    surf(double(img))
    

    输出:

    【讨论】:

    • 我试过这个但我得到一个错误,这是我的输入:img = imread('sample.png'); grayImage = rgb2gray(img); surf(double(img)) 和我的输出和错误:>> surf 尝试将 SCRIPT surf 作为函数执行:C:\Users\kuchin\Documents\MATLAB\surf.m surf 中的错误(第 3 行) surf(double( img))
    • @user3748494 做 surf(double(grayImage));如果这不起作用,您可以张贴图片或图片链接吗?
    • @user3748494 mmm 问题是您提供的目录中有一个名为 surf.m 的 .m 文件,并且该文件覆盖了 Matlabs surf 函数。永远不要将您的 .m 文件命名为 maltab 函数!例如,如果您使用另一个函数(例如 surfc()),您会发现没有问题
    • 我没有足够的声望点来发布图片。我尝试了 surfc 功能,但也遇到了错误。我应该把它保存成什么来摆脱这个最重要的问题?
    • 啊,我才想通了,非常感谢Biguri先生!
    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多