Effacer les filtres
Effacer les filtres

How can find area of the dent detected?

3 vues (au cours des 30 derniers jours)
vijendra sn
vijendra sn le 3 Sep 2014
Commenté : Image Analyst le 12 Oct 2021
Hi, i have already found the dent in the laminates but i need find the area of the dent
please help me on this
  2 commentaires
Samadhan Kshirsagar
Samadhan Kshirsagar le 12 Oct 2021
by which method you have found dent?
Image Analyst
Image Analyst le 12 Oct 2021

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 3 Sep 2014
You forgot to attach your image. All I can suggest then is to run my Image Segmentation Tutorial: http://www.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial---blobsdemo--
  12 commentaires
vijendra sn
vijendra sn le 15 Sep 2014
Modifié(e) : Image Analyst le 15 Sep 2014
My Matlab version is 7.10.0.499(2010a).
Image Analyst
Image Analyst le 15 Sep 2014
Please upgrade. What happens when you say "which bwconvhull"?

Connectez-vous pour commenter.

Plus de réponses (1)

vijendra sn
vijendra sn le 22 Sep 2014
Hi,
i used bwconvhull function...how to analyze this function but still i couldn't get how to find area of the these dent detected. There are 9 dent area detected.
How to find the area of the 1 pixel in image
close all;
clear all;
clc;
A = imread('DSC_0977.jpg');
B = rgb2gray(A);
hx = fspecial('sobel');
hy = hx';
Iy = imfilter(double(B), hy, 'circular');
Ix = imfilter(double(B), hx, 'circular');
gradmag = sqrt(Ix.^2 + Iy.^2);
k=figure(1),imshow(gradmag,[]);
set(k, 'visible','off');
filename = 'temp_file.jpg';
saveas(k, filename);
i1 = imread(filename);
delete(filename);
[x, y, rgb] = ind2sub([size(i1,1) size(i1,2) size(i1,3)], find(i1 ~= 255));
C = i1(min(x):max(x)-1,min(y):max(y)-1,:);
C = rgb2gray(C);
I = edge(C,'sobel');
I = imcrop(I,[10 7 920 725]);
I = imresize(I,[3250 3500]);
f=figure(3),imshow(I);
set(f, 'visible','off');
imwrite(I, filename);
bw = imread(filename);
delete(filename);
bw1 = bwareaopen(bw,750);
bwfill = imfill(bw1,'holes');
boundary = bwboundaries(bwfill);
figure(2),imshow(I),hold on;
[row1,dim]=size(boundary);
for k = 1:row1
x1= boundary{k};
h = plot(x1(:,2),x1(:,1),'c','LineWidth',1);
bw2 = bwconvhull(boundary{k});
[label,Total]=bwlabel(bw2);
measurements = regionprops(label,'Area');
allareas(k,1)= [measurements.Area];
end

Community Treasure Hunt

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

Start Hunting!

Translated by