丸みを計算するためのこのコードがあります
I = imread('http://energyfanatics.com/wp-content/uploads/2008/05/banana.jpg');
%I = imread('http://www.nyapplecountry.com/images/photosvarieties/redrome04.jpg');
pic = rgb2gray(I);
threshold = graythresh(pic);
bw = im2bw(pic,threshold);
fbw = ones(size(bw))-imfill(ones(size(bw))-bw);
invImg = ~fbw;
imshow(invImg);
f = bwlabel(invImg);
S = regionprops(f,'Area','Perimeter','centroid');
res = (min(sqrt([S.Area]),[S.Perimeter]/4)./(max(sqrt([S.Area]), [S.Perimeter]/4))).^2;
私の問題は、バナナの写真を使用するとスコアに複数の値が含まれますが、リンゴの他の写真を使用すると値が1つしか得られないことです。問題は、取り残されたノイズにあります。sobel のようないくつかのエッジ検出方法を使用しようとしていましたが、エッジ検出を白黒画像と組み合わせることができません。
だから私の質問は、果物の端をどのように検出して、果物全体を取得し、ノイズを取り除く方法です。フルーツの丸みを出したいだけです。