2013-04-18 38 views
1

以字符'B','M'或數字'1','2'作爲圖像。
我必須找出這個字符或數字的長寬比。
我沒有得到正確的值,這是我的代碼:如何查找圖像的寬高比

E = imread('1.jpg'); 
level = graythresh(E); 
BW = im2bw(E,level); 
[m,n]=size(BW); 
AR=m/n 

enter image description here

+0

相關(不復制)問題:[統計圖像中前景和背景像素數量](http://stackoverflow.com/questions/16055949/count-the-number-of-foreground-and-background-像素在圖像中) – Shai

回答

5

你需要採取的字符的邊界框的縱橫比

s = regionprops(BW, 'BoundingBox'); 
AR = s.BoundingBox(4)/s.BoundingBox(3); 

見doc的regionprops'BoundingBox'中的值。

+0

我得到錯誤「在調用regionprops之前,使用bwlabel(BW)或double(BW)將二進制圖像轉換爲 標籤矩陣。」之後我使用L = bwlabel(BW); s = regionprops(L,'BoundingBox');然後我得到錯誤行AR = s.BoundingBox(4)/ s.BoundingBox(3) – aryan

+0

@aryan你得到一個錯誤,可能是因爲你有'BW'多個連接組件。使用與我在上一個問題的答案中使用的相同的循環。或者,使用'double(BW)'確保將所有'1'像素作爲同一個對象(在您的示例中,這看起來像首選方法)。 – Shai

+0

我使用** double(BW)**,我得到了結果。非常感謝你.. – aryan