使用Matlab计算图像上的中等大小按钮的数量

时间:2015-06-18 15:49:22

标签: matlab image-processing object-recognition

我尝试选择边框,然后计算面积。 Вut我遇到了一些困难。这是我原来的形象。

enter image description here

在对原始图像进行一些处理之后,我获得了这张图片:

enter image description here

这是我的代码:

    clear;
    I=imread('C:\Users\Sashka\Desktop\calculator.jpg');
    i=rgb2gray(I);
    background = imopen(i,strel('disk',20));
    im=histeq(background, 64);
    uns=fspecial('unsharp') ;  
    uns1=imfilter(im, uns);
    bw = im2bw(uns1,0.3); 
    bw2=bwmorph(bw, 'close', Inf);
    bw3=bwmorph(bw2, 'majority', Inf);
    bw4=bwmorph(bw3, 'erode', 18);
    c=[30 30 440 440];
    r=[480 680 680 480];
    bw5=bwselect(bw4,c,r,4);
    I2=imcrop(bw5, [30 25 1300 1090]);

你能帮我算一下中号按钮的数量吗?

1 个答案:

答案 0 :(得分:0)

只需使用regionprops并定义所需按钮的最大或最小区域的阈值,例如:

您的代码加上......

original = imcrop(i, [30 25 1300 1090]);

L_Measurements = regionprops(~I2, original, 'all');

threshold = 40000;
Areaofbuttons = cell2mat({L_Measurements.Area}');
numberOfButtons = sum( Areaofbuttons > threshold)

例如,

numberOfButtons =

     9