当前位置:首页 > 代码 > 正文

目标检测matlab代码(基于matlab的目标提取)

admin 发布:2022-12-19 20:03 122


今天给各位分享目标检测matlab代码的知识,其中也会对基于matlab的目标提取进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求助DPM目标检测MATLAB代码

function vu = get_mask()//定义函数VU bg = imread('tu\\131.jpg');//读入图片131.jpg bg = rgb2gray(bg);//将图片转换为灰度图像 bg = im2bw(bg, graythresh(bg));//再转换为二值图,阈值是对灰度图像用最大类间方差法得到的 Img = imread('tu..

运动目标检测 高斯混合模型 matlab

--------------------------------------------------------------------------

% 基于中位数算法的运动目标检测

% 第1种实现方法

%--------------------------------------------------------------------------

%*******************************读取视频数据********************************

% 调用aviread函数读取视频文件

vid = aviread('WalkingMan.avi')

size(vid(1).cdata) % 查看第1帧的大小,也是每一帧的大小

vid(1).colormap % 查看第1帧的colormap值

%*****************************数据类型的转换********************************

% 把vid的cdata字段的取值转换成一个240×360×3×80的四维数组IM

IM = cat(4,vid.cdata);

size(IM) % 查看IM的大小

[m,n,k,h] = size(IM); % 把IM的大小赋给四个变量

% 把IM转换成一个80行,240×360×3列的矩阵

I = reshape(IM,[m*n*k,h])';

%********************调用median函数求中位数,进行视频图像分割****************

I = median(I); % 求I矩阵中各列元素的中位数

I = reshape(I,[m,n,k]); % 将向量I转成240×360×3的三维数组,得到背景图像

figure; % 新建一个图形窗口

imshow(I); % 显示背景图像

figure; % 新建一个图形窗口

imshow(IM(:,:,:,1) - I); % 显示第1帧中的目标图像

%--------------------------------------------------------------------------

% 基于中位数算法的运动目标检测

% 第1种实现方法

%--------------------------------------------------------------------------

% 调用mmreader函数创建读取视频文件的多媒体阅读对象WalkManObj

WalkManObj = mmreader('WalkingMan.avi');

% 根据多媒体阅读对象WalkManObj,读取视频的各帧图像数据

IM = read(WalkManObj, [1, inf]);

[m,n,k,h] = size(IM); % 把IM的大小赋给四个变量

% 把IM转换成一个80行,240×360×3列的矩阵

I = reshape(IM,[m*n*k,h])';

I = median(I); % 求I矩阵中各列元素的中位数

I = reshape(I,[m,n,k]); % 将向量I转成240×360×3的三维数组,得到背景图像

figure; % 新建一个图形窗口

imshow(I); % 显示背景图像

figure; % 新建一个图形窗口

imshow(IM(:,:,:,1) - I); % 显示第1帧中的目标图像

matlab图像识别

1.识别静态的整个人体较难;即使识别出来结果也不可靠,所以现在主要以手势/人脸识别为主;这是因为手和脸上面有比较独特的特征点。你说的滤波归根结底还是要找出具有灰度跳变的高频部分作为人体;这除非背景中除了人以外没有其他突出的物体;否则光凭滤波二值法检测人体是不太现实。

2 两张图片中人要是产生相对运动,检测起来就容易多了;利用帧间差分找到图像中灰度相差大的部分(你用的滤波也是一种手段);然后二值化区域连通;要是图像中没有其他移动物体计算连通区域的变动方向就是人的运动方向。

你可以去PUDN上搜搜相关的目标检测的代码;完全和你这个对应是不可能的。照你说的情况可以先建立起静态背景的模型(或者直接在没人的时候拍张);然后不断的与这个背景做差,原理和帧间差分一样。建议你先从典型的帧间差分例程开始下手(比如移动车辆的检测,这个比较多)。

你在二值化之后加上一个区域连通的步骤;即使用膨胀或者闭运算;这样你的轮廓就是连续的了;用matlab的话bwlabel可以统计连通区域里面像素的个数也就是人体面积大小。质心就是横竖坐标的平均值;取所有人体点的横竖坐标分别累加;除以坐标总数得到的x和y平均值;这个就是质心了

matlab 基于颜色的目标检测

我认为大致就这意思了:自己琢磨琢磨吧

f=imread(‘图片’);

imshow(f)

[m,n]=size(f);

for i=1:m

for j=i:n

。。。。。

F(i,j)=对图像矩阵每个元素f(i,j)进行和红色进行比较啊,一样就留下,不一样就改为黑色

。。。。

end

end

figure;imshow(F)

关于目标检测matlab代码和基于matlab的目标提取的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/21989.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载