【图像分类】基于HOG特征结合SVM实现图像分类识别附matlab代码

news/2024/4/29 14:02:43/文章来源:https://blog.csdn.net/matlab_dingdang/article/details/126938459

1 内容介绍

​为了满足人工智能在目标识别方法中的应用需求,需要具备对海量数据进行智能分类、识别、判读的能力.进一步挖掘了目标特性数据库数据,并将基于HOG+SVM的目标识别算法应用于红外目标识别过程中.选择采集到的汽车、直升机、飞机、舰船、无人机等目标,并结合HOG算子与SVM分类方法来实现目标检测与分类算法,从而实现了目标智能化分类研究,为后续目标特性的进一步分析以及导引头智能化算法设计提供了支撑.

2 部分代码

%% 用hog特征对图像进行多分类,svm训练,1 VS 1  

%% 1 数据集,包括训练的和测试的 (注意自己图片存放路径,附录我给出示例下载图片链接) 

imdsTrain = imageDatastore('train_images',...  

    'IncludeSubfolders',true,...  

    'LabelSource','foldernames');  

imdsTest = imageDatastore('test_image');  

%% 显示训练的图片种类Labels和数量Count

Train_disp = countEachLabel(imdsTrain);

disp(Train_disp);

  

%%   2 对训练集中的每张图像进行hog特征提取,测试图像一样  

% 预处理图像,主要是得到features特征大小,此大小与图像大小和Hog特征参数相关  

imageSize = [256,256];% 对所有图像进行此尺寸的缩放  

image1 = readimage(imdsTrain,1);  

scaleImage = imresize(image1,imageSize);  

[features, visualization] = extractHOGFeatures(scaleImage);  

imshow(scaleImage);hold on; plot(visualization)  

  

% 对所有训练图像进行特征提取  

numImages = length(imdsTrain.Files);  

featuresTrain = zeros(numImages,size(features,2),'single'); % featuresTrain为单精度  

for i = 1:numImages  

    imageTrain = readimage(imdsTrain,i);  

    imageTrain = imresize(imageTrain,imageSize);  

    featuresTrain(i,:) = extractHOGFeatures(imageTrain);  

end  

  

% 所有训练图像标签  

trainLabels = imdsTrain.Labels;  

  

% 开始svm多分类训练,注意:fitcsvm用于二分类,fitcecoc用于多分类,1 VS 1方法  

classifer = fitcecoc(featuresTrain,trainLabels);  

  

%% 预测并显示预测效果图  

numTest = length(imdsTest.Files);  

for i = 1:numTest  

    testImage = readimage(imdsTest,i);  

    scaleTestImage = imresize(testImage,imageSize);  

    featureTest = extractHOGFeatures(scaleTestImage);  

    [predictIndex,score] = predict(classifer,featureTest);  

    figure;imshow(testImage);  

    title(['预测图像: ',char(predictIndex)]);  

end  

3 运行结果

4 参考文献

[1]姜经纬, 程传蕊. 基于HOG+SVM的图像分类系统的设计与实现[J]. 漯河职业技术学院学报, 2017, 16(2):4.

[2]宋敏敏, 周泽亚, 邱燕,等. 基于HOG特征和SVM分类器的红外图像智能检测与分类方法[J]. 红外, 2022(043-004).

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10450.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vite 实践】Vite 库模式能满足你吗?或许你需要统一构建

2022 年本人投入了 Vite 的怀抱,开始参与到 Vite 社区中,陆续开发了一些插件。 Vite 秉承了开箱即用,简化配置的思路,确实显著提升了前端开发体验。 但是在类库模式的构建上却有所欠缺,只能处理单个输入和单输入出的…

个人笔记--数据库理论 01 关系模型介绍——基于《数据库系统概念》第七版

关系模式 关系的例子 关系模型是目前广泛应用的数据模型由表的集合构成 例如 IDnamedpt_namesalary11111JAMCS12345 元组 tuple:表中的一行,元素无所谓属性 attribute : 原子的,不可再分的,要有属性域,如上表的nam…

云原生爱好者周刊:延迟加载任意 OCI 镜像 | 2022-09-13

