宿題の一部としてこんにちは。Sobel Edge検出を使用して、画像balls1.tifのエッジの大きさの画像とエッジの方向の画像を計算して表示する必要があります。
matlabのエッジ関数は使用しないでください。conv2を使用できます。強いエッジピクセル(しきい値を超える)のバイナリエッジ画像(1エッジピクセル、0エッジなし)を表示します。ボールの影をなくすしきい値を決定します。
これが私のmain.mです
addpath(fullfile(pwd,'TOOLBOX'));
addpath(fullfile(pwd,'images'));
%Sobel Edge Detection
Image = readImage('balls1.tif');
showImage(Image);
message = sprintf('Sobel Edge Detection');
sobelEdgeDetection(Image);
uiwait(msgbox(message,'Done', 'help'));
close all
これが私のSobeEdgeDetection.mです
function [ output_args ] = SobelEdgeDetection( Image )
maskX = [-1 0 1 ; -2 0 2; -1 0 1];
maskY = [-1 -2 -1 ; 0 0 0 ; 1 2 1] ;
resX = conv2(Image, maskX);
resY = conv2(Image, maskY);
magnitude = sqrt(resX.^2 + resY.^2);
direction = atan(resY/resX);
thresh = magnitude < 101;
magnitude(thresh) = 0;
showImage(magnitude);
end
私の質問は次のとおり
です。1。私はどの方向に使用されますか?どうすれば表示できますか?
2.ボールの影を取り除くためのしきい値を取得するためのより良い方法はありますか。試行錯誤しました…。
これらは、マグニチュードを示す限り、私の結果です。