本文共 2072 字,大约阅读时间需要 6 分钟。
text
函数,难点在于保存,使用 getframe
来捕获,然后使用 imwrite
来保存,类似的教程网上很多,但是有的添加文字不是使用text函数,matlab2018已经不能用,有的并没有讲明如何保存加文字后的图片,有的图片有白边,所以整理一下 感谢所有的博主们 参考博客1:(这个用到的函数matlab2018不能用,但是可以学一下思路)
参考博客2:(这个主要是学习如何保存(图+文字)) 参考博客3:(这个主要是学习下text函数,虽然常见的参数不多,但是mark一下) 参考博客4:(这个主要是figure图窗无白边,便于我们后期保存的图片去白边)clear allclcI=imread('cameraman.tif');%cameraman.tif是自带的图片imshow(I);J=text('Position',[30 30],'String','我加入的文字', 'FontSize',12,'color','r');%使用text函数加字,位置坐标是(30,30),写的字是 “我加入的文字”,字体大小:12, 颜色为红色%text还有很多可以设置的参数,具体请在命令行窗口输入 help text%这是matlab函数里面很重要的一种写法,字符串’Position‘和'String'还有'FontSize'和'color'是函数的参数名,他们是特定的,顺序不重要,主要是要和他们的值一一对应,都用逗号隔开,%J=text('Position',[30 30],'color','r','FontSize',12,'String','我加入的文字');% 顺序不同,一一对应也可以正常运行f=getframe(figure(1));%捕获坐标区或图窗作为影片帧imwrite(f.cdata,'newphoto.jpg')%保存的figure窗口,用imwrite保存所见即所存,保存同一个文件夹内,名字叫newphoto.jpg
所以怎么把去掉图窗讨厌的白边呢?下面给出新的代码,newphoto1有白边,因为它保存的图窗有白边,newphoto2没有白边,因为他的图窗没有白边。
代码如下clear allclcI=imread('cameraman.tif');%cameraman.tif是自带的图片imshow(I);J=text('Position',[30 30],'String','我加入的文字', 'FontSize',12,'Color','r');%使用text函数加字,%text还有很多可以设置的参数,具体请在命令行窗口输入 help text%J=text('Position',[30 30],'color','r','FontSize',12,'String','我加入的文字'); %顺序不同,一一对应也可以正常运行f=getframe(figure(1));%捕获坐标区或图窗作为影片帧imwrite(f.cdata,'newphoto1.jpg')%保存的figure窗口,尺寸与分辨率不变,保存同一个文件夹内,名字叫newphoto1.jpg%下面这个是让newphoto2没有白边 %参考https://blog.csdn.net/sinat_32016233/article/details/86475785?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase imshow(I,'border','tight','initialmagnification','fit');[m,n]=size(I);J=text('Position',[30 30],'String','我加入的文字', 'FontSize',12,'Color','r');%使用text函数加字,set (gcf,'Position',[0,0,m,n]); % n为图片的列,m为图片的行,m,n由size函数得到。axis normal;f=getframe(figure(1));%捕获坐标区或图窗作为影片帧imwrite(f.cdata,'newphoto2.jpg')%保存的figure窗口,尺寸与分辨率不变,保存同一个文件夹内,名字叫newphoto2.jpg,这个newphoto2无白边
我们可以看到newphoto2没有白边了