2010-12-15 6 views
-2

이미지의 네 모서리 점 또는 좌표를 얻고 싶습니다. MatLab에서 어떻게 얻을 수 있습니까?matlab에서 이미지 모서리 좌표를 얻는 방법

+0

어떤 이미지인가요? 예제 또는 자세한 설명을 게시하십시오. – Jacob

+0

이미지는 .jpg 이미지입니다. – chee

+0

이 참조 http://stackoverflow.com/questions/2608428/finding-edge-and-corner-values-of-an-image-in-matlab, 여기에 명확하게 설명되어 있습니다. –

답변

2

당신도 IMSHOW 또는 IMAGE/IMAGESC이 여기에 당신이 그들을 찾을 수있는 방법입니다 사용하여 축에서 이미지를 그릴 때 이미지 모서리의 좌표를 참조하는 경우 :

  • 플롯 당신에게 만약 범위 지정하지 않고 이미지 :

    image(img); 
    imshow(img); 
    
    이어서

    img1:size(img,2) 수평값에서 중심 화소와의 축 상에 플롯세로로. 이 값은 픽셀 중심을 나타내며 픽셀 크기는 1이므로 이미지는 모든 방향으로 위의 범위를 지나치는 픽셀 반을 확장합니다. 이미지의 범위 그러므로 있습니다 : 당신이 당신의 코너를 얻을 수있는

    xmin = 0.5; 
    xmax = size(img,2)+0.5; 
    ymin = 0.5; 
    ymax = size(img,1)+0.5; 
    

    [xmin ymin], [xmin ymax], [xmax ymin][xmax ymax]을 조정합니다.

  • 당신은 같은 플로팅 범위를 지정하는 경우 :

    image([x1 x2],[y1 y2],img); 
    

    당신은 지정이 제한이 가장자리에있는 그려진 이미지의하지만 실제로 픽셀의 범위라고 생각 할 수있다 센터, 그럼에도 불구하고 플롯 된 이미지의 실제 범위는 모든 방향에서 픽셀 반 화소입니다.

    dx = abs(x2-x1)/size(img,2); 
    dy = abs(y2-y1)/size(img,1); 
    

    그리고 이미지의 범위 그러므로 다음과 같습니다 : 다음과 같이 각 방향의 픽셀 크기를 계산할 수있다

    xmin = min(x1,x2)-0.5*dx; 
    xmax = max(x1,x2)+0.5*dx; 
    ymin = min(y1,y2)-0.5*dy; 
    ymax = max(y1,y2)+0.5*dy; 
    

    어떤에서 다시 쉽게 코너 좌표를 얻을 수 있습니다.

관련 문제