我想获得一个n * m矩阵,其近似值为#34;高度"在每个离散点。输入是来自地图的轮廓的图片(参见下面的链接),每个轮廓线表示高度增加或减少5米。
我的想法:
A
的矩阵中,这意味着矩阵中的每条轮廓线都是一条连接的条带,其他一切只有0。 / LI>
height(:,1)
。在A
矩阵中。知道我现在每行的第一个整个行,从左边开始,每次我们遇到一个'时加5米。 答案 0 :(得分:2)
正在进行中
%% Read and binarize the image
I=imread('https://i.stack.imgur.com/pRkiY.jpg');
I=rgb2gray(I);
I=I>graythresh(I)*255;
%% Get skeleton, i.e. the lines!
sk=bwmorph(~I,'skel',Inf);
%% lines are too thin, dilate them
dilated=~imdilate(sk, strel('disk', 2, 4));
%% label the image!
test=bwlabel(dilated,8);
imshow(test,[]); colormap(plasma); % use colormap parula if you prefer.
缺失:用邻居的数字+(或-1)标记每个相邻区域(不知道怎么做)
缺失:插入平坦区域。一旦知道高度,这应该是可行的。可以将骨架图像中的像素设置为高度,并使用griddata
插入其余部分,这将很慢,但仍然可行。
免责声明:尚未完整答案,请随时编辑或重复使用此答案中的代码进一步解答!