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