matlab在图像中画长方形(框)
function [state,result]=draw_rect(data,pointAll,windSize,showOrNot)
% 函数调用:[state,result]=draw_rect(data,pointAll,windSize,showOrNot)
% 函数功能:在图像画个长方形框
% 函数输入:data为原始的大图,可为灰度图,可为彩色图
% pointAll 框的左上角在大图中的坐标(每行代表一个坐标),
% 注意:在图中的坐标系为第一列为y,第二列为x(很奇怪的)
% windSize 框的大小 windSize=[,] 分别表示长宽
% showOrNot 是否要显示,默认为显示出来
% 函数输出:state -- 表示程序结果状态
% result - 结果图像数据
% 函数历史: v0. @-- created by Aborn if nargin <
showOrNot = ;
end rgb = [ ]; % 边框颜色
lineSize = ; % 边框大小,取1,, windSize(,)=windSize(,);
windSize(,) = windSize(,);
if windSize(,) > size(data,) ||...
windSize(,) > size(data,)
state = -; % 说明窗口太大,图像太小,没必要获取
disp('the window size is larger then image...');
return;
end result = data;
if size(data,) ==
for k=:
for i=:size(pointAll,) %画边框顺序为:上右下左的原则
result(pointAll(i,),pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,)+windSize(i,),pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,),k) = rgb(,k);
if lineSize == || lineSize ==
result(pointAll(i,)+,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,)-,k) = rgb(,k);
result(pointAll(i,)+windSize(i,)-,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)-,k) = rgb(,k);
if lineSize ==
result(pointAll(i,)-,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,)+,k) = rgb(,k);
result(pointAll(i,)+windSize(i,)+,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);
result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+,k) = rgb(,k);
end
end
end
end
end state = ; if showOrNot ==
figure;
imshow(result);
end
在main函数中调用如下:
% main.m
clc;
clear;
close all; data = imread('man_1.jpg');
pointAll = [,];
windSize = [,]; [state,results]=draw_rect(data,pointAll,windSize);
return;
原图像为:

结果图像为:

特别注意:图像中显示的坐标系和我们平时用的不一样!!!
from: http://blog.csdn.net/loveaborn/article/details/8545809
matlab在图像中画长方形(框)的更多相关文章
- MATLAB·提取图像中多个目标
基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...
- 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
基于知乎上的一个答案.问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢 ...
- MATLAB GUI程序设计中使文本框接收多行输入的方法
对于文本框来说 Max属性于Min属性数值之差小于等于1时,仅接收单行输入 大于1时,接受多行输入 对于多行情况,set/get到的String应为cell 本系列文章允许转载,转载请保留全文! [说 ...
- matlab 对图像操作的函数概览
转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...
- [图像]用Matlab在图像上画矩形框
原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...
- Matlab实现Hough变换检測图像中的直线
Hough变换的原理: 将图像从图像空间变换至參数空间.变换公式例如以下: 变换以后,图像空间与參数空间存在下面关系: 图像空间中的一点在參数空间是一条曲线,而图像空间共线的各点相应于參数空间交于一点 ...
- Matlab实现Hough变换检测图像中的直线 分类: 图像处理 2014-06-14 22:07 641人阅读 评论(0) 收藏
Hough变换的原理: 将图像从图像空间变换至参数空间,变换公式如下: 变换以后,图像空间与参数空间存在以下关系: 图像空间中的一点在参数空间是一条曲线,而图像空间共线的各点对应于参数空间交于一点的各 ...
- matlab图形中添加文本框
图形中添加文本框,自己目前了解到了两种方法:1.用legend函数就可以对图形标注,形成一个文本框: 2.就是用annotation('textbox',[0.2,0.2.0.1,0.3],'Line ...
- 【matlab】图像直方图
使用imhist函数(要先用rgb2gray转化为灰度图像) 利用matlab计算图像直方图函数为imhist() 具体用法: imhist( i );直接显示图像i的灰度直方图: imhist(i, ...
随机推荐
- beego小技巧两则:通过命令行自定义端口和环境,url中带有中划线处理
1,通过命令行自定义端口和环境 先用flag提取参数,如果要环境,就反向注进去, 如果是端口,就打到beego.Run函数里去. 2,在作router里的url解析时,如果URL中含有-中划线,用严格 ...
- yii2联表查询
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- SGU 204. Little Jumper
204. Little Jumper time limit per test: 0.5 sec. memory limit per test: 65536 KB input: standard out ...
- python操作json数据格式--基础
非常基础的json库的用法,后续添加数据格式.编码等内容 参考文章 json进阶 Python的json模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps ...
- Canvas进阶——制作小游戏【贪吃蛇】
今天呢,主要和小伙伴们分享一下一个贪吃蛇游戏从构思到实现的过程~因为我不是很喜欢直接PO代码,所以只copy代码的童鞋们请出门左转不谢. 按理说canvas与其应用是老生常谈了,可我在准备阶段却搜索不 ...
- openssl 获取证书中的公钥
PEM 格式 1. FILE *fp = fopen("xx.pem", "r"); 2. X509 *cert = PEM_read_X509(fp, N ...
- Java 大小写转换
Java 大小写转换 public class CaseConversion { /** * @param character: a character * @return: a character ...
- Android之 内容提供器(2)——创建自己的内容提供器将数据共享出去
创建自己的内容提供器非常简单,只需要新建一个类继承ContentProvider类,通过实现ContentProvider的增删改查的方法向内容提供器中增删数据. 1 ContentProvider简 ...
- React Native 系列(四)
前言 本系列是基于React Native版本号0.44.3写的.RN支持CSS中的布局属性,因此可以使用CSS布局属性,这里就不详细地讲解了,这篇文章的重点主要是讲述一下RN中的Flex布局. CS ...
- FastReport.Net使用:[16]图片控件使用
FastReport中,图片(Picture)控件的用法? 支持的图片格式 1.BMP, PNG, JPG, GIF, TIFF, ICO, EMF, WMF 支持的数据源 支持图片,数据列,文件名, ...