Borrar filtros
Borrar filtros

How can find area of the dent detected?

3 visualizaciones (últimos 30 días)
vijendra sn
vijendra sn el 3 de Sept. de 2014
Comentada: Image Analyst el 12 de Oct. de 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 comentarios
Samadhan Kshirsagar
Samadhan Kshirsagar el 12 de Oct. de 2021
by which method you have found dent?

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 3 de Sept. de 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 comentarios
vijendra sn
vijendra sn el 15 de Sept. de 2014
Editada: Image Analyst el 15 de Sept. de 2014
My Matlab version is 7.10.0.499(2010a).
Image Analyst
Image Analyst el 15 de Sept. de 2014
Please upgrade. What happens when you say "which bwconvhull"?

Iniciar sesión para comentar.

Más respuestas (1)

vijendra sn
vijendra sn el 22 de Sept. de 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