2012-03-15 15 views
2

私はバイラテラルフィルタリングを適用し、私のオリジナル画像イメージの欠陥の概要?

からそれを差し引いている上、以下の画像は、私が得たハフを適用した後

enter image description here

を示すように、ガラスの欠陥を概説することが可能です持っています完璧ではない、以下の結果:/

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 

ここで何か間違っていますか?

答えて

2

1つの画像のみに基づいて一般的な回答は得られませんが、他の情報はありませんが、サンプル画像に基づいて特定の回答を与えることができます。

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

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

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

+0

あなたが提案したものを試しました。 –

+0

いいえ、あなたはありません。イメージ内の線のみを抽出しました。あなたは、ガラスペインである領域を特定しようとしていません。 –

+0

おそらく最初にウィンドウを抽出する必要があります。次いで、異なる閾値を用いてハフ変換及び/又はエッジ検出器を再実行する。 –

関連する問題