matlab进行图像处理之后,很多时候需要在图像上画出矩形框;如,调用matlab的某个检测函数,得到结果之后,往往需要将检测结果的矩形框画在图像上,直观、方便的进行查看;下面的代码就是这个目的:

function [state,result]=draw_rect(img,startPosition,windowSize,showOrNot)

% 函数调用:[state,result]=draw_rect(img,startPosition,windowSize,showOrNot)

% 函数功能:在图像画个长方形框

% 函数输入:img为原始的大图,可为灰度图,可为彩色图

% startPosition 框的左上角在大图中的坐标(每行代表x,y坐标),startPosition=[10,30],分别表示x,y为10,30

% windowSize 框的大小 windowSize=[112,92] 分别表示宽、高

% showOrNot 是否要显示结果?默认为显示出来?

% 函数输出:state -- 表示程序结果状态?

% result - 结果图像数据

if nargin < 4

showOrNot = 1;

end

rgb = [255 0 0]; % 边框颜色

lineSize = 3; % 边框大小,取1,2,3

windowSize(1,1)=windowSize(1,1);

windowSize(1,2) = windowSize(1,2);

if windowSize(1,2) > size(img,1) ||...

windowSize(1,1) > size(img,2)

state = -1; % 说明窗口太大,图像太小,

disp('the window size is larger then image...');

return;

end

result = img;

if size(img,3) == 3

for k=1:3

for i=1:size(startPosition,1) %矩形框的总数

if(startPosition(i,1)>=0 && startPosition(i,2)>=0)

result(startPosition(i,2),startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k); %画上边框

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);%画右边框

result(startPosition(i,2)+windowSize(i,2),startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k); %画下边框

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1),k) = rgb(1,k); %画左边框

if lineSize == 2 || lineSize == 3

result(startPosition(i,2)+1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1)-1,k) = rgb(1,k);

result(startPosition(i,2)+windowSize(i,2)-1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)-1,k) = rgb(1,k);

if lineSize == 3

result(startPosition(i,2)-1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1)+1,k) = rgb(1,k);

result(startPosition(i,2)+windowSize(i,2)+1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);

result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+1,k) = rgb(1,k);

end

end

end

end

end

end

state = 1;

if showOrNot == 1

figure;

hold on;

imshow(result);

end

matlab 图像上加边框,matlab代码-图像上画框 | 学步园相关推荐

  1. matlab给图片加颜色,Matlab中给figure添加图例(legend),标题(title)和颜色(color)...

    在Matlab绘图过程中,尤其是需要将多个图绘制在相同的坐标轴中时,通常需要将不同的曲线设置成为不同的颜色.此外,为了直观,还需要给这张图标增添标题和图例.这篇文章展示了在Matlab的绘图窗口(fi ...

  2. 如何给图片加边框?三招教你图片上加边框怎么弄

    随着互联网时代的到来,大家越来越喜欢在网络上分享身边的新鲜事,出门游玩会拍一拍风景.同朋友一起自拍,然后将其分享到朋友圈.过年的时候,我和朋友出去玩的时候也拍了许多的照片,不过在准备发朋友圈的时候,我 ...

  3. matlab中如何加窗,matlab时域加窗

    正弦信号处理加窗_信息与通信_工程科技_专业资料.正弦信号线性叠加混噪加窗处理 fft变换 作业二 1.用 MATLAB 产生三个频率成分信号, 进行线性叠加, 再加上白...... hamming窗 ...

  4. php图片加边框,php在图片上增加矩形框并加入水印

    php在图片下增加矩形框并加入水印 //统计混合汉字英文字符的实际字符数,只对gb2312码有效 function str_len($str){ $length=0; for($i=0;$i0x80) ...

  5. matlab中asc格式,matlab将图片转换成asc码txt文本格式 | 学步园

    matlab将图片转换成asc码 function img2txt(imfile,varargin); % using an ASCII character for every stepx pixel ...

  6. php上传视频文件代码,php上传视频的代码

    网页教学网(webjx.com)文件上传实例 upfile.php. function getname($exname){ $dir = "./uploadfile/"; $i=1 ...

  7. html图片上加水印,如何在图片上加水印(给照片和视频加上自己的专属水印)...

    加百思特网水印现在真的太重要了,自百思特网己辛辛苦苦拍的照片或视频,被别人随便一转,不注明出处和原作者,就非常容易误导观者这些照片是"转载者"拍的,这对原作者实在太不公平了.如果不 ...

  8. java arp 攻击_用JAVA代码实现ARP攻击 | 学步园

    ARP攻击原理 一台电脑通过网络访问另一台电脑的时候,在数据链路层需要知道对方的MAC地址进行真正的物理通信. 而电脑上的应用程序通常都是根据另一台电脑的IP地址来和对方建立通信,这时候就需要有一个协 ...

  9. 连连看java代码解析,连连看java代码(2) | 学步园

    接上篇,还剩下主功能模块的代码没贴.连连看 连连看算法 如图, 为了找出A, B两点之间的连接路径, 首先过这两点作4条线段, 线段的两端便是地图边缘, 两条与横坐标轴平行, 另两条与纵坐标轴平行. ...

  10. aspose.words读取html,Aspose.Words for .NET HTML代码直接生成WORD | 学步园

    Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); //builder.MoveToB ...

最新文章

  1. 报名 | 基于大数据的中国城市技术社会治理探索
  2. 【Python】向函数传递列表
  3. Premiere Pro CS5软件安装教程
  4. 谁动了我的奶酪?--java实例初始化的顺序问题
  5. 【知识图谱】知识表示:知识图谱如何表示结构化的知识?
  6. c#垂直投影法_投影学
  7. 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点
  8. SpringBoot系列:Spring Boot集成定时任务Quartz
  9. IOS开发UIScrollView控件详解
  10. C和指针之函数之求参数列表中的最大值
  11. jquery、javascript实现(get、post两种方式)跨域解决方法
  12. linux实验试题 cp,cp命令实验,cp命令
  13. Angular Light 指令用法
  14. dhclient常用命令
  15. git(3)---git 安装
  16. tomcat 之 tomcat实例配置
  17. java连接数据库增删改查公共方法
  18. 基于C语言通讯录管理系统编程设计
  19. cad移动时捕捉不到基点,为什么CAD对象捕捉打开了却捕捉不了?
  20. dPCA 二面角主成分分析

热门文章

  1. mybatis工作流程
  2. android+otg+apk,android手机 OTG功能调试usb串口的demo程序
  3. 国外漂亮html5网页设,高端大气上档次!10个精美的国外HTML5网站欣赏_html/css_WEB-ITnose...
  4. STM32F103使用TIM DMA DAC实现播放WAV音乐
  5. HTML5官方文档学习笔记(四)----新的语义元素
  6. 不要抹去 就让它在脸上自由奔淌吧
  7. 世界时间经纬_世界主要城市经纬度及时区列表
  8. oracle同义词只有谁可以使用,oracle 同义词(synonym)
  9. Attach Debugger
  10. 面试方法-麦可利兰的能力素质模型