Как получить координаты углов изображения в matlab - PullRequest
0 голосов
/ 15 декабря 2010

Я хочу получить четыре угловые точки или координаты изображения. Как я могу получить их в MatLab?

1 Ответ

2 голосов
/ 15 декабря 2010

Если вы ссылаетесь на координаты углов изображения при построении изображения по осям, используя IMSHOW или IMAGE / IMAGESC , то здесьВот как вы можете найти их:

  • Если вы строите изображение без указания диапазонов:

    image(img);
    imshow(img);
    

    Тогда img наносится на оси с пикселями по центрупри значениях 1:size(img,2) по горизонтали и 1:size(img,1) по вертикали.Поскольку эти значения представляют центры пикселей, а размер пикселя равен 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;
    

    , из которого вы снова можете легко получить свои угловые координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...