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

function [state,result]=draw_rect(img,startPosition,windowSize,showOrNot)
% 函数调用:[state,result]=draw_rect(img,startPosition,windowSize,showOrNot)
% 函数功能:在图像画个长方形框
% 函数输入:img为原始的大图,可为灰度图,可为彩色图
% startPosition 框的左上角在大图中的坐标(每行代表x,y坐标),startPosition=[,],分别表示x,y为10,
% windowSize 框的大小 windowSize=[,] 分别表示宽、高
% showOrNot 是否要显示结果?默认为显示出来?
% 函数输出:state -- 表示程序结果状态?
% result - 结果图像数据 if nargin <
showOrNot = ;
end rgb = [ ]; % 边框颜色
lineSize = ; % 边框大小,取1,, windowSize(,)=windowSize(,);
windowSize(,) = windowSize(,);
if windowSize(,) > size(img,) ||...
windowSize(,) > size(img,)
state = -; % 说明窗口太大,图像太小,
disp('the window size is larger then image...');
return;
end result = img;
if size(img,) ==
for k=:
for i=:size(startPosition,) %矩形框的总数
if(startPosition(i,)>= && startPosition(i,)>=)
result(startPosition(i,),startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k); %画上边框
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,)+windowSize(i,),k) = rgb(,k);%画右边框
result(startPosition(i,)+windowSize(i,),startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k); %画下边框
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,),k) = rgb(,k); %画左边框 if lineSize == || lineSize ==
result(startPosition(i,)+,startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k);
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,)+windowSize(i,)-,k) = rgb(,k);
result(startPosition(i,)+windowSize(i,)-,startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k);
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,)-,k) = rgb(,k); if lineSize ==
result(startPosition(i,)-,startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k);
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,)+windowSize(i,)+,k) = rgb(,k);
result(startPosition(i,)+windowSize(i,)+,startPosition(i,):startPosition(i,)+windowSize(i,),k) = rgb(,k);
result(startPosition(i,):startPosition(i,)+windowSize(i,),startPosition(i,)+,k) = rgb(,k);
end
end
end
end
end
end state = ; if showOrNot ==
figure;
hold on;
imshow(result);
end

感谢:

http://blog.csdn.net/carson2005/article/details/17262811

http://blog.csdn.net/carson2005/article/details/44404363

matlab 画框(一)的更多相关文章

  1. matlab 画框(二) 去白边

    在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...

  2. matlab 画框(三) 画框并保存图像

    initstate = [x y w h];%-----------------------------------------Show the tracking resultimshow(uint8 ...

  3. matlab在图片上画框

    matlab在图片上画框 之前写过一个MATLAB在图片上画框的代码, http://blog.csdn.net/carson2005/article/details/17262811 最近使用后发现 ...

  4. matlab保存画框图像去白边

    在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...

  5. 【matlab】用matlab 保存带标记图像、图片的方法总结

    最近看了一些用matlab对图形图片进行保存的帖子和资源,关于图像保存的方法给大家分享一下这些方法是大家所使用方法的一个总结. 如今常用的方法有三种printf,imwrite,saveas下面分别介 ...

  6. MATLAB(3)——GUI界面设计入门

    作者:桂. 时间:2017-03-01  18:43:35 链接:http://www.cnblogs.com/xingshansi/articles/6485688.html 声明:转载请注明出处, ...

  7. [图像]用Matlab在图像上画矩形框

    原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...

  8. matlab下的caffe接口配置(Windows)

    本文基于大部分网上方法 http://blog.csdn.net/d5224/article/details/51916178,外加一点自己的个人实际配置经历,环境变量在配置后尽管显示正确并且重启多次 ...

  9. Matlab 绘制三维立体图(以地质异常体为例)

    前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...

随机推荐

  1. flume Permission denied: user=flume, access=WRITE, inode

    My flume app is attempting to write to HDFS on a path thats not been created/granted for it. The pat ...

  2. Css_2跟3

    #css2中的选择器 1.元素选择器     *通配符选择符.html类型选择符.id选择符.class选择符 2.关系选择器     E F(包含选择器).E>F(子选择器).E+F(E元素后 ...

  3. samba服务器常用指令

    samba服务器需要安装samba.samba-common.samba-client三个包: samba -----samba服务器程序的所有文件 samba-common -----提供了Samb ...

  4. 工作常用的linux/mysql/php/工具命令

    工作常用的linux/mysql/php/工具命令: 1. tar备份目录 tar zcvf ****.tar.gz ****/ tar 备份跳过目录 tar --exclude=test1 3. s ...

  5. 如何在腾讯云上开发一款O2O书签?

    版权声明:本文由潘佳宇原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/187 来源:腾云阁 https://www.qclo ...

  6. 【转】 FPGA设计的四种常用思想与技巧

    本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作 ...

  7. IoC 之 2.1 IoC基础(壹)

    2.1.1  IoC是什么 Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器 ...

  8. Linux内核简介

    内核是提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件.一个内核不是一套完整的操作系统.一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux.Linux内核的主 ...

  9. Java 基础知识点(必知必会其一)

    如何将字符串转换为数字? package Day_2; /** * @author Administrator * 功能: 如何将字符串转换为数字? */ public class StringToI ...

  10. Java NIO框架Mina、Netty、Grizzly介绍与对比

    Mina:Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用 ...