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. ngrok的使用

    windows的ngrok配置: 步骤一:下载ngrok http://pan.baidu.com/s/1jH0s8o2 步骤二:如果你的国外网址没被墙就直接使用cmd命令行使用. 国内ngrok配置 ...

  2. Windows下MinGW编译Qt4

    还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本q ...

  3. 长城坑爹宽带,劫持用户DNS赚取购物返利

    今天回来登录www.jd.com 打算淘点东西,登录后发现地址栏跳到 http://www.jd.com/?utm_source=click.linktech.cn&utm_medium=tu ...

  4. Scrambled Polygon---poj2007(利用叉积排序)

    题目链接:http://poj.org/problem?id=2007 题意:乱序给出凸多边形的顶点坐标,要求按逆时 针顺序输出各顶点.给的第一个点一定是 (0,0),没有其他点在坐标轴上,没有三点 ...

  5. 10 Ways to Inspire Your Team

    Inspire. Just the word itself causes us to pause and think. We may remember our own personal heroes ...

  6. iOS 的 XMPPFramework 简介

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开 ...

  7. html5头部说明

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --><html lang="zh-cmn-Hans"> ...

  8. 由单例模式学到:volatile关键字

    MSDN上说: volatile 关键字指示一个字段可以由多个同时执行的线程修改. 声明为 volatile 的字段不受编译器优化的限制. 这样可以确保该字段在任何时间呈现的都是最新的值. volat ...

  9. Shell expr的用法 bc 命令 let命令

    Shell expr的用法  bc 命令   let命令 数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245. ...

  10. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...