2015-06-18 32 views
1

我嘗試選擇邊界,然後計算面積。我在這方面遇到了一些困難。這是我的原始圖像。使用Matlab計算圖像上中等大小的按鈕數量

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]); 

可以請你幫我算中等大小的按鈕數量?

+0

你想記下所有的按鈕嗎? – SamuelNLP

回答

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 
+0

我的解決方案對您有幫助嗎? – SamuelNLP