5

ぶどうと3つの円(赤、緑、青)だけで画像を取得したい。[すべての塗抹標本を取り除く必要があります]。そのためにコードを改善するにはどうすればよいですか?

これは私のコードです:

RGB = imread('img_3235.jpg');
GRAY = rgb2gray(RGB);

threshold = graythresh(GRAY);
originalImage = im2bw(GRAY, threshold);

originalImage = bwareaopen(originalImage,250);

imshow(originalImage);

CC = bwconncomp(originalImage); %Ibw is my binary image
stats = regionprops(CC,'pixellist');

これは私の画像(img_3235.jpg)です。 ここに画像の説明を入力してください

これは私のコードの結果です: ここに画像の説明を入力してください

4

2 に答える 2

11

を使用して、形態学的クロージングを実行できますIMCLOSE

se = strel('disk', 10); %# structuring element
closeBW = imclose(originalImage,se);
figure, imshow(closeBW);

BによるAの閉鎖は、BによるAの拡張と、それに続くBによる結果として生じる構造の侵食によって得られます。

結果

于 2012-10-10T13:41:38.747 に答える
7

別の解決策は、しきい値が適用された直後に、適切なウィンドウサイズでフィルターの中央値を設定することです。

 ...
 originalImage = im2bw(GRAY, threshold);
 originalImage = medfilt2(originalImage,[37 37],'symmetric'); 
 originalImage = bwareaopen(originalImage,250);
 figure, imshow(originalImage);

ここに画像の説明を入力してください

于 2012-10-10T15:23:00.227 に答える