• 大小: 1000KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: 其他
  • 标签:

资源简介

最邻近算法KNN识别字符最邻近算法KNN识别字符最邻近算法KNN识别字符最邻近算法KNN识别字符

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include
using namespace cv;
using namespace ml;

//利用KNN识别字符
int main()
{
////===============================读取训练数据===============================////
    //图片共有10类
    const int classSum = 26;
    //每类共50张图片
    const int imagesSum = 10;
//图片尺寸
const int imageRows = 33;
    const int imageCols = 26;
    //每一行一个训练图片
    float trainingData[classSum*imagesSum][imageRows*imageCols] = {{0}};
    //训练样本标签
    float labels[classSum*imagesSum]={0};

    for (int i = 0; i < classSum; i++)
    {
        //目标文件夹路径
        std::string inPath = “E:\\image\\letters\\“;
char label = ‘a‘;
        int k = 0;
label = label + i;
        inPath = inPath + label + “\\*.jpg“;
        //用于查找的句柄
        long handle;
        struct _finddata_t fileinfo;
        //第一次查找
        handle = _findfirst(inPath.c_str()&fileinfo);
        if(handle == -1)
            return -1;
        do
        {
            //找到的文件的文件名
            std::string imgname = “E:/image/letters/“;
            imgname = imgname + label + “/“ + fileinfo.name;
//std::cout<            Mat src = imread(imgname 0);
            if (src.empty())
            {
                std::cout<<“can not load image \n“<                return -1;
            }
//序列化后放入作为样本矩阵的一行
            for(int j = 0; j            {
                trainingData[i*imagesSum + k][j] = (float)src.data[j];
            }
            // 设置样本标签
labels[i*imagesSum + k] = label;
            k++;

        } while (!_findnext(handle &fileinfo));
        _findclose(handle);
    }
    //训练样本数据及对应标签
    Mat trainingDataMat(classSum*imagesSum imageRows*imageCols CV_32FC1 trainingData);
    Mat labelsMat(classSum*imagesSum 1 CV_32FC1 labels);
//std::cout< //std::cout<
////===============================创建KNN模型===============================////
Ptrmodel = KNearest::create();
model->setDefaultK(classSum);
model->setIsClassifier(true);
PtrtrainData = TrainData::create(trainingDataMat ROW_SAMPLE labelsMat);
model->train(trainData);

//model->save(“E:/image/KNearestModel.xml“); 
////===============================预测部分===============================////

Mat src dst;
src = imread(“E:/image/image/letters.png“);
if (src.empty())
{
std::cout<<“can not load image \n“< return -1;
}
dst = src.clone();
//创建感兴趣区域选取右侧10列作为预测数据
cvtColor(src src COLOR_BGR2GRAY);

blur(src src Size(99));
threshold(src src 210 255 THRESH_BINARY);
Canny(src src 20 80 3 false);
std::vector> contours;
std::vectorhierarchy;
findContours(src contours hierarchy RETR_EXTERNAL CHAIN_APPROX_SIMPLE Point(00));

for (int i = 0; i < cont

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4357  2018-02-03 21:07  KNN-letters\code1.cpp

     文件       2570  2018-02-03 21:06  KNN-letters\code2.cpp

     文件        908  2018-02-03 20:44  KNN-letters\letters\a\250.jpg

     文件        921  2018-02-03 20:44  KNN-letters\letters\a\251.jpg

     文件        915  2018-02-03 20:44  KNN-letters\letters\a\252.jpg

     文件        874  2018-02-03 20:44  KNN-letters\letters\a\253.jpg

     文件        914  2018-02-03 20:44  KNN-letters\letters\a\254.jpg

     文件        873  2018-02-03 20:44  KNN-letters\letters\a\255.jpg

     文件        873  2018-02-03 20:44  KNN-letters\letters\a\256.jpg

     文件        917  2018-02-03 20:44  KNN-letters\letters\a\257.jpg

     文件        870  2018-02-03 20:44  KNN-letters\letters\a\258.jpg

     文件        914  2018-02-03 20:44  KNN-letters\letters\a\259.jpg

     文件       1025  2018-02-03 20:44  KNN-letters\letters\b\240.jpg

     文件       1065  2018-02-03 20:44  KNN-letters\letters\b\241.jpg

     文件       1020  2018-02-03 20:44  KNN-letters\letters\b\242.jpg

     文件       1071  2018-02-03 20:44  KNN-letters\letters\b\243.jpg

     文件       1013  2018-02-03 20:44  KNN-letters\letters\b\244.jpg

     文件       1058  2018-02-03 20:44  KNN-letters\letters\b\245.jpg

     文件       1026  2018-02-03 20:44  KNN-letters\letters\b\246.jpg

     文件       1017  2018-02-03 20:44  KNN-letters\letters\b\247.jpg

     文件       1031  2018-02-03 20:44  KNN-letters\letters\b\248.jpg

     文件       1057  2018-02-03 20:44  KNN-letters\letters\b\249.jpg

     文件        879  2018-02-03 20:44  KNN-letters\letters\c\230.jpg

     文件        871  2018-02-03 20:44  KNN-letters\letters\c\231.jpg

     文件        881  2018-02-03 20:44  KNN-letters\letters\c\232.jpg

     文件        882  2018-02-03 20:44  KNN-letters\letters\c\233.jpg

     文件        879  2018-02-03 20:44  KNN-letters\letters\c\234.jpg

     文件        880  2018-02-03 20:44  KNN-letters\letters\c\235.jpg

     文件        880  2018-02-03 20:44  KNN-letters\letters\c\236.jpg

     文件        873  2018-02-03 20:44  KNN-letters\letters\c\237.jpg

............此处省略264个文件信息

评论

共有 条评论

相关资源