1

バイラテラル フィルタリングを適用し、元の画像から差し引いた次の画像があります。

示されているようにガラスの欠陥の概要を説明することは可能ですか?

ここに画像の説明を入力

ハフを適用した後、次の結果は完璧ではありません:/

ここに画像の説明を入力

私の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

ここで何か間違ったことをしているのですか?

4

1 に答える 1

2

1 つの画像だけに基づいて一般的な答えを出すのは少し難しいですが、サンプル画像に基づいて具体的な答えを出すことができます。

あなたが見つけたいのは画像の真ん中にある縦のぼやけた線だと仮定すると、これが私のアプローチです。具体的な実装の詳細については触れませんが、実装方法の概要だけを説明します。

  1. 窓を見つけます。これには複数のアプローチがあります。いくつかのアイデアは、角を見つけるか、長方形の構造自体を見つけることです。ハフ変換は可能なツールです。

  2. 各ウィンドウについて、その中に垂直構造があるかどうかを確認します。

于 2012-03-15T10:19:59.087 に答える