我试图搜索一个特定的坐标点(我想要边界中y =常量的所有坐标的x值),因为从bwboundaries()返回的变量很奇怪,所以我在实现算法时遇到了很多困难。
以下是我目前掌握的情况:
[B,L] = bwboundaries(img_cutB_filled,8,'noholes'); %Get boundaries from image 'img_cutB_filled'
for k = 1:length(B)
boundary = B{k};
ind=find(boundary(:,2)==y_middle_right); %find indices of coordinate points which y=constant
x_middle_right=min(boundary(ind,1)); %get x value
if(isempty(x_middle_right))
x_middle_right=1; %if no coordinate found set x to 1
end
plot(x_middle_right,y_middle_right,'r.', 'MarkerSize',20,'LineWidth',5);
end
我得到的只是毫无意义的x值,例如,对于y = 328,我得到了以下边界:As you can see there are two points with y=328
我得到:
A x value of 20?
欢迎任何帮助,如果我不清楚请告诉我!
1条答案
按热度按时间9fkzdhlc1#
不要用界限来衡量。
p = img_cutB_filled(328,:)
是要查找中第一个和最后一个像素的行。find(p,1,'first')
返回第一个像素的索引,find(p,1,'last')
返回最后一个像素的索引。这两个点是要查找的。