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. hiho_1044 状态压缩

    题目大意 给定N个位置,每个位置i都有一个value[i]值,从中选择若干个位置,使得连续的M个位置中的被选中的位置数目不超过Q,求出所有选择方案中value和最大的方案,输出其最大value和. 分 ...

  2. 提高PHP开发质量的36个方法(精品)

    提高PHP开发质量的36个方法 林涛 发表于:2016-3-25 0:00 分类:26点 标签: 62次 1.不要使用相对路径 常常会看到: require_once('../../lib/some_ ...

  3. json遍历key value

    http://blog.csdn.net/lanshengsheng2012/article/details/17679487 public static void main(String[] arg ...

  4. 反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性、字段),而不去使用Invoke方法)

    反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性.字段),而不去使用Invoke方法)   创建Delegate (1).Delegate.CreateDelegate(Type, ...

  5. 本地化Model Factory

    即让其生成中文的测试数据 先简单介绍Model Factory两个常用方法: 进入tinker页面生成测试数据: Factory(User::class,10)->make():make()方法 ...

  6. [bootstrap] 实用的bootstrap模版下载

    https://shapebootstrap.net/ http://shapebootstrap.net/item/1524915-adminlte-dashboard-and-control-pa ...

  7. swiftlint升级

    ~/Opal/iOS/App (mike/lyrics) $ which brew/usr/local/bin/brew~/Opal/iOS/App (mike/lyrics) $ cd /usr/l ...

  8. Objective-C:Foundation框架-结构体

    在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发. ...

  9. MongoDB 一对多关系建模

    转文: 本篇博客翻译自: http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-par ...

  10. Front End中Javascript兼容问题收集(转)

    1 select标签,就有诸多不兼容: A. cloneNode方法,对于非IE浏览器没有问题,对于IE浏览器, 遇到的问题包括:     1)option selected的会clone不过去,然后 ...