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, ...
随机推荐
- WPF 获取计算机字体
//加载计算机上可用的字体 public void LoadFonts(object ietfLanguageTag) { try { var sysFonts = Fonts.SystemFontF ...
- chrome浏览器插件开发经验(一)
最近在进行chrome浏览器插件的开发,一些小的经验总结随笔. 1.首先,推荐360的chrome插件开发文档:http://open.chrome.360.cn/extension_dev/over ...
- UOJ #30. [CF Round #278] Tourists
UOJ #30. [CF Round #278] Tourists 题目大意 : 有一张 \(n\) 个点, \(m\) 条边的无向图,每一个点有一个点权 \(a_i\) ,你需要支持两种操作,第一种 ...
- NOIP2018之前
先过了初赛再说. \(10.17\) 初赛成绩昨天出了,\(89\)的估分莫名多了\(5\)分问题求解第二题改卷老师看错了?,接下来大概是要停课在一中集训一个月备战\(NOIP\),回去第二天就要期中 ...
- 精通android体系架构、mvc、常见的设计模式、控制反转(ioc)
1.请看某个著名的it公司一则招聘信息的其中一条要求:“熟悉android系统架构及相关技术,1年以上实际android平台开发经验:”,里面非常明确的说道要求熟练android系统架构,这从某种程度 ...
- Android 出现java.lang.NoClassDefFoundError错误
项目中用到了Retrofit在android4.4以下版本发生的问题 因为项目的build.gradle文件沿用于一个项目的,在defaultConfig z中已经声明了 multiDexEnable ...
- bzoj 3224 普通平衡树 vactor的妙用
3224: Tyvj 1728 普通平衡树 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- Codeforces Round #245 (Div. 2) C. Xor-tree DFS
C. Xor-tree Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem/C ...
- Dart格式化输出
类似于保留几位小数,直接 n.toStringAsFixed() 例如: 1.toStringAsFixed(3); // 1.000 (4321.12345678).toStringAsFixed( ...
- Java集合--HashMap分析
HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap. 本文主要从源码角度来解析HashMap的设计思路,并且详细地阐述HashMap中的几个概念,并深入 ...