最邻近算法KNN识别字符


最邻近算法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 
“<                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 
“< 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-letterscode1.cpp

     文件       2570  2018-02-03 21:06  KNN-letterscode2.cpp

     文件        908  2018-02-03 20:44  KNN-letterslettersa250.jpg

     文件        921  2018-02-03 20:44  KNN-letterslettersa251.jpg

     文件        915  2018-02-03 20:44  KNN-letterslettersa252.jpg

     文件        874  2018-02-03 20:44  KNN-letterslettersa253.jpg

     文件        914  2018-02-03 20:44  KNN-letterslettersa254.jpg

     文件        873  2018-02-03 20:44  KNN-letterslettersa255.jpg

     文件        873  2018-02-03 20:44  KNN-letterslettersa256.jpg

     文件        917  2018-02-03 20:44  KNN-letterslettersa257.jpg

     文件        870  2018-02-03 20:44  KNN-letterslettersa258.jpg

     文件        914  2018-02-03 20:44  KNN-letterslettersa259.jpg

     文件       1025  2018-02-03 20:44  KNN-lettersletters240.jpg

     文件       1065  2018-02-03 20:44  KNN-lettersletters241.jpg

     文件       1020  2018-02-03 20:44  KNN-lettersletters242.jpg

     文件       1071  2018-02-03 20:44  KNN-lettersletters243.jpg

     文件       1013  2018-02-03 20:44  KNN-lettersletters244.jpg

     文件       1058  2018-02-03 20:44  KNN-lettersletters245.jpg

     文件       1026  2018-02-03 20:44  KNN-lettersletters246.jpg

     文件       1017  2018-02-03 20:44  KNN-lettersletters247.jpg

     文件       1031  2018-02-03 20:44  KNN-lettersletters248.jpg

     文件       1057  2018-02-03 20:44  KNN-lettersletters249.jpg

     文件        879  2018-02-03 20:44  KNN-letterslettersc230.jpg

     文件        871  2018-02-03 20:44  KNN-letterslettersc231.jpg

     文件        881  2018-02-03 20:44  KNN-letterslettersc232.jpg

     文件        882  2018-02-03 20:44  KNN-letterslettersc233.jpg

     文件        879  2018-02-03 20:44  KNN-letterslettersc234.jpg

     文件        880  2018-02-03 20:44  KNN-letterslettersc235.jpg

     文件        880  2018-02-03 20:44  KNN-letterslettersc236.jpg

     文件        873  2018-02-03 20:44  KNN-letterslettersc237.jpg

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)