3

在下面的代码段中,我试图获取文本边界框相对于图形像素坐标(行和列)的确切位置,以便最终能够裁剪掉图形的该部分(来自数组 img)。但是我从 textBox 得到的并不是很有帮助!一些负数!!谁能给我一些提示 在此处输入图像描述

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**
4

1 回答 1

0

请记住,img它来自命令,并且该属性是否知道此帧中的坐标 getFrame并不是很清楚。'Extent'

如果您想了解 的坐标img,最好执行以下操作:

imagesc(img);

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

使用imagesc后,您还可以使用[x,y] = ginput(4);获得四个点击点,然后通过数学计算从结果xy位置中裁剪出您想要的方式。

至少那是我会做的。


此外,作为旁注,这里有一个关于如何正确使用该Extent属性的链接。

于 2012-03-29T21:15:52.857 回答