2013-01-16 2 views
4

안녕하세요. 숙제의 일부로. 내가 계산하고 가장자리 크기 이미지를 표시하고가장자리 ball1.tif 이미지의 가장자리 방향 이미지, 소벨 가장자리 감지를 사용하여.소벨 에지 감지 - matlab

matlab의 가장자리 기능을 사용하지 마십시오. conv2를 사용할 수 있습니다. 강한 에지 픽셀 (임계 값보다 높음)의 이진 에지 이미지 (1 에지 픽셀, 0 에지 없음)를 표시합니다. 공 그림자를 제거하는 임계 값을 결정하십시오.
1. 내가 어떤 방향이 사용됩니다 : 여기

내 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 

내 질문은 내 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 

입니까? 어떻게 표시 할 수 있습니까?
2. 볼 그림자를 제거하기위한 임계 값을 얻는 더 좋은 방법이 있습니다.

: 여기

enter image description here

+1

방향 - 이미지의 그라데이션 방향으로, 오브젝트 가장자리와 직각입니다. 당신의 이미지는 당신이 그림자를 제거하도록하지 않을 것입니다 :이 경우 당신은 약간의 위쪽 테두리를 풀 것입니다. –

답변

1

즉 당신이 그것을 해결 한 숙제의 두 번째 부분에 따르면, 당신은 그림자를 제거,보십시오.

첫 번째 질문은 방향을 다양한 방법으로 사용할 수 있다는 것입니다. 가장 간단한 방법은 다음과 같습니다. 고려해야 할 더 유용한 이유는 최대가 아닌 억압을 수행 할 때이지만 수동으로 수행하지 않기 때문에 즉시 사용하지 않는 것이기 때문입니다. 그라디언트 방향의 결과를 시각화하기 위해서는 고려하는 각 방향에 대해 색을 설정하는 것입니다. 시각화를 더욱 단순화하기 위해 방향을 30도에서 180도까지 0에서 시작하여 180도까지 줄이는 것으로 가정하십시오. 예를 들어 35 도의 방향이있는 경우이 방법을 사용하면 30 도가됩니다 하나는 귀하의 축소 목록에 있음). 다음으로 우리는 소벨 (Sobel)을 고려한 이미지와 그 그라디언트 방향의 시각화를보고 30도 (검정은 0도 방향을 나타냄)로 이산 적으로 나타냅니다.

enter image description hereenter image description here

자동 좋은 임계 값을 결정하는 것은 보통 쉬운 일이 아니다. 예를 들어, Otsu 메서드에서 제공된 값으로 시작하여 해결하려는 문제에 따라 다른 히스토그램 분석을 기반으로 값을 줄이거 나 늘릴 수 있습니다.

+0

imagsec 또는 showImage를 사용하는 경우 이미지가 모두 검게 표시됩니다. 스케일링을해야합니까? – Gilad

+0

나는 어떤 스케일링도하지 않았고 단지 답안에서 설명 된 것만을 사용했습니다. 0도에서 29까지의 값은 강도 0 (검정색), 30에서 59까지 다른 색상 등으로 지정되었습니다. 그런 다음 보여줍니다. – mmgp

1

첫 번째 질문에 대한 대답입니다 : 내가 시행 착오 ....

enter image description here

이러한까지 크기를 보여주는 등의 내 결과이다 사용 Sobel Edge Detection Algo에서. 얻은 방향은 기본적으로 그라디언트입니다.

이미지 처리의 기울기은 강도의 변화가 최대 인 방향으로 정의됩니다. 변화는 강도가 증가하거나 강도가 감소 할 수 있습니다. 또한이 변화는 각 픽셀에 대해 계산됩니다. 즉, 각 픽셀에 대해 강도의 최대 변화가 측정됩니다. resX (질문의 예에서 SobelEdgeDetection.m)는 X 방향의 변화를 나타내고 resY는 Y 방향의 변화를 정의합니다.

사실 Matlab의 명령 창에서이 명령을 실행하십시오. imshow (resX);

또한 imshow (들 ResY가)

관련 문제