2017-04-09 71 views
0

私は紙の上で作業していますが、私が付けた画像から黒色の領域を見つける必要があります。MATLABでの面積計算

Original image

Iは、閾値を用いて画像を賞賛することによって、いくつかの処理を行っています。 Processed image 今、私は黒色の領域の領域を見つけるのに問題があります。誰かが助けてくれますか?私はMATLABを初めて使っています。ここで

が私のコードです:

img1=imread('C:/Users/Allan/Desktop/unnamed1.jpg'); 
imshow(img1) 

img1=rgb2gray(img1); 
imshow(img1) 

img2=im2bw(img1,graythresh(img1)); 
imshow(img2) 

img2=~img2; 
imshow(img2) 

B = bwboundaries(img2); 
imshow(img2) 
hold on 

for k = 1:length(B) 
boundary = B{k}; 
plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2) 
end 
+0

あなたはあなたのコードが何をやっていない方法についての詳細を与えることができますそれを期待する?エラーや間違った出力を引き起こしますか? –

+0

いいえ、間違いはありません!それは元のイメージを、私が付けた処理済みのイメージに変換するだけです。だから私はどのように黒色の領域の領域を見つけることができます知っておく必要があります。 – Allan

+0

@AlSweigart質問の両方の画像のリンクを提供しました。 – Allan

答えて

0

使用regionpropsまたはbwarea

% take the NOT image 
bw = ~img2; 
% find individual regions 
cc = bwconncomp(bw); 
% find area for each black region 
props = regionprops(cc,{'Area','Centroid'}); 
regionArea = [props(:).Area]; 
% find area of total black region 
totalArea = bwarea(bw); 
% plotting 
for ii = find(regionArea > 100) 
    c = props(ii).Centroid; 
    text(c(1),c(2),num2str(regionArea(ii)),'Color','b',... 
     'HorizontalAlignment','center','VerticalAlignment','middle',... 
     'FontWeight','bold'); 
end 

enter image description here

+0

ありがとうございます! – Allan

+0

ありがとう@ user2999345それは働いた。 – Allan

関連する問題