私は、自動溶接プロセスのために溶接画像のシームを検出しようとしています。 元の画像に検出された線(目的の画像の赤い線)のピクセル位置を探したいと思います。matlabでの画像の自律縫い検出
私は次のコードを使用し、最後に画像からノイズを除去して下の結果に到達しました。
clc,clear,clf;
im = imread('https://i.stack.imgur.com/UJcKA.png');
imshow(im);title('Original image'); pause(0.5);
sim = edge(im, 'sobel');
imshow(sim);title('after Sobel'); pause(0.5);
mask = im > 5;
se = strel('square', 5);
mask_s = imerode(mask, se);
mask(mask_s) = false;
mask = imdilate(mask, se);
sim(mask) = false;
imshow(sim);title('after mask');pause(0.5);
sim= medfilt2(sim);
imshow(sim);title('after noise removal')
残念ながら完全に縫い目を見つけるために、画像に残っているものは何もありません。
ご協力いただければ幸いです。
Downloadオリジナル画像。
あなただけのターゲットオブジェクト間<300×300の解像度を持っていない理由?なぜイメージはとても畏敬の念を抱いていますか?そのレーザー三角測量の出力か何ですか? ノイズを除去するための最後のステップとして、1〜2ピクセルのラインでメディアンフィルタを使用すると、何をしているのか全くわからないことがわかります。あなたが進む画像処理についての基本的な知識をお持ちください。 – Piglet
事前に継ぎ目のおおよその形状を知っていますか?または、1つの画像につき1つのシームがあるだけですか?その他の有用な制約? – Cecilia
@セシリア画像あたり1つの継ぎ目があります。プレゼンテーションには – asys