我正在使用正确工作的Matlab代码(原始代码来自here),它使用Hough trnsform来检测基本形状,如圆形,方形和三角形。以下是重要的代码段。 / p>
[H, theta,rho]=hough(S);
H以上是Hough变换矩阵,S是形状的黑白图像。
for cnt = 1:max(max(H))
data(cnt) = sum(sum(H == cnt));
end
这是形状检测部分。
[maxval,maxind] = max(data);
medval = median(data);
[p]=polyfit(1:maxind-5,data(1:maxind-5),2);
if maxval<3*medval
set(handles.txtResult,'string','Triangle');
elseif p(3)>100
set(handles.txtResult,'string','Square');
else
set(handles.txtResult,'string','Round');
end
我可以理解&#34;数据&#34;(存储Hough Matrix强度频率)。我无法理解它用来检测形状的逻辑。 maxval<3*medval
和p(3)>100