我想写一个函数
[offset,coffset]=findLowNhbr(map) 对于map中的每个像素,查找像素的八个邻域,并返回两个矩阵,并将行和列偏移值返回到最低邻域(使用数字1、0和1)。边框像素被赋予行和列的0偏移量,因为它们没有邻居。
我认为这一职能的总体规划应该是:
我完全不知道从哪里开始,所以欢迎任何建议或问题!
发布于 2012-11-09 16:57:52
我不太明白你的意思,但这里有件事能让你在路上过得很好:
neighbors = cell(size(map));
for ii = 2:size(map,1)-1
for jj = 2:size(map,1)-1
% current element
M = map(ii,jj);
% extract neighbors
N = map(ii-1:ii+i, jj-1:jj+1);
% compare values and store
neighbors{ii,jj} = M<N - M>N;
end
end这将导致单元格数组neighbors,它包含与map相同数量的元素,但每个条目如下所示:
>> neighbors{2,3}
ans =
0 -1 1
1 0 -1
1 0 -1它是像素(2,3)的所有邻居的信息。
发布于 2012-11-09 16:38:50
编辑:假设map_original是您的原始地图,那么您可以将inf添加到地图的所有方面。
map=inf(size(map_original)+2)
map(2:end-1,2:end-1) = map_original假设您已经在地图的各个方面填充了infs,下面是一些可以让您开始的东西:
area =-1:1;
for i=2:size(map,1)-1
for j = 2:size(map,2)-1
bestfound=inf;
bestk=0;
bestl=0;
for k = area
for l=area
if k~=0 && l~=0就像我说的,这只会让你开始!
https://stackoverflow.com/questions/13311848
复制相似问题