matlab 图像分类

本周工作日志,老师布置了一个小作业,让我们使用matlab实现图像物体分类

目录

文章目录

  • matlab 图像分类
    • 目录
    • 1分类原理
    • 2程序流程
  • 补充

1分类原理

基于一个很朴素的观点,不同物体在色素三维空间里的分布不同,使用svm可以构造一个分类面。

2程序流程

  • 1首先加载图片
  • 2选取不同物体的代表点
  • 3训练svm分类器
  • 4将训练好的分类器应用到整张图片上。

##3代码如下

%给初学者看得
function showline(img)
[n1,n2,~]=size(img);
%我尽量写的简单易懂一点儿
%首先你使用aa=imread(‘1.jpg’) 这个1.jpg 只是个例子,具体看你的图片叫什么,对了把图片放在你的工作目录里面
%或者在1.jpg前面加上D:\研一\路径前缀
%好,前期处理完成,showline(aa),这个具体是aa还是bb就看你怎么取得变量名了。
%现在说一个比较关键的东西,学习matlab最踏实的办法,是哪个不会就help 它一下,但这个比较费时间因为讲的太细了。
imshow(img);
img2=img;%显示图片
x1=floor(ginput(5));
%函数运行到这儿,会弹出鼠标可以移动的十字架,在你觉得作为第一类样本的像素上,选5个点吧,加floor是确保得到的坐标都是整数。
x2=floor(ginput(5));
%这个同理,不过是第二类了。
x3=floor(ginput(5));
%这个也同理.
x=zeros(10,3);
%每次分类的时候都有10个样本,同时每个样本都有三个属性,rgb。
for i=1:5
x(i,:)=reshape(img(x1(i,2),x1(i,1),:),1,3);
x(i+5,:)=reshape(img(x2(i,2),x2(i,1),:),1,3);
end
%赋值,因为图像像素值是N*m*3的矩阵,不好直接用,reshape为1*3的。
y=[ones(5,1);-1*ones(5,1)];
%标签集
x=double(x);
svmstruct=svmtrain(x,y);
%svm训练
group=svmclassify(svmstruct,double(reshape(img,n1*n2,3)));
%使用svm
group=reshape(group,n1,n2);
%将group调整为一个n1*n2的存放类别标签的矩阵。
for i=1:n1-1for j= 1:n2if group(i,j)*group(i+1,j)<1%两者类别不一致,分界线if i<130 %这个是我估计的值,选择 陆地与天交接线下面一点儿的坐标就行img2(i,j,:)=0;endendend
end
for i=1:5
x(i,:)=reshape(img(x2(i,2),x2(i,1),:),1,3);
x(i+5,:)=reshape(img(x3(i,2),x3(i,1),:),1,3);
end
x=double(x);
%赋值,因为图像像素值是N*m*3的矩阵,不好直接用,reshape为1*3的。
y=[ones(5,1);-1*ones(5,1)];
%标签集
svmstruct=svmtrain(x,y);
%svm训练
group=svmclassify(svmstruct,double(reshape(img,n1*n2,3)));
%使用svm
group=reshape(group,n1,n2);
%将group调整为一个n1*n2的存放类别标签的矩阵。
for i=1:n1-1for j= 1:n2if group(i,j)*group(i+1,j)<1%两者类别不一致,分界线if i<170 %这个是我估计的值,这次选择陆地水下面一点儿的值。img2(i,j,1)=255;endendend
end
imshow(img2);

补充

如果还是有不会的,可以扫码关注这个公众号:博主会在24小时内回复

Matlab 基于svm的图像物体分类相关推荐

  1. matlab图像分类器,Matlab 基于svm的图像物体分类

    Matlab 基于svm的图像物体分类 发布时间:2018-05-16 20:27, 浏览次数:1623 , 标签: Matlab svm 本周工作日志,老师布置了一个小作业,让我们使用matlab实 ...

  2. 基于SVM的图像二分类算法

    本实验是用的python代码实现图像的二分类问题,我是在eclipse中搭建python环境. 一.数据集处理 我采用的是甜椒叶数据集(我忘了下载地址在哪里,我只用了一部分数据集),其中健康叶片有37 ...

  3. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  4. 图像物体分类与检测算法综述

    图像物体分类与检测算法综述 转自<计算机学报> 目录 图像物体分类与检测算法综述 目录 图像物体分类与检测概述 物体分类与检测的难点与挑战 物体分类与检测数据库 物体分类与检测发展历程 图 ...

  5. 基于SVM的乳腺癌数据集分类

    目录 1.作者介绍 2.SVM算法介绍 2.1 SVM算法 2.2 SVM算法理解与分析 3.乳腺癌数据集介绍 4.基于SVM的乳腺癌数据集分类实验 4.1 导入所需要的包 4.2 导入乳腺癌数据集 ...

  6. 基于CNN的图像缺陷分类

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 来源:博客园  原文地址:https://w ...

  7. matlab基于dct的图像压缩编码解码_音频压缩编码的基本原理详解

    1.视频编码基本原理 (1) 视频信号的冗余信息 以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号.例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz:色度信号的频 ...

  8. HanLP 基于SVM支持向量机 训练 文本分类

    一.HanLP 基于SVM支持向量机分类器 上篇文章通过朴素贝叶斯文本分类器,训练测试了 搜狗文本分类语料库迷你版 ,本篇继续测试SVM支持向量机分类器. 由于HanLP 官方给出的 SVM 分类器依 ...

  9. 图像的梯度方向matlab,基于梯度方向的图像边缘检测方法与流程

    本发明具体涉及一种基于梯度方向的图像边缘检测方法. 背景技术: 边缘检测是图像处理的基本问题,在图像分割.特征提取.视觉导航等领域有广泛的应用.基于微分的边缘检测算法如Sobel算子.Prewitt算 ...

最新文章

  1. struts配置文件没有标签提示
  2. js如何判断一个对象是不是Array
  3. Java Web-面试题
  4. fopen()及相关函数使用
  5. 某商场G区火灾自动报警与控制系统设计
  6. junit5教程_JUnit5教程
  7. RHEL7挂载本地yum源
  8. 什么是二进制,进制之间是如何转换的,浅显易懂的,一看就会
  9. mand-mobile-rn 多 Android Module link 实现
  10. educoder:实验七 元组和集合
  11. 马桶的尺寸是多少 马桶尺寸是多大2022
  12. 如何设置excel回车换行
  13. Windows 10 自带输入法微软拼音「简体」「繁体」切换快捷键
  14. 【论文总结】Prototype Rectification for Few-Shot Learning(附翻译)
  15. java.lang.IllegalArgumentException: Illegal URL:
  16. TF-IDF算法解析与Python实现
  17. 一个计算机爱好者眼里的隐私
  18. 我为什么劝你不要过度纠结于技术细节?
  19. 下载哈姆雷特英文版并实现文本词频统计以及生成词云图
  20. 纯文本还是HTML邮件

热门文章

  1. life at University of Liverpool
  2. ccaf internship
  3. 【转】gl_NormalMatrix
  4. 1. Linux内核的配置与裁减:
  5. MySQL事务的的介绍及使用
  6. .Net Discovery系列之十二-深入理解平台机制与性能影响(下)
  7. 环境变量PATH 、mv 命令 、cp 命令和 查看文档相关的命令
  8. 数据蒋堂 | 怎样看待存储过程的移植困难
  9. 黄哥漫谈Python 生成器
  10. Oracle “TNS-12535: TNS: 操作超时“故障的解除。