头发区域面积应该在一定范围内 衣服区域应该很大
所以区域面积在一定范围内看做是人头 否则就去除
可以用regionprops内的area去判断 同时加上长短轴 这里贴一个简单例子
clc; clear all; close all;
I = imread('c:\\cejpg');
I1 = rgb2gray(I);
bw1 = im2bw(I1, graythresh(I1));
bw1 = ~bw1;
bw2 = imopen(bw1, strel('disk', 10));
bw2 = bwareaopen(bw2, 500);
bw3 = bwareaopen(bw2, 1000);
bw4 = bw2(~bw3);
[L, num] = bwlabel(bw4);
Lrgb = label2rgb(L, 'jet', 'w', 'shuffle');
figure;
subplot(3, 2, 1); imshow(I)
subplot(3, 2, 2); imshow(I1)
subplot(3, 2, 3); imshow(bw1)
subplot(3, 2, 4); imshow(bw2)
subplot(3, 2, 5); imshow(bw4)
subplot(3, 2, 6); imshow(I)
hold on;
himage = imshow(Lrgb);
set(himage, 'AlphaData', 05);
从程序看,xdata是在if条件循环中赋值的,如果条件不满足,xdata是得不到值的,这时,if条件外的程序用到xdata时,就会有出错提示。要改,就要在if条件循环前面先赋值,如全0,再在if条件中修改。
参考方案如下:
1、二值化明显就把圆截取出来了,获取钟表的高宽;
3、二值化后反色,获取指针二值图,hough直线检测,检测到三条(71+版本才有这个函数);
4、[Len,
ind]
=
sort(Len(:),
'descend');降序排列,获取分钟、秒针、时针;
5、直线出来了,斜率出来了,获取角度;
6、如果直线2个端点的坐标和小于钟表的高,
就知道处于1
3象限,反之处于2
4象限;
我也刚做过,不知道是和你的一样不。仿真模型输出数据Y
直接在matlab里编程
z=iddata(Y);
armax(z,'na',na,'nc',nc);
就这两条语句就ok,其中na,nc是你自己需要的阶次,自己输入。比如,我想要阶次为10,就写成armax(z,'na',10,'nc',10)
希望能帮到你!
以上就是关于人数统计算法matlab程序。实现图像处理最后统计人数。有偿回报全部的内容,包括:人数统计算法matlab程序。实现图像处理最后统计人数。有偿回报、这是一个matlab识别车牌的程序,为什么系统老是提示xdata未定义急求大神帮解决。。谢谢!!!、用matlab怎么识别一个钟表图片中的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)