Hough transform is detecting strange lines.

4 vues (au cours des 30 derniers jours)
Lucas Echeverz
Lucas Echeverz le 14 Août 2017
Commenté : Lucas Echeverz le 15 Août 2017
Hi all, We are trying to find cracks on tiles. We could accomplish that on the expected tile. However, when we tried to do that on a tile that doesn’t have a crack, it detected unexpected lines. We couldn’t figure out what is going on. This is ok:
This is not ok:
Is there a way to erase that detected lines? Does it all depend on Canny value? Here is attached the code used:
J = histeq(B);
figure, imshow(J), title('Histogram');
bw = edge(J, 'canny', 0.8);
figure, imshow(bw), title('canny');
bw2 = imdilate(bw,strel('line',1,0));
[H,T,R] = hough(
figure;imshow(H,[],'XData',T,'YData',R,...
'InitialMagnification','fit');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
x = T(P(:,2)); y = R(P(:,1));
plot(x,y,'s','color','white');
lines = houghlines(bw2,T,R,P,'FillGap',30,'MinLength',15);
figure, imshow(A), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','White');
len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end
  2 commentaires
Image Analyst
Image Analyst le 15 Août 2017
I don't see any substantive difference. in both cases, I see a tile with white marks and dark shadows due to texture. Where are the cracks?
Lucas Echeverz
Lucas Echeverz le 15 Août 2017
Thanks for your answer!
This is a crack for us:
In the next image you can see that is detecting some cracks that aren't for us:
The original image, whitout processing is the next one:
I zoomed in the 3 images so you can see easier.

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 15 Août 2017
Do the so-called cracks always occur in the same locations? It almost looks like they are some kind of smear/smudge caused by some kind of wheels that are supposed to move the tile along some assembly line but "skidded" on the wet tile causing slippage and a change in texture.
I don't think I'd even use hough at all. Try using a texture filter like stdfilt() and then threshold it and look for blobs that are horizontal.
  3 commentaires
Image Analyst
Image Analyst le 15 Août 2017
If we're done, can you "Accept this answer".
Lucas Echeverz
Lucas Echeverz le 15 Août 2017
Of course!! Sorry didn't know about it!!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by