matlab版hog+svm图像二分类_Timmyxx的博客-程序员宝宝

特征提取学习,找到的hog+svm代码:

转载自http://blog.csdn.net/jcy1009015337/article/details/53763484

最近因为需要实现hog+svm的分类代码,网上找了一些例子,觉得这篇博客还不错:http://blog.csdn.net/libin88211/article/details/19968205,下面结合该博客写一下步骤,供新手们交流学习~~(如果侵犯了版权问题的话,可以联系删除,尊重作者原创~~)

hog干嘛的?hog就是提取图片特征的。hog源程序参考http://blog.csdn.net/huangli19870217/article/details/7695458

准备工作:

1、创建正阳本文件夹“pos”将正阳本放入

pos文件夹用来存放正阳样本的,下图是我自己准备的(就是一些狗狗的图像)


2、创建负样本文件夹“neg”将负样本放入

neg文件夹用来存放负样本,下图准备的是一些猫的(当然,负样本嘛,随便的,可以是其他的东东,不一定非要是猫,只要正阳样本是狗就行~~)


这里正负样本都是20个。

3、制作正阳本文件列表pos_list.txt

制作参考下图:


4、制作负样本文件列表neg_list.txt


制作参考下图:

5、执行下面程序进行训练,测试

[plain]  view plain   copy
  1. clc;   
  2. clear ;    
  3. %% 训练阶段    
  4. ReadList1  = textread('pos_list.txt','%s','delimiter','\n');%载入正样本列表    
  5. sz1=size(ReadList1);    
  6.     
  7. label1=ones(sz1(1),1); %正阳本标签    
  8. ReadList2  = textread('neg_list.txt','%s','delimiter','\n');%载入负样本列表    
  9. sz2=size(ReadList2);    
  10. label2=zeros(sz2(1),1);%负样本标签    
  11. label=[label1',label2']';%标签汇总    
  12. total_num=length(label);    
  13. data=zeros(total_num,1764);    
  14.   
  15. %读取正样本并计算hog特征    
  16. for i=1:sz1(1)    
  17.    name= char(ReadList1(i,1));    
  18.    image=imread(strcat('D:\daily\冰\机器学习\pos\',name));   
  19.    im=imresize(image,[64,64]);    
  20.    img=rgb2gray(im);    
  21.    hog =hogcalculator(img);    
  22.    data(i,:)=hog;    
  23. end    
  24.   
  25. %读取负样本并计算hog特征    
  26. for j=1:sz2(1)    
  27.    name= char(ReadList2(j,1));    
  28.    image=imread(strcat('D:\daily\冰\机器学习\neg\',name));    
  29.    im=imresize(image,[64,64]);    
  30.    img=rgb2gray(im);    
  31.    hog =hogcalculator(img);    
  32.    data(sz1(1)+j,:)=hog;    
  33. end    
  34.   
  35. [train, test] = crossvalind('holdOut',label);    
  36. cp = classperf(label);    
  37. svmStruct = svmtrain(data(train,:),label(train));    
  38. save svmStruct svmStruct    
  39. classes = svmclassify(svmStruct,data(test,:));    
  40. classperf(cp,classes,test);    
  41. cp.CorrectRate     
  42.   
  43. %% 训练完成后保存 svmStruct即可对新输入的对象进行分类了无需再执行上面训练阶段代码    
  44. load svmStruct    
  45. test=imread('test.jpg');    
  46.        
  47. im=imresize(test,[64,64]);    
  48. figure;    
  49. imshow(im);    
  50. img=rgb2gray(im);    
  51. hogt =hogcalculator(img);    
  52. classes = svmclassify(svmStruct,hogt);%classes的值即为分类结果    

源代码以及图片文件 已经上传CSDN,这里给出链接~~

http://download.csdn.net/detail/jcy1009015337/9716482


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32141283/article/details/78313808

智能推荐

神策数据助力海通证券,精耕 4 大场景,全面强化数字化运营_券商运营场景_神策数据的博客-程序员宝宝

神策数据与海通证券已成为深度合作伙伴。作为证券行业的领先券商,海通证券引入神策分析、神策智能运营、神策用户画像三大数字智能产品,致力于从客户真实需求出发,让服务更贴近金融本质。海通证券成立于 1988 年,是国内最早成立的证券公司中唯一未被更名、注资的大型证券公司。公司总资产超 6800 亿元、净资产超 1300 亿元,自 2007 年以来公司总资产和净资产一直位居国内证券行业前列。公司拥有卓越的综合性业务平台和成熟的海外业务平台,经营网点遍及全球 14 个国家和地区;在境内拥有近 340 家证券及期货

Spring Bean 实现 BeanNameAware 、 BeanFactoryAware_weixin_30672019的博客-程序员宝宝

若 bean 实现了 BeanNameAware 接口,工厂调用Bean的setBeanName()方法传递 bean 的 id值。若 bean 实现了 BeanFactoryAware 接口,工厂调用setBeanFactory()方法传入工厂自身。转载于:https://www.cnblogs.com/luffya/p/3475238.html...

2021:屠龙者终将变成恶龙_独泪了无痕的博客-程序员宝宝

一、开篇  时光过得飞快,不知不觉中,2021年已经接近尾声,充满希望的2022年即将临近。走过2021,再回首,思考亦多,感慨亦多,收获亦多。回顾我这一年,发生了很多事,可以说“忙并收获着,累并快乐着”成了心曲的主旋律,长鸣耳畔儿。既有硕果累累的喜悦,又有与同事协同攻坚的艰辛,也有遇到困难和挫折时的惆怅。从13年到如今,我已经工作了八年,八年,人生能有多少个八年。可能在一个地方呆久了,确实会懒很多,见识也会相对的少了。我发现经历这些后的自己开始享受舒适,享受现在朝九晚六的工作,不愿意脱离现在的舒适圈。回

Vue拖拽组件awe-dnd_雪梅零落的博客-程序员宝宝

Vue拖拽组件awe-dnd安装依赖在main.js中注册在页面drag.vue中运用效果图安装依赖npm install awe-dnd --save安装相关文章:npm 安装指定版本(按版本安装)在main.js中注册import VueDND from 'awe-dnd';// 注册-拖拽组件Vue.use(VueDND);在页面drag.vue中运用<templ...

R语言:方差分析之单因素方差分析和双因素方差分析_r语言双因素方差分析_雨落水涨next的博客-程序员宝宝

方差分析方差分析(Analysis of Variance,ANOVA),是利用样本数据检验两个或两个以上的总体均值之间是否有差异的一种方法;(缘起多个处理问题-即多个因变量)即若所有自变量对应的因变量的均值相等,则意味着自变量对因变量没有影响,没有显著差异散点图观察不能提供充分的证据证明不同行业被投诉的次数之间有显著差异这种差异可能是由于抽样的随机性所造成的常用情况:自变量是分类变量,因变量是数值变量方差分析中常用的基本假定是:正态性:每个总体均服从正态分布,也就是说,对于每一个水

随便推点

BUUCTF MISC 50分以上题目_buuctf huyao_ruokeqx的博客-程序员宝宝

文章目录[ACTF新生赛2020]music[GUET-CTF2019]soul sipse[GWCTF2019]huyao[ACTF新生赛2020]music得到一个wav 文件异常 且有很多 A1对A1进行异或得到正常音频听到 actfabcdfghijkbuu的flag要改一下 所以是flag{abcdfghijk}[GUET-CTF2019]soul sipse一个wav 拖audacity 调到频谱图 采样频率22050Hz 得到hint这两个数的和是多少wav文件steg

vROPS中获取虚拟机在VC中的UUID_weixin_30690833的博客-程序员宝宝

  vROPS中虚拟机对象的ID为resourceID,跟vCenter中虚拟机的UUID是不一致的,因此想要将vROPS中的虚拟机和vCenter中的虚拟机对应肯定不能靠虚拟机名称,而是一定要靠UUID。下面的示例显示如何通过vROPS API获取虚拟机在vCenter中的UUID步骤1,获取vROPS TokenURL: https://vrops.vmware.com/su...

《一份不太简短的LaTeX介绍》读书笔记_睡睡觉多好的博客-程序员宝宝

阅读《一份不太简短的LaTeX介绍》的个人笔记

spring.net框架配置和使用_weixin_30487317的博客-程序员宝宝

          spring.net框架学习笔记spring.net框架是用于解决企业应用开发的复杂性的一种容器框架,它的一大功能IOC(控制反转),通俗解释就是通过spring.net框架的容器创建对象实体,而不是通过程序员new出来。只要在spring.net的相应xml中配置节点,在获取对象的时候就可以通过IApplicationContext ctx = ContextReg...

【ASP.NET Core MVC 入门须知】Net Core和Net Framework 的区别_weixin_30312557的博客-程序员宝宝

1、简单介绍从上面图中我们可以看到.net 主要分为三个部分 .net FrameWork,.net Core ,XamarinXAMARIN 主要用来构建APP的主要用的是C#语言.NET Framework 这个是我们现在经常用的,用这个可以创建windows应用程序还有web applications , ...