开源项目推荐 SOCI Snapshotter SOCI Snapshotter 是一个 Containerd Snapshotter 插件,可以延迟加载任意 OCI 镜像,不需要 Stargz Snapshotter 一样构建特殊格式的镜像才能延迟加载。 Authentication Proxy 这个项目使用 YARP (Yet Another Reverse…

Git的认识和使用

目录 一、前置准备 二、git简介 三、gitee.com的基本使用 1.创建仓库(私库和公库) 2.创建文件及文件夹 新建文件夹两种方式 ①​ ② 3.删除 删除文件 删除仓库 四、组长组员的git使用 git clone 查看文件 git status git add git commit git push ## 命令行配置 多个…

葡聚糖-MAL/NHS/N3/Alkyne/SH/Biotin/CHO/OPSS/OH

产品名称: 葡聚糖-马来酰亚胺,葡聚糖-MAL,马来酰亚胺功能化葡聚糖 英文名称:Dextran-MAL PEG分子量可选:350,550,750,1k,2k,3.4k,5k,10k,20k(可…

[仅需1步]企业微信群机器人[0基础接入][java]

[仅需1步]企业微信群机器人[0基础接入][java]背景介绍使用测试项目背景 公司需要把日常的服务器错误抛到企业微信群中,我正好记录下使用企业微信群机器人… 介绍 企业微信群机器人 应用介绍 企业微信是腾讯微信团队打造的企业通讯与办公工具,具有与微信一致的沟…

医院检验LIS系统源码

医院lis源码 实验室信息管理系统源码 .net检验系统源码 医院系统源码 了解更多源码内容,可私信我。 开发环境:.NET4.0 WPF VS2017或VS2019SQL2016 实验室信息管理系统以条码标本为主线,实现从采集、检测、报告、归档的全程跟踪管理。 支持…

DevOps自动化测试的原则和实践

DevOps是为了在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间。在对系统进行变更时,质量很重要。高质量才能让业务价值传递到系统干系人。『自动化测试既是提高质量的一种重要手段,也是实施持续测试必需的能力,因此它是DevOps…

修改WebBrowser控件的内核解决方案

首先说一下原理 当下很大浏览器他们都是用了IE的core, 这个core只提供HTML/JS的执行和渲染,并没有给出关于界面和一些特性上的事,所以开发自己浏览器如果基于IE core需要自己完成这些内容。 一张图很好的说明了这个情况,IE浏览器的架构:http://msdn.microsoft.com/en-us/li…

nginx - 负载均衡配置-负载均衡策略

目录 知识点1:网站流量分析指标 什么是pv? 什么是uv? 什么是IP? 知识点2:正向代理和反向代理 知识点3:负载均衡实验 IP地址规划: 实验拓扑图 知识点4:负载均衡策略 1、请求…

Spring5.3学习——from 官网 day1-1

Spring5.3学习——from 官网day1-1Spring5.3学习——from 官网day1-1前言概述Spring的设计理念Spring核心:IOC什么是IOC解释IOC容器的包什么是BeanBeanFactory接口简述ApplicationContext接口简述BeanFactory源码描述以下是Bean工厂创建和销毁bean的完整生命周期流程…

Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)

​上一期文章中,分享了Matlab帕累托图的绘制模板: 这一次,再来分享一种特殊的线图:平行坐标图。 ‘平行坐标图是一种通常的可视化方法,用于对高维几何和多元数据的可视化……为了克服传统的笛卡尔直角坐标系容易耗尽空…

好心情精神心理科:80%双相情感障碍被误诊,千万注意鉴别

双相情感障碍又称躁郁症,其表现复杂,容易与其他精神疾病(包括边缘型人格障碍)相混淆,超过80%的患者未能得到正确诊断。 具体如何区分双相情感障碍与边缘型人格障碍?在回答这个问题之前,好心情精…

从规模走向规模经济,锅圈食汇回归餐饮初心

预制菜源自美国,在日本因冷链技术发展而普及。后疫情时代,预制菜在中国餐饮市场加速渗透,成为行业的新风向。 9月,第一财经与CBNData发布“Growth502022中国新消费品牌年度增长力榜单”,预制菜品牌锅圈食汇入选。 锅…

设计模式学习笔记--责任链模式

责任链模式 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件

我们经常会使用移动硬盘或 U 盘进行大体积文件的分享、携带。但有时候别人提供的NTFS移动硬盘或者U 盘在 Mac 电脑中只能读取,无法将文件导入到其中。这是因为常见的 NTFS 硬盘格式在 Mac 中不能兼容。 当你从 Windows 转到了 Mac 平台,可能会发现之前用…

RocketMQ-流程图-概念

文章目录RocketMq的角色消息发送的流程RocketMq的角色 Producer:消息的发送者,生产者;举例:发件人Consumer:消息接收者,消费者;举例:收件人Broker:暂存和传输消息的通道…

Python数据分析教程(一):Numpy

数据的纬度 一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构Numpy Numpy介绍NumPy是一个开源的Python科学计算基础库,包含:一个强大的N维数组对象…

渗透测试神器Nmap使用教程

渗透测试神器Nmap使用教程1.nmap简介2.常用参数3.nmap实战命令1.nmap简介 Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap…

java计算机毕业设计基于安卓Android的金融保险app(源码+系统+mysql数据库+Lw文档)

项目介绍 计算机信息技术的发展,推动了金融保险信息化管理的进程,并随着互联网概念的提出,各种互联网软件也应运而生。在传统的管理中,各种信息管理难,传播速度慢,需要耗费很长时间统计核查,不…