필터 지우기
필터 지우기

cannot identify all circles in car tyre

조회 수: 1 (최근 30일)
Ayush
Ayush 2016년 10월 12일
편집: Ayush 2016년 10월 12일
i am trying to separate radial of a car tyre, i have made the following code. it identifies the inside portion of tyre and it cannot detect out the outer portion.
my image
resultant image
my code is
if true
% code
close all;
clear;
clc;
rgb = imread('C:\Users\Ayush\Desktop\MATLAB SEP 30\images\vertical1.jpg'); figure imshow(rgb) % d = imdistline; gray_image = rgb2gray(rgb);
bw = imbinarize(gray_image); imshow(bw)
% remove all object containing fewer than 30 pixels bw = bwareaopen(bw,30);
% fill a gap in the pen's cap se = strel('disk',2); bw = imclose(bw,se);
% fill any holes, so that regionprops can be used to estimate % the area enclosed by each of the boundaries bw = imfill(bw,'holes');
imshow(bw) [B,L] = bwboundaries(bw,'noholes');
% Display the label matrix and draw each boundary imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) end stats = regionprops(L,'Area','Centroid');
threshold = 0.94;
% loop over the boundaries for k = 1:length(B)
% obtain (X,Y) boundary coordinates corresponding to label 'k'
boundary = B{k};
% compute a simple estimate of the object's perimeter
delta_sq = diff(boundary).^2;
perimeter = sum(sqrt(sum(delta_sq,2)));
% obtain the area calculation corresponding to label 'k'
area = stats(k).Area;
% compute the roundness metric
metric = 4*pi*area/perimeter^2;
% display the results
metric_string = sprintf('%2.2f',metric);
% mark objects above the threshold with a black circle
if metric > threshold
centroid = stats(k).Centroid;
plot(centroid(1),centroid(2),'ko');
end
text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...
'FontSize',14,'FontWeight','bold');
end
end

답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by