如何使用冲浪在Matlab中绘制高度信息?

时间:2017-03-18 15:38:41

标签: image matlab tiff contour

我已经将TIFF图像中的纬度,经度和高度信息获取到Matlab中,并使用surfc函数作为surfc(X,Y,Z)绘制它。

surfc输出:

surfc output

树的形象: image of tree

但是如何让Z显示为与图像中对象的高度相对应的轮廓(像锥形)

感谢您的回答

2 个答案:

答案 0 :(得分:0)

如果您使用plot3

作为笛卡尔坐标的pionts
plot3(X,Y,Z,'.');

如果X和Y是自变量而Z是从属变量(给定X和Y的相应高度),那么使用surfmesh

surf(X,Y,Z);
mesh(X,Y,Z);

否则请提供一些数据样本和结果,以便我们更好地了解您的问题。

编辑:您实际上是在获取等高线图,但surfc也应该绘制曲面。 看一下surfc的{​​{3}},你会看到它在一个图中组合了两个图(表面和轮廓)

[X,Y,Z] = peaks(30);
figure
surfc(X,Y,Z)

documentation

答案 1 :(得分:0)

您可以更改冲浪的颜色映射。示例:

$(function() { //this is a shortcut for "run this code when document is ready"
    $("#search").autocomplete({
        source: function (request, response) {
            var search = $("#search").val().trim();
            var resultsToReturn = 5;
            var module;
            if ($('#ddlEntity').val() === "") {
                module = 0;
            } else {
                module = $('#<%= ddlEntity.ClientID %> option:selected').val();
            }
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "/Code/WebServices/Search.asmx/DoSearch",
                dataType: "json",
                data: '{"searchQuery":"' + search + '","module":"' + module + '","resultsToReturn":"' + resultsToReturn + '"}',
                success: function (data) {
                    response($.map(data.d, function (item) {
                        return {
                            entity: item.EntityType,
                            value: item.Summary,
                            url: item.EntityLink,
                            picture: item.PicturePath == null ? "/Images/noimagefound.png" : item.PicturePath
                        }
                    }));
                }
            });
        },
        minLength: 3,
        delat: 550,
        select: function (event, ui) {
            //log the search back to the database
            LogSearch(module, search, true);
            //end log search back to database

            //open the selected item
            window.open(ui.item.url, "_self");
        },
        open: function () {
        },
        close: function () {
        },
        error: function (xmlHttpRequest, textStatus) {
            alert(textStatus);
        },
        search: function () {
            $(this).addClass('autocompleteloading');
        },
        response: function () {
            $(this).removeClass('autocompleteloading');
        }
    }).data("ui-autocomplete")._renderItem = function (ul, item) {
        ul.addClass("addShadow");
        var face;
        if (item != null) {
            if (item.value.length > 50) {
                face = item.value.substr(0, 50) + '...';
            } else {
                face = item.value;
            }
            return $("<li>")
                .append("<a title='" + item.value + "' href='" + item.url + "'><div style='float:left;width:100%;'><div class='dPicture'><img width='48px' height='48px' src='" + item.picture + "' /></div><div class='dPicture'><div class='dPictureFields'><b>" + item.entity + "</b></div><div class='dPictureFields'>" + face + "</div></div></div><div class='clear-fix'></div></a></li>")
                .appendTo(ul);
        }
        return false;
    };
});

如果您的Matlab版本中没有clear;clc;close all tif4 = imread('RzwK3.tif'); THeight = rgb2gray(tif4(:,:,1:3)); imshow(THeight) x = 1:size(THeight,1); % can be changed to coordinates y = 1:size(THeight,2); [X,Y] = ndgrid(x,y); % make contour color on the surface M = 4; % # color in contour Cvec = parula(M); % any Mx3 RGB triplet hs = surf(X,Y,THeight,'EdgeAlpha',.1); colormap(Cvec) colorbar 或其他颜色生成功能,您可以手动分配parula。矩阵的每一行都是RGB颜色三元组,其值介于0和1之间(您可以将Web RGB颜色除以256)并且矩阵中应该有Cvec行。示例:以下是M的输出,可以通过替换代码行手动输入。

parula(4)

example output