博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab2018在图片上添加文字并保存且图片没有白边
阅读量:722 次
发布时间:2019-03-21

本文共 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

这个是figure图窗的图

这个是程序中的newphoto

我们可以看到在图片中有一圈讨厌的白边,它也不是很白,但是就是很讨厌,因为我们的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可以看到没有白边了

我们可以看到newphoto2没有白边了

你可能感兴趣的文章