在Matlab中显示图片周围的文本

在Matlab中显示图片周围的文本,matlab,matlab-figure,Matlab,Matlab Figure,我想在图片周围添加一些信息性文字,如下图所示 我试图把它添加为 function BS = check() size=8; pixelBox=60; board=imread('abcd.jpg'); board(1,:,:)=255; board(:,1,:)=255; oneBox = round(size*pixelBox/size); counter=0; for iter = 1:size board(oneBox+counter,:,:)=255; boar

我想在图片周围添加一些信息性文字,如下图所示

我试图把它添加为

function BS =  check()

size=8;
pixelBox=60;

board=imread('abcd.jpg');
board(1,:,:)=255;
board(:,1,:)=255;
oneBox = round(size*pixelBox/size);

counter=0;
for iter = 1:size
    board(oneBox+counter,:,:)=255;
    board(:,oneBox+counter,:)=255;
    counter= counter+pixelBox; 
end

% myBox=uicontrol('style','text');
% set(myBox,'String','Shani is not a boy');
% set(myBox,'Position',[30,250,50,50]);

imshow(board);

end
我面临的问题是,在评论文本代码时

myBox=uicontrol('style','text');
set(myBox,'String','Shani is not a boy');
set(myBox,'Position',[30,250,50,50]);
这幅画展示了它的全部尺寸。但是当我添加这个文本代码时,图片的大小会随着


为什么会这样?我想用图片的完整尺寸显示文本。提前感谢。

查找maltab函数标题()。你必须稍微修改一下你显示图像的方式。不使用imshow,您必须这样做:

image = imread('foo.jpg');
figure, imshow(image), title('image foo');
使用这三个函数,您可以绘制所需的内容。查找title()函数,我想您可以更改title的位置。大概是这样的:

 ..., title('image foo', 'HorizontalAlignment', 'left');

我用
truesize
解决了这个问题

imshow(board);
truesize

现在,它在完整尺寸中按预期工作。

当另一个对象添加到图形中时,现有轴/图像/绘图将缩小,以便为新对象腾出空间。此行为是预期的,您可以使用
set
命令更改
位置来调整图片大小。另见:@Yvon你能给我举个例子吗?我们能添加多个标题吗?另外,我们可以添加图片作为标题吗?这将添加一个标题,它位于轴的顶部<代码>'HorizontalAlignment'
是框内文本的对齐方式,而不是框的对齐方式。