フィルターのクリア

how can i count the number of circles with random centers and fixed diameters.

4 ビュー (過去 30 日間)
I want to get a plot of size of circles(pixels) vs. their numbers. Example 10 of 20 pixels, 15 of 10 pixels size etc.. the background should be contrast of intensity of the circles..
  3 件のコメント
Image Analyst
Image Analyst 2012 年 12 月 3 日
Someone added this as a tag. It's not appropriate for a tag so I'm moving it here: http://www.mathworks.com/matlabcentral/answers/24609-counting-the-pixels-within-a-circle-detected-in-an-image
amrutha Priya
amrutha Priya 2012 年 12 月 4 日
I did rgb to gray and counted the number of circles using the code below. but im not getting histogram of different circles. ie. size of circles vs. their number. Can u help me? Im unable to upload the image here. but the image has 45 circles with three different sizes.
path='C:\Users\Divya Bandi\Desktop\Hepatic steatosis\circles.jpg';
img=imread(path);
imshow(img);
img1=rgb2gray(img);
subplot(3,1,1);
imshow(img1);
img2=im2bw(img1,graythresh(img1));
subplot(3,1,2);
imshow(img2)
img2=~img2;
subplot(3,1,3);
imshow(img2);
B = bwboundaries(img2);
subplot(3,2,1)
imshow(img2)
text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)
end

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2012 年 12 月 3 日
編集済み: Image Analyst 2012 年 12 月 4 日
See my Image Segmentation Tutorial. It determines the size distribution of circles (coins). http://www.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial-blobsdemo You just need to call bar() to display them.
You might also try imfindcircles() in the Image Processing Toolbox, or see Brett's demo: http://www.mathworks.com/matlabcentral/fileexchange/34365-findcirclesgui
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
format longg;
format compact;
fontSize = 20;
% Get centroid via bwboundaries and incorrect method.
rgbImage = imread('D:\Temporary stuff\welcome-green-circles-layout.jpg');
subplot(2, 2, 1);
imshow(rgbImage);
title('Original Image', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% Get centroid correctly via regionprops
binaryImage = rgbImage(:,:,1) < 200;
subplot(2, 2, 2);
imshow(binaryImage);
title('Binary Image with Centroids', 'FontSize', fontSize);
hold on;
measurements = regionprops(binaryImage, 'Centroid', 'Area');
numberOfCircles = length(measurements);
allAreas = [measurements.Area]
for k = 1 : numberOfCircles
centroid = [measurements(k).Centroid];
xCenter = centroid(1);
yCenter = centroid(2);
plot(xCenter, yCenter, 'b+');
end
[counts values] = hist(allAreas);
subplot(2, 2, 3);
bar(values, counts);
grid on;
title('Histogram of Areas (the size distribution)', 'FontSize', fontSize);
message = sprintf('The number of circles is %d', numberOfCircles);
msgbox(message);

その他の回答 (0 件)

タグ

タグが未入力です。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by