Matlab -搜索bwboundaries()返回的边界内的特定坐标点

beq87vna  于 2023-01-09  发布在  Matlab
关注(0)|答案(1)|浏览(233)

我试图搜索一个特定的坐标点(我想要边界中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?
欢迎任何帮助,如果我不清楚请告诉我!

9fkzdhlc

9fkzdhlc1#

不要用界限来衡量。
p = img_cutB_filled(328,:)是要查找中第一个和最后一个像素的行。find(p,1,'first')返回第一个像素的索引,find(p,1,'last')返回最后一个像素的索引。这两个点是要查找的。

相关问题