Crack Detection

9 Ansichten (letzte 30 Tage)
Dio Donaika
Dio Donaika am 13 Jun. 2012
Kommentiert: Walter Roberson am 7 Jul. 2016
I have problem for detection for surface ceramics image, how i can detect crack surface , pls give me some advice. this my code for detect crack surface
function [img1_array, img2_array,img3_array, img4_array,Zme]= DefectScan(input_path,input_path2);
% clear all;
% close all;
I = imread(input_path2);
J = imread(input_path);
I = rgb2gray(I);
J = rgb2gray(J);
% f=figure,imshow(I);
% g=figure,imshow(J);
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
ey = fspecial('sobel');
fx = ey';
Jy = imfilter(double(J), ey, 'replicate');
Jx = imfilter(double(J), fx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
gradmag2 = sqrt(Jx.^2 + Jy.^2);
K=figure,imshow(gradmag,[]);
L=figure,imshow(gradmag2,[]);
set(K, 'visible','off');
set(L, 'visible','off');
filename = 'temp_file.jpg'
filename2 = 'temp_file2.jpg'
saveas(K, filename)
saveas(L, filename2)
i1 = imread(filename)
i2 = imread(filename2)
delete(filename)
delete(filename2)
[x, y, rgb] = ind2sub([size(i1,1) size(i1,2) size(i1,3)], find(i1 ~= 255));
A = i1(min(x):max(x)-1,min(y):max(y)-1,:);
[x, y, rgb] = ind2sub([size(i2,1) size(i2,2) size(i2,3)], find(i2 ~= 255));
B = i2(min(x):max(x)-1,min(y):max(y)-1,:);
A = rgb2gray(A)
B = rgb2gray(B)
I = edge(A,'sobel')
J = edge(B,'sobel')
  3 Kommentare
Walter Roberson
Walter Roberson am 16 Jun. 2012
"We're sorry but you do not have access to this page"
Dio Donaika
Dio Donaika am 16 Jun. 2012
im sory this question not for u i mean for all, i really sory

Melden Sie sich an, um zu kommentieren.

Antworten (4)

Dio Donaika
Dio Donaika am 16 Jun. 2012
this link picture : http://i1164.photobucket.com/albums/q570/diodonaika/1.jpg my code just detect pinhole like this http://i1164.photobucket.com/albums/q570/diodonaika/0674.jpg i want to detect crack from tile, need for help ...
  5 Kommentare
Walter Roberson
Walter Roberson am 16 Jun. 2012
I see some slanted lines that are fairly straight, but those look to me like scratches rather than cracks.
I see a number of areas that are raised, but possibly the places that appear lower are instead filled with something that is optically transparent and the tile overall has a flat surface.
Could you perhaps post the images 1 and 2 again, with cracks pointed out with marks?
Dio Donaika
Dio Donaika am 22 Jul. 2012
Im soory to late, because i just have the data from my senior this image crack http://i1164.photobucket.com/albums/q570/diodonaika/diodo.jpg and i have done detect the crack http://i1164.photobucket.com/albums/q570/diodonaika/diodo2.jpg
this my code I = imread('diodo.jpg');
I = rgb2gray(I);
% f=figure,imshow(I);
% g=figure,imshow(J);
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
K=figure,imshow(gradmag,[]);
set(K, 'visible','on');
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));
A = i1(min(x):max(x)-1,min(y):max(y)-1,:);
A = rgb2gray(A)
I = edge(A,'sobel')
%934 742
I = imcrop(I,[10 7 914 728]);
I = imresize(I, [2000 2500])
f=figure,imshow(I);
set(f, 'visible','on');
imwrite(I, filename)
bw = imread(filename)
delete(filename)
bw = im2bw(bw, graythresh(bw))
bw = bwareaopen(bw,65);
set(f, 'visible','on');
f, imshow(bw)
What do i do next to calculate crack in centimeter ? please help me

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 22 Jul. 2012
"What do i do next to calculate crack in centimeter ?" Well, what is the size of your field of view in cm? Let's say it's 30 cm and your image width is 1000 pixels. Then your calibration factor is 30/1000 cm per linear pixel, or 30^2/1000^2 cm^2 per pixel area. So just multiply your pixel lengths or areas by those factors to get the results in cm or cm^2.
  8 Kommentare
Dio Donaika
Dio Donaika am 27 Aug. 2012
is there another way to detect defects in the image that I have. My method was rejected by the faculty, can you help me what I should do in order to identify the image
Dio Donaika
Dio Donaika am 27 Aug. 2012
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'black', 'LineWidth', 1)
end
stats = regionprops(L,'Perimeter', 'MajorAxisLength','EquivDiameter', 'Area');
I have followed the commands you give, but my college teacher does not allow to use it because it had previously been used by senior. please help me.im confused to ask to whom

Melden Sie sich an, um zu kommentieren.


Sarhat
Sarhat am 29 Nov. 2012
Hello
I have used your algorithm for Crack detection in the pavement but doesn't helped. I have made an algorithm for detection of crack based on sobel edge detection. the problem, there are lots of false positive which I want to remove and only remain the edges belong to cracks.
Regards
  1 Kommentar
Image Analyst
Image Analyst am 29 Nov. 2012
I don't see a question. If you have a question on MATLAB programming, you can start your own thread. But we give a lot more help on MATLAB programming and some, but not so much, on algorithm development.

Melden Sie sich an, um zu kommentieren.


vijendra sn
vijendra sn am 12 Aug. 2014
Hi Dio,
I am using your code for my project work. I am not able identify the dent in the image which i have attached. Please can u help out in this regards
  10 Kommentare
Krishna
Krishna am 7 Jul. 2016
Here is the image

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics and Optimization finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by