matlab影像分类,用于图像分类的Matlab SVM

我正在使用Matlab的SVM功能来分类从文件夹中读取的图像.我想要做的是首先从文件夹中读取20个图像,然后使用它们来训练SVM,然后给出新图像作为输入,以确定该输入图像是否属于这20个训练图像的相同类别.如果是,那么分类结果应该给我1,如果没有,那么我希望得到-1.

到目前为止,我的书面代码如下:

imagefiles = dir('*.jpg');

nfiles = 20;

for i = 1:nfiles

currentfilename = imagefiles(i).name;

currentimage = imread(currentfilename);

images{i} = currentimage;

images{i} = im2double(images{i});

images{i} = rgb2gray(images{i});

images{i} = imresize(images{i},[200 200]);

images{i} = reshape(images{i}', 1, size(images{i},1)*size(images{i},2));

end

trainData = zeros(nfiles, 40000);

for ii=1:nfiles

trainData(ii,:) = images{ii};

end

class = [1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1];

SVMStruct = svmtrain (trainData, class);

inputImg = imread('testImg.jpg');

inputImg = im2double(inputImg);

inputImg = rgb2gray(inputImg);

inputImg = imresize(inputImg, [200 200]);

inputImg = reshape (inputImg', 1, size(inputImg,1)*size(inputImg,2));

result = svmclassify(SVMStruct, inputImg);

由于图像是从文件夹中按序列读取的,因此细胞图像也是如此.然后我将它们转换为灰度,如代码所示,并调整它们的大小,因为这些图像的大小不同.因此,在这一步之后,我有20个图像,每个图像的大小都是200×200.最后,我将这些作为我的训练数据集,包含20行和200×200列.我检查了所有这些大小的结果,他们似乎工作正常.但是现在唯一的问题是,无论我给它预测什么样的输入图像,它总是给我一个结果,即使对于那些非常不同的图像.好像它运行不正常.有人可以帮我查看问题出在哪里吗?我无法从互联网上的现有资料中找到任何解释.提前致谢.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlabcnn-svm图像分类是一种基于深度学习和支持向量机技术的图像分类方法。该方法的实施流程可以分为三个主要步骤。 首先,需要使用MATLAB中的CNN(卷积神经网络)工具箱来构建和训练一个卷积神经网络。卷积神经网络是一种深度学习算法,通过多层卷积层、池化层和全连接层来学习图像的特征表示。在这个步骤中,我们可以使用MATLAB提供的各种预训练的卷积神经网络模型,也可以根据任务的需求自定义网络结构。通过在大规模图像数据集上进行训练,网络会学习到更高层次的图像特征。 第二步是使用训练好的卷积神经网络提取图像的特征向量。将每个图像输入到网络中,通过网络的前向传播,获取隐藏层的激活值。这些激活值可以被视为图像在卷积神经网络中经过多层变换得到的高级特征表示,可以明显区分不同类别的图像。 最后一步是将提取的特征向量输入到SVM(支持向量机)分类器中进行分类。支持向量机是一种经典的监督学习算法,可以根据特征向量的分布性质来学习一个边界,将不同类别的特征向量区分开来。通过在训练集上学习支持向量机模型的参数,并使用该模型对测试集中的图像进行分类,可以得到图像的预测结果。 总结来说,matlabcnn-svm图像分类是一个结合了卷积神经网络和支持向量机的图像分类方法。通过使用MATLAB中的CNN工具箱构建和训练卷积神经网络,提取图像特征向量,并将其输入到支持向量机分类器中,可以实现对图像的准确分类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值