如何在Matlab中获取关于图行,列的文本的确切位置

时间:2012-03-29 17:47:52

标签: matlab matlab-figure matlab-guide

在下面的代码段中,我试图获取文本边界框相对于图像素坐标(行和列)的确切位置,以便最终能够裁掉图形的那部分(来自数组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 :(得分:0)

请记住,img来自getFrame命令,并且'Extent'属性是否知道此框架中的坐标并不十分清楚。

如果你想了解img的坐标,你可能会做得更好:

imagesc(img);

然后根据这些坐标进行裁剪。

使用imagesc后,您还可以使用[x,y] = ginput(4);获取四个点击点,然后进行数学计算,从结果x和{{1位置。

至少那就是我要做的事。


Also, as a side note here's a link about how to properly use the Extent property.