我想找到一個圖像中的對象的總像素數。在matlab中找到感興趣對象中的總像素?
以下圖爲例。我想找出三角形中的像素總數。
我使用
imtool('test.jpg');
並使用measure distance
工具和手動發現的距離,從而求出三角形來計算該對象的總像素的區域中,在這種情況下三角形。
有沒有一種有效的方法呢?
我想找到一個圖像中的對象的總像素數。在matlab中找到感興趣對象中的總像素?
以下圖爲例。我想找出三角形中的像素總數。
我使用
imtool('test.jpg');
並使用measure distance
工具和手動發現的距離,從而求出三角形來計算該對象的總像素的區域中,在這種情況下三角形。
有沒有一種有效的方法呢?
這裏的一個方法:
img = imread('test.jpg');
thr = graythresh(img);
thr_img = im2bw(img,thr);
triangle_count = sum(sum(thr_img < thr))
就你而言,三角形中的像素數量似乎在1605037左右。
這裏是thr_img
可視化 - 二值圖像:
我預計這會更「可靠」一點。在Mathematica中,我用'ComponentMeasurements [ColorNegate [Binarize [f]],「Count」]得到1601845。沒有參數的'Binarize'使用Otsu,所使用的閾值可以通過'FindThreshold [f]'找到,它返回〜0.384314。另一方面,Matlab給出了閾值〜0.4039。爲了得到更接近的結果,首先需要將圖像轉換爲灰度('rgb2gray'),然後區別僅在於Matlab中使用的精度。 – mmgp 2013-02-12 20:22:32
對圖像進行二值化處理,然後使用bwconvhull
。 The bwconvhull
docs有一個很好的例子來說明如何做到這一點。
imgur被阻止在工作,所以我不能清楚地看到發生了什麼事情,但你可以找到邊緣和內計算面積有問題的我認爲 – 2013-02-12 19:35:30