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);して 4 つのクリック ポイントを取得し、計算を行って、結果xy位置から必要な方法でトリミングすることもできます。

少なくともそれは私がすることです。


また、補足として、Extentプロパティを適切に使用する方法についてのリンクを次に示します。

于 2012-03-29T21:15:52.857 に答える