matlab中判断圆形和矩形

if (max_distance - min_distance)<= 15 && (max_y - min_y) <= 15
text(mean_pixel(1,1),mean_pixel(1,2),sprintf('圆形 %d',i))
elseif num_peaks(1) == 2
text(mean_pixel(1,1),mean_pixel(1,2),sprintf('三角形 %d',i))
else
text(mean_pixel(1,1),mean_pixel(1,2),sprintf('矩形 %d',i))
end
end
请问这个是如何判断的,我不太清楚

距离判断的啊。最大最小距离不超过15并且y上下值不超过15就判断为圆,或者num_peaks(1) == 2判断为三角形,剩下的为判断为矩形,这个只能针对特定的图像使用,无法用在所有的图像