Как получить точное положение текста относительно строки рисунка, столбца в Matlab - PullRequest
3 голосов
/ 29 марта 2012

В следующем фрагменте кода я пытаюсь получить точное положение ограничивающего прямоугольника текста относительно координат пикселей рисунка (строки и столбца), чтобы в конечном итоге иметь возможность обрезать эту часть рисунка (из массива img).Однако то, что я получаю из textBox, не очень полезно!некоторые отрицательные числа !!кто-нибудь может дать мне несколько советов enter image description here

hFigure = figure('Color', 'w','position',...
[1600 200 600 250]...
,'MenuBar', 'none', 'ToolBar', 'none');

axis off
axis([0 1 0 1]); 

hText=text('String','T','fontsize',100,'color','r',...
   'fontname','Times New Roman',...
'HorizontalAlignment','left','VerticalAlignment','bottom',...
 'BackgroundColor',[.8 .8 .8],'EdgeColor','b');
set(hText, 'Units','Pixels');
textBox=get(hText, 'Extent');%[left,bottom,width,height]
figBox = get(hFigure,'Position');

imageData = getframe(hFigure);         

img = imageData.cdata; 

%using textBox and imgBox:
imgText=img(?:?,?:?,3);  **% this is what I want to do**

1 Ответ

0 голосов
/ 30 марта 2012

Имейте в виду, что img происходит от команды getFrame, и не очень ясно, знает ли свойство 'Extent' о координатах в этом кадре.

Если вы хотите понять координаты img, вам лучше сделать:

imagesc(img);

И затем обрезка в соответствии с этими координатами.

После того, как вы использовали imagesc, вы также можете использовать [x,y] = ginput(4);, чтобы получить четыре точки щелчка, а затем выполнить математические расчеты, чтобы обрезать, как вы хотите, из получаемых позиций x и y.

По крайней мере, так я бы и сделал.


Кроме того, в качестве дополнительного примечания приведена ссылка о том, как правильно использовать свойство Extent.

...