资源简介
SVM应用实例:药品(胶囊)识别与分类 SVM应用实例:药品(胶囊)识别与分类 SVM应用实例:药品(胶囊)识别与分类 SVM应用实例:药品(胶囊)识别与分类
代码片段和文件信息
/*
SVM应用实例:药品(胶囊)识别与分类
*/
#include
#include
#include
using namespace cv;
using namespace ml;
void findSamplecontours(InputArray src OutputArrayOfArrays contours);
//使用SVM进行胶囊分类
int main()
{
//样本总类别数
const int classSum = 6;
//每个样本选取的特征个数
const int featureSum = 3;
//训练样本总数
const int sampleSum = 57;
//每种类别对应的名称
const std::string labelName[6] = {“green_peru“ “brown“ “darkcyan“ “black“ “white_brown“ “saddlebrown“};
//训练数据及标签
Mat trainDataMat = Mat::zeros(sampleSum featureSum CV_32FC1);
Mat labelsMat = Mat::zeros(sampleSum 1 CV_32SC1);
int k = 0;
////========================创建训练数据==================================////
for (int label = 0; label < classSum; label++)
{
//训练图像所在文件夹
std::string path = “E:/image/image/classification/capsule/pills_class_“;
char temp[256];
sprintf_s(temp “%d“ label);
path = path + temp + “.png“;
Mat src = imread(path);
if (src.empty())
{
std::cout<<“can not load image. \n“< return -1;
}
//imshow(“input“ src);
//获取每个胶囊的轮廓
std::vector>contours;
findSamplecontours(src contours);
for(int i = 0; i < contours.size(); i++)
{
if(contourArea(contours[i]) > 50)
{
//建立掩模MASK
Mat mask = Mat::zeros(src.size() src.type());
drawContours(mask contours i Scalar(255 255 255) -1);
//获得MASK对应区域的图像
src.copyTo(maskmask);
//求各个通道的均值
Scalar maskSum = sum(mask);
maskSum = maskSum/contourArea(contours[i]);
//取前三个通道即BGR通道的均值作为特征
for (int j = 0; j < featureSum; j++)
{
trainDataMat.at(kj) = maskSum[j];
}
labelsMat.at(k0) = label;
k++;
}
}
}
std::cout<<“trainDataMat: \n“< std::cout<<“labelsMat: \n“<
////========================使用SVM训练部分==================================////
Ptr model = SVM::create();
model->setType(SVM::C_SVC);
model->setKernel(SVM::POLY);
model->setDegree(1.0);
model->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER1001e-6));
model->train(trainDataMatROW_SAMPLElabelsMat);
////========================测试部分==================================////
Mat testImg = imread(“E:/image/image/classification/capsule/pills_test.png“);
if (testImg.empty())
{
std::cout<<“can not load image. \n“< return -1;
}
std::vector>testContours;
findSamplecontours(testImg testContours);
//对测试图像中的样本进行逐个判断
for(int i = 0; i < testContours.size(); i++)
{
if(contourArea(testContours[i]) > 50)
{
Mat testDataMat = Mat::zeros(1 featureSum CV_32FC1);
Mat testLabelsMat;
Mat testMask = Mat::zeros(testImg.size() testImg.type());
drawContours(testMask testContours i Scalar(255 255 255) -1);
testImg.copyTo(testMasktestMask);
//求各个通道的均值
Scalar testMaskSum = sum(test
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5020 2018-02-07 11:24 main.cpp
文件 268301 2013-02-15 19:08 capsule\pills_class_0.png
文件 264150 2013-02-15 19:08 capsule\pills_class_1.png
文件 265601 2013-02-15 19:08 capsule\pills_class_2.png
文件 276180 2013-02-15 19:08 capsule\pills_class_3.png
文件 278478 2013-02-15 19:08 capsule\pills_class_4.png
文件 261237 2013-02-15 19:08 capsule\pills_class_5.png
文件 352396 2018-02-05 20:49 capsule\pills_test.png
目录 0 2018-02-06 15:55 capsule
----------- --------- ---------- ----- ----
1971363 9
- 上一篇:HappyEO电子琴 破解版绿色版
- 下一篇:LPC1768技术手册
相关资源
- 数据库课程设计 医院药品进销存系统
- SVM研究的经典英文论文
- SVM_SteveGunn
- 药品进销存管理系统源代码
- libsvm-3.1-[FarutoUltimate3.1Mcode
- 支持向量机在金融领域的应用
- SVM分类算法代码及实验报告
- 医院药品进出口程序
- SVM算法研究--毕业设计论文
- 药品管理信息系统信息管理系统课程
- svm算法文本特征提取形成特征向量
- eCognition Developer软件中使用CART和SVM分
- PCA+SVM+RF
- libsvm32位64位
- SVM 支持向量机相关学习资料合集
- 视频行人检测源码
- 药品销售系统破解版
- 动作识别 Hu距 SVM opencv2.4.9 VS2013
- svm颜色分类
- 使用PSO优化LSSVM
- 基于svm的中文文本分类系统
- 药品信息(2019-08-06).rar
- 药品数据库v7.2.3 drug.db格式数据库含说
- SVM学习笔记+伪码.pdf
- 基于hog+pca+svm行人检测源码
- 机器学习-Hog+SVM小狮子识别.zip
- VMware Remote Console 10.0.3 for WindowsVMware
- 自己训练SVM分类器进行HOG行人检测
- hog+svm性别识别源码
- 国家药品编码本位码信息国产药品截
评论
共有 条评论