MATLAB中的形状识别

时间:2014-02-25 12:51:59

标签: matlab

伙计们想在matlab中编写一个基本代码来识别基本形状

已将.png图像转换为二进制,然后应用边缘检测(Canny) 接下来该做什么,以便我可以使用边缘检测图像来表明图像是圆形。

i = imread('h.png');
i= im2bw(i,0.5);
i=edge(i,'canny');
imshow(i);

接下来要做什么???

2 个答案:

答案 0 :(得分:1)

你可能应该了解hough transform

Matlab已经有了圆圈imfindcircles的功能(查看示例!)

答案 1 :(得分:0)

您可以尝试使用经过一系列形状训练的神经网络。 nn可以返回百分比精度,以便您可以看到它的效果如何。

function scan(img)
   files = dir('*.jpg');
   hist = [];
   for n = 1 : length(files)
     filename = files(n).name;
     file = imread(filename);

     hist = [hist, imhist(rgb2gray(imresize(file,[ 50 50])))]; %#ok
   end

   som = selforgmap([10 10]);
   som = train(som, hist);
   t   = som(hist); %extract class data

   net = lvqnet(10);
   net = train(net, hist, t);

   like(img, hist, files, net)
end

可以在图片中推荐到recognize shapes