对于搞材料的小伙伴来说,使用SEM、TEM和金相显微镜等检测工具对样品组织形貌进行观察是家常便饭的事。每次写报告做PPT的时候总是有件鸡毛小事烦着我,那就是需要对拍摄的照片加标尺,PS、PPT以及Word都能够实现加标尺,但总是让我觉得不如意,也许是强迫症太严重了。于是就想干嘛不自己写一个自动添加标尺的程序,这样就开始了本程序的编写,也希望这个小程序能够帮助到在科研中忙碌的你。
程序的实现原理很简单,一就是确定标尺的大小,二是确定要显示的图像区域,三是在选定的图像区域中插入标尺线和标尺标注。
程序界面部分源程序:
![9b5d363206d29ffb77521ee9a10eb225.png](https://i-blog.csdnimg.cn/blog_migrate/6e24e135be2befc180ded59883146b81.jpeg)
%%Creat interfaceclc;clear;close all;scr = get(groot,'ScreenSize');pict=figure('position',[scr(3)/2-200,scr(4)/2-100, 500,250],'name','欢迎扫码关注matlab爱好者公众号','NumberTitle','off','menubar','none','toolbar','none',... 'Resize','off');text0=uicontrol(pict,'style','text','position',[20 195 320 40],'string','SEM/TEM/金相图片自动加标尺程序','FontSize',15,'ForegroundColor','r');text1 = uicontrol(pict,'style','text','position',[60 165 130 30],'string','输入标尺长度:','FontSize',13,'ForegroundColor','b');con1 = uicontrol(pict,'style','edit','position',[185 168 100 30],'string','','FontSize',14,'ForegroundColor','b');% 单位选择text2 = uicontrol(pict,'style','text','position',[40 130 100 30],'string','单位选择:','FontSize',14,'ForegroundColor','b');radiob1 = uicontrol(pict,'style','Radiobutton','position',[150 130 50 30],'string','mm','FontSize',14,'ForegroundColor','b');set(radiob1,'Callback', 'set(radiob1,"value",1),set(radiob2,"value",0),set(radiob3,"value",0)');radiob2 = uicontrol(pict,'style','Radiobutton','position',[215 130 50 30],'string','μm','FontSize',14,'ForegroundColor','b');set(radiob2,'Callback', 'set(radiob1,"value",0),set(radiob2,"value",1),set(radiob3,"value",0)');radiob3 = uicontrol(pict,'style','Radiobutton','position',[280 130 50 30],'string','nm','FontSize',14,'ForegroundColor','b');set(radiob3,'Callback', 'set(radiob1,"value",0),set(radiob2,"value",0),set(radiob3,"value",1)');set(radiob2,"value",1);% tgbutton = uicontrol(pict,'style','checkbox','position',[70 100 260 30],'string','是否自定义字体 (默认不勾选)','FontSize',12,'ForegroundColor','b');text3 = uicontrol(pict,'style','text','position',[5 93 85 30],'string','字体选择:','FontSize',12,'ForegroundColor','b');popup1 = uicontrol(pict,'Position', [80 95 170 30],'Style', 'popup','String',... {'Times New Roman Bold','Arial Bold','Calibri Bold','Cambria Bold','Candara Bold','Consolas Bold','Courier New Bold'},... 'FontSize',10,'ForegroundColor','b');text4 = uicontrol(pict,'style','text','position',[253 93 50 30],'string','大小:','FontSize',12,'ForegroundColor','b');popup2 = uicontrol(pict,'Position', [300 93 50 30],'Style', 'popup','String',... {'40','41','42','43','44','45','46'},'FontSize',10,'ForegroundColor','b'); text5 = uicontrol(pict,'style','text','position',[40 55 200 30],'string','距右下角的长和宽 (pixel):','FontSize',12,'ForegroundColor','b');con2 = uicontrol(pict,'style','edit','position',[235 59 100 30],'string','[20,20]','FontSize',14,'ForegroundColor','b');%% 加载图标loadIcon();%% 执行程序img=uicontrol(pict,'style','pushbutton','position',[50 20 150 30],'string','打开图片','FontSize',15,'ForegroundColor','b','CallBack',... 'openImg(con1,con2,popup1,popup2,radiob1,radiob2,radiob3);');exiting=uicontrol(pict,'style','pushbutton','position',[210 20 100 30],'string','退出','FontSize',15,'ForegroundColor','r','CallBack','delete(pict);');
欲获取完整程序,关注matlab爱好者,回复“SEM”、“TEM”、“金相”或者“标尺”即可获取下载链接。如有问题或建议,请在文章底部留言,感谢大家支持!!!
原文阅读