【手势识别】基于matlab肤色静态手势识别【含Matlab源码 288期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、手势识别简介(附课程作业报告)

1 系统设计方案
今年来,手势识别作为新一代人机交互手段,受到了国内外研究学者以及公司的关注和研究,并且取得了突出的成果,在智能电视、游戏娱乐设备、机器人等方面都有了广泛的应用,而且,通过对手势识别技术的研究,可以推动机器设备对视觉感知能力的认识,并将其应用到更多的人工智能领域,使机器设备更好的理解人类的想法和意图,为我们的生活和工作带来更大的好处。本文实现了一种能识别五种手势的手势识别系统,可以完成人机交互的基本任务。
手势动作可以分为两种,一种是相对不动,没有任何附加动作的静态手势动作,另一种是相对运动、伴随着复杂变化(如缠绕、组合等)动态手势动作,前者突出表示形式及状态,后者突出变化及轨迹。本文主要针对第一种进行研究,系统处理流程如图1所示。
在这里插入图片描述
图1 系统结构流程图

2 系统验收需要达到的目标和测试水平
本系统可以对五种预定义的静态手势进行识别,如图2所示。
在这里插入图片描述
图2 五种预定义的静态手势
当系统输入以上任意一种手势时,系统能够准确迅速的做出判断当前输入的手势是属于哪一种,并且在控制台打印出相应信息。例如输入图片(a)时,系统在控制台输出手势1;输入图片(b)时,系统在控制台输出手势2,…。

3 系统实现框图和流程图
3.1手势分割

本文选择在YcbCr颜色空间进行手势分割处理,分割的重点在于建立肤色模型,利用手势皮肤颜色在YcbCr空间内满足聚类的特点,设定阈值范围,对图像进行扫描,在此范围内则认定为手势,不在此范围内的则不予考虑,查阅相关资料并进行试验发现,人手颜色在YcbCr的二维子空间(Cb,Cr)上的分布范围满足:Cb[133,173]&Cr[77,127],当像素点满足此条件就认定为手势,此方法处理简单。手势分割流程图如图3所示:
在这里插入图片描述
图3 手势分割流程图

⛄二、部分源代码

close all;clear all;
clc;
%----------------------------------------------
%图像进行中值滤波,并显示图像
%调用 median_filter( ) 进行处理
%----------------------------------------------
area = int32(0) ;%面积
perimeter = int32(0) ;%周长
%读进图像
[filename, pathname] = uigetfile({ ‘.bmp’;'.jpg’; ‘*.gif’}, ‘选择图片’);

RGB_data = imread([pathname, filename]);
[ROW,COL, DIM] = size(RGB_data); %提取图片的行列数

R_data = single(RGB_data(:,:,1));
G_data = single(RGB_data(:,:,2));
B_data = single(RGB_data(:,:,3));
% %以下是中值滤波代码
% medfil_result_R = median_filter(R_data, 3);
% medfil_result_G = median_filter(G_data, 3);
% medfil_result_B = median_filter(B_data, 3);

%以下是建立肤色模型,实现RGB转YCbCr
Y_data = int32(zeros(ROW,COL));
Cb_data = int32(zeros(ROW,COL));
Cr_data = int32(zeros(ROW,COL));

for r = 1:ROW
for c = 1:COL
% Y_data(r, c) = 0.299medfil_result_R(r, c) + 0.587medfil_result_G(r, c) + 0.114medfil_result_B(r, c);
% Cb_data(r, c) = -0.1687
medfil_result_R(r, c) - 0.3313medfil_result_G(r, c) + 0.5medfil_result_B(r, c) + 128;
% Cr_data(r, c) = 0.5medfil_result_R(r, c) - 0.4187medfil_result_G(r, c) - 0.0813medfil_result_B(r, c) + 128;
%系数进行8位量化处理
% Y_data(r, c) = int32((76
R_data(r, c) + 150G_data(r, c) + 29B_data(r, c))/256);
% Cb_data(r, c) = int32((-43R_data(r, c) - 84G_data(r, c) + 128B_data(r, c) + 128256)/256);
% Cr_data(r, c) = int32((128R_data(r, c) - 107G_data(r, c) - 20B_data(r, c) + 128256)/256);
Y_data(r, c) = floor( (76R_data(r, c) + 150G_data(r, c) + 29B_data(r, c))/256 );
Cb_data(r, c) = floor( (-43
R_data(r, c) - 84G_data(r, c) + 128B_data(r, c) + 128256)/256 );
Cr_data(r, c) = floor( (128
R_data(r, c) - 107G_data(r, c) - 20B_data(r, c) + 128*256)/256 );

 end

end

%以下是二值化及统计手势面积
Gray_data = int32(zeros(ROW,COL));
for r = 1:ROW
for c = 1:COL
if Cb_data(r, c)>133 && Cb_data(r, c)<173 && Cr_data(r, c)>77 && Cr_data(r, c)<127
Gray_data(r,c) = 0 ;
area = area + 1 ;
else
Gray_data(r,c) = 255 ;
end
end
end

%以下是边缘检测
%edge_data=edge(Gray_data,‘sobel’) ;
edge_data = Sobel_Image(Gray_data) ;
% %以下是统计周长
% for r = 1:ROW
% for c = 1:COL
% if edge_data(r, c)==1
% perimeter = perimeter + 1 ;
% end
% end
% end
[H1,H2,H3,perimeter] = OriginMoment(edge_data) ;
function [ img ] = median_filter( image, m )
%----------------------------------------------
%中值滤波
%输入:
%image:原图
%m:模板的大小3*3的模板,m=3

%输出:
%img:中值滤波处理后的图像
%----------------------------------------------
n = m;
[ height, width ] = size(image);
x1 = int32(image);
x2 = x1;
for i = 1: height-n+1
for j = 1:width-n+1
mb = x1( i:(i+n-1), j:(j+n-1) );
mb = mb(😃;
mm = median(mb);
x2( i+(n-1)/2, j+(n-1)/2 ) = mm;

    end
end

img = x2;

end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李昌锋,郭生挺,陈文婷.基于静态手势识别的视力检测系统设计[J].科技创新与应用. 2021,11(13)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值