Выделение дефекта на изображении? - PullRequest
2 голосов
/ 15 марта 2012

У меня есть следующее изображение, к которому я применил двустороннюю фильтрацию и вычел его из моего исходного изображения

Можно ли очертить дефект стекла, как показано

enter image description here

После применения Hough я получил следующий результат не идеально: /

enter image description here

Мой код Matlab:

  im = imread('C:\Users\SUJIT\Desktop\image003.jpg');
im=rgb2gray(im);
h = fspecial('gaussian', size(im), 1.0);
g = imfilter(im, h);

im=im2double(g);

im=imadjust(im);
imgauss = imfilter(im, fspecial('gaussian',[7 7], 6),'conv');
imbi = bilateralfilter(im, [5 5], 3, 3);
imbi= im - imbi;


 imshow(imbi,[]); title('Bilateral Filted Image');

I = imcrop(imbi, [30 30 450 350]);
J = imfilter(I, fspecial('gaussian', [17 17], 5), 'symmetric');
BW = edge(J, 'canny');

%# Hough Transform and show matrix
[H T R] = hough(BW);
imshow(imadjust(mat2gray(H)), [], 'XData',T, 'YData',R, ...
       'InitialMagnification','fit')
xlabel('\theta (degrees)'), ylabel('\rho')
axis on, axis normal, hold on
colormap(hot), colorbar

%# detect peaks
P  = houghpeaks(H, 10);
plot(T(P(:,2)), R(P(:,1)), 'gs', 'LineWidth',2);

%# detect lines and overlay on top of image
lines = houghlines(BW, T, R, P);
figure, imshow(I), hold on
for k = 1:length(lines)
    xy = [lines(k).point1; lines(k).point2];
    plot(xy(:,1), xy(:,2), 'g.-', 'LineWidth',2);
end
hold off

Пожалуйста, помогите, я что-то здесь не так делаю?

1 Ответ

2 голосов
/ 15 марта 2012

Довольно сложно дать общий ответ, основанный только на одном изображении и никакой другой информации, но я могу дать конкретный ответ, основываясь на вашем образце изображения.вертикальная размытая линия в середине изображения, это мой подход.Я не буду вдаваться в конкретные детали реализации, а лишь в общих чертах о том, как я это сделаю.

  1. Найдите окна.Есть несколько подходов к этому.Некоторые идеи - либо найти углы, либо найти саму прямоугольную структуру.Преобразование Хафа является возможным инструментом.

  2. Для каждого окна проверьте наличие вертикальных структур в нем.

...