Hough transform is detecting strange lines.

3 Ansichten (letzte 30 Tage)
Lucas Echeverz
Lucas Echeverz am 14 Aug. 2017
Kommentiert: Lucas Echeverz am 15 Aug. 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 Kommentare
Image Analyst
Image Analyst am 15 Aug. 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 am 15 Aug. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 15 Aug. 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 Kommentare
Image Analyst
Image Analyst am 15 Aug. 2017
If we're done, can you "Accept this answer".
Lucas Echeverz
Lucas Echeverz am 15 Aug. 2017
Of course!! Sorry didn't know about it!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by