Haar-like矩形遍历检测窗口演示Matlab源代码

clc; clear; close all;

% Haar-like特征矩形计算

board = 24                                              % 检测窗口宽度
num = 24 % 检测窗口分划数 show = 1; % 1为作图
time = 0.001; % 作图间隔 %% if mod(board,num)~=0
error('检测窗口宽度必须是分划数的整数倍')
else
delta = board/num % 滑动步进值 
end %% Haar特征1:左白,右黑,(s,t)=(1,2) s = 1;
t = 2;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征1:左白,右黑,(s,t)=(1,2) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r]; % 矩形坐标初始化
Py0 = [0 c/2 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(Px,repmat(Py',1,2),'r','LineWidth',5)
plot(repmat(Px,2,1),repmat([Py(1) Py(end)]',1,2),'r','LineWidth',5); hold off
pause(time)
end end
end end
end
NUM %% Haar特征2:上白,下黑,(s,t)=(2,1) s = 2;
t = 1;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征2:上白,下黑,(s,t)=(2,1) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r/2 r]; % 矩形坐标初始化
Py0 = [0 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(repmat(Px,2,1),repmat(Py',1,length(Px)),'r','LineWidth',3);
plot(repmat([Px(1) Px(end)]',1,2),repmat(Py,2,1),'r','LineWidth',3); hold off
pause(time)
end end
end end
end
NUM %% Haar特征3:左右白,中间黑,(s,t)=(1,3) s = 1;
t = 3;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征3:左右白,中间黑,(s,t)=(1,3) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r]; % 矩形坐标初始化
Py0 = [0 c/3 c*2/3 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(Px,repmat(Py',1,2),'r','LineWidth',5)
plot(repmat(Px,2,1),repmat([Py(1) Py(end)]',1,2),'r','LineWidth',5); hold off
pause(time)
end end
end end
end
NUM %% Haar特征4:左右白,中间黑(2倍宽度),(s,t)=(1,4) s = 1;
t = 4;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征4:左右白,中间黑(2倍宽度),(s,t)=(1,4) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r]; % 矩形坐标初始化
Py0 = [0 c/4 c*3/4 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(Px,repmat(Py',1,2),'r','LineWidth',5)
plot(repmat(Px,2,1),repmat([Py(1) Py(end)]',1,2),'r','LineWidth',5); hold off
pause(time)
end end
end end
end
NUM %% Haar特征5:上下白,中间黑,(s,t)=(3,1) s = 3;
t = 1;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征5:上下白,中间黑,(s,t)=(3,1) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r/3 r*2/3 r]; % 矩形坐标初始化
Py0 = [0 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(repmat(Px,2,1),repmat(Py',1,length(Px)),'r','LineWidth',3);
plot(repmat([Px(1) Px(end)]',1,2),repmat(Py,2,1),'r','LineWidth',3); hold off
pause(time)
end end
end end
end
NUM %% Haar特征6:上下白,中间黑(2倍宽度),(s,t)=(4,1) s = 4;
t = 1;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征6:上下白,中间黑(2倍宽度),(s,t)=(4,1) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口宽
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 列方向移动个数 Px0 = [0 r/4 r*3/4 r]; % 矩形坐标初始化
Py0 = [0 c];
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(repmat(Px,2,1),repmat(Py',1,length(Px)),'r','LineWidth',3);
plot(repmat([Px(1) Px(end)]',1,2),repmat(Py,2,1),'r','LineWidth',3); hold off
pause(time)
end end
end end
end
NUM %% Haar特征7:左上右下白,其它黑,(s,s)=(2,2) s = 2;
t = 2;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征7:左上右下白,其它黑,(s,s)=(2,2) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口高
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 行方向移动个数 Px0 = [0 r/2 r]; % 矩形坐标初始化
Py0 = [0 c/2 c]; % 矩形坐标初始化
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(repmat(Px,3,1),repmat(Py',1,length(Px)),'r','LineWidth',3);
plot(repmat([Px(1) Px(end)]',1,3),repmat(Py,2,1),'r','LineWidth',3); hold off
pause(time)
end end
end end
end
NUM %% Haar特征8:四周白,中间黑,(s,s)=(3,3) s = 3;
t = 3;
R = s:s:floor(num/s)*s; % Haar窗口高
C = t:t:floor(num/t)*t; % Haar窗口宽
NUM = 0; % Haar特征总数 '---- Haar特征8:四周白,中间黑,(s,s)=(3,3) ---'
for I = 1:length(R)
for J = 1:length(C) r = R(I)*delta; % Haar窗口高
c = C(J)*delta; % Haar窗口高
nr = num-R(I)+1; % 行方向移动个数
nc = num-C(J)+1; % 行方向移动个数 Px0 = [0 r/3 r*2/3 r]; % 矩形坐标初始化
Py0 = [0 c/3 c*2/3 c]; % 矩形坐标初始化
for i = 1:nr
for j = 1:nc
Px = Px0+(i-1)*delta; % 滑动取点
Py = Py0+(j-1)*delta;
NUM = NUM+1; if show
plot([0 board],repmat((0:delta:board)',1,2),'k'); hold on;
plot(repmat((0:delta:board)',1,2),[0 board],'k'); axis tight; axis square;
title('Haar矩形遍历演示');xlabel('x');ylabel('y'); plot(repmat(Px,4,1),repmat(Py',1,length(Px)),'r','LineWidth',3);
plot(repmat([Px(1) Px(end)]',1,4),repmat(Py,2,1),'r','LineWidth',3); hold off
pause(time)
end end
end end
end
NUM % 毕业院校:海军工程大学,水声工程专业,博士
% 精通方向:数字信号(图像、视频)处理,人工智能与模式识别,群体智能优化,非线性与混沌,支持向量机,Matlab与VC++混编
% 现任岗位:沈阳聚德视频技术有限公司,图像处理及模式识别研发工程师
% 工作职责:车牌识别,视频目标跟踪等算法开发,C/C++实现,DSP植入
% 兴趣爱好:金融时序的程式化交易
%
% 主要成果:
% [1] 实现车牌识别C/C实现,DSP植入,识别率:汉字不低于99%,数字字母不低于99.5%,整牌不低于97%
% [2] 精通数字信号(图像、视频)“特征提取”与“模式识别”的研究与开发,开展了“支持向量机”应用研究,原创文章有《四种支持向量机工具箱使用要点》,独立开发了“支持向量机Matlab工具箱Version1.0”。结题项目有:语音信号处理与识别,遥感图像的特征提取与分类,人脸识别,主被动声纳信号处理与识别等
% [3] 精通“群体智能优化”,原创工具箱有“群体智能算法”Matlab工具箱 Version2.0”,误差精度优于现有公开发表文献,工程中解决了各种高维复杂问题的优化计算
% [4] 精通“时间序列混沌建模和预测”,基于Matlab和VC 混编平台,独立开发了混沌分析和预测软件包“混沌时间序列分析与预测工具箱 Version2.9”。结题项目有:金融数据波动性分析与程式化交易,银行反洗钱异常检测系统,混沌背景弱信号检测,海洋混响背景弱目标检测等
% [5] 精通Matlab与VC 混合编程:(a)以VC 为界面,核心算法采用Matlab函数,原创文章有《如何将Matlab7.0函数转换成VC 6.0动态链接库》;(b)以Matlab为界面,耗时算法在VC 环境中采用Mexfunction编译。
%
% 联系方式

转载来源:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html  

个人博客: http://blog.sina.com.cn/luzhenbo2

paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]的更多相关文章

  1. (转)Haar-like矩形遍历检测窗口演示Matlab源代码

    from:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html clc; clear; close all; % Haar-like特征矩形计算 b ...

  2. 基于Haar特征Adaboost人脸检测级联分类

    基于Haar特征Adaboost人脸检测级联分类 基于Haar特征Adaboost人脸检测级联分类,称haar分类器. 通过这个算法的名字,我们能够看到这个算法事实上包括了几个关键点:Haar特征.A ...

  3. WPF Window异形窗口演示

    我们先通过简单的效果展示,切换展示不同图片: 我们先定义图片资源文件,我们可以在window资源中定义,下面的在app.xaml文件来定义: <Application x:Class=" ...

  4. 链表创建和链表遍历算法的演示_C语言

    今天搞了一个多小时,头是疼的,应该是没休息好吧,学习了数据结构这一节,感觉收益良多,下面贴上代码和心得: /*24_链表创建和链表遍历算法的演示*/ # include <stdio.h> ...

  5. paper 111:图像分类物体目标检测 from RCNN to YOLO

    参考列表 Selective Search for Object Recognition Selective Search for Object Recognition(菜菜鸟小Q的专栏) Selec ...

  6. OpenCV 矩形轮廓检测

    转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 基础介绍 OpenCV里提取目 ...

  7. 6-9 Haar+adaboost人脸识别

    我们重点分析了Haar特征的概念以及如何计算Haar特征,并介绍了Haar+Adaboost分类器它们的组合以及Adaboost分类器如何使用和训练.这节课我们将通过代码来实现一下Haar+Adabo ...

  8. paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

    1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...

  9. 遍历windows窗口

    原文 1. GetDesktopWindow GetNextWindow HWND hAll = ::GetDesktopWindow(); HWND hCurrent = ::GetNextWind ...

随机推荐

  1. java JDK8 学习笔记——第16章 整合数据库

    第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...

  2. vs2013 RTM 激活码

    BWG7X-J98B3-W34RT-33B3R-JVYW9

  3. java中的trim()

    trim():去掉字符串首尾的空格.但该方法并不仅仅是去除空格,它能够去除从编码'\u0000′ 至 '\u0020′ 的所有字符. 回车换行也在这20个字符 例1: public static vo ...

  4. cell的imageVIew的fram问题

    今天你在输出cell的imageVIew的fram时,发现新建的cell的imageVIew的frame是(0,0,0,0),但是重用的cell的imageVIew的frame输出是(15,19,30 ...

  5. iOS NSFileManager

    今天,用到了文件的管理,发现自己又忘得差不多了.屋里有个苍蝇,老是在眼前晃来晃去,好是烦人. 用到了两个地方: 1. 创建文件夹: 2. 移动文件 功能还有很多,今天先总结两个! 1. 创建文件夹: ...

  6. cxf动态调用wsdl的一个冲突以及解决

    cxf发布服务,调用服务的博客很多,这里也就简单贴一下代代码. 环境如下:spring+cxf (maven环境) <cxf.version>2.7.11</cxf.version& ...

  7. JS-面向对象-封装

    --参考文献: --http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html --js面 ...

  8. Apache使用简介

    Apache使用简介 1.全局配置配置信 1) 配置持久连接 KeepAlive <On|Off>             #是否开启持久连接功能 MaxKeepAliveRequest ...

  9. Extjs4 获取到前一天的日期

    Extjs4 获取到前一天的日期 Extjs官方示例 Ext.Date add( date, interval, value ) : Date Provides a convenient method ...

  10. Ubuntu14.04安装和配置Tomcat8.0.12(转)

    Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!!   工具/原料 系统环境:U ...