• 大小: 14.67MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-29
  • 语言: 其他
  • 标签: opencv  字母识别  

资源简介

opencv3 ANN神经网络字母识别,目前针对1000张样本测试,成功率100%。 效果演示:https://blog.csdn.net/gs1069405343/article/details/98968998

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include     

#include 
#include 
#include 

using namespace cv;
using namespace std;
using namespace ml;


#define CLASSSUM    26   // 图片共有26类
#define IMAGE_ROWS  30   // 统一图片高度
#define IMAGE_COLS  30   // 统一图片宽度
#define IMAGESSUM   1000   // 每一类图片张数

//std::string dirNum[CLASSSUM] = { “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “A“ “B“ “C“ “D“ “E“ “F“ “G“ “H“ “J“ “K“ “L“ “M“ “N“ “P“ “Q“ “R“ “S“ “T“ “U“ “V“ “W“ “X“ “Y“ “Z“ };
//std::string dirNum[CLASSSUM] = { “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“};
std::string dirNum[CLASSSUM] = { “A“ “B“ “C“ “D“ “E“ “F“ “G“ “H““I“ “J“ “K“ “L“ “M“ “N“ “O“ “P“ “Q“ “R“ “S“ “T“ “U“ “V“ “W“ “X“ “Y“ “Z“ };

float trainingData[CLASSSUM*IMAGESSUM][IMAGE_ROWS*IMAGE_COLS] = { { 0 } };  // 每一行一个训练图片
float labels[CLASSSUM*IMAGESSUM][CLASSSUM] = { { 0 } };                     // 训练样本标签

void Testxml()
{
    Ptr model = StatModel::load(“./Image/English.xml“);

    for (int dnum = 0; dnum < CLASSSUM; dnum++)
    {
        std::string inPath = “.\\Image\\english\\“ + dirNum[dnum] + “\\*.jpg“;
        intptr_t handle;
        struct _finddata_t fileinfo;
        handle = _findfirst(inPath.c_str() &fileinfo);
        if (handle == -1) return;
        int num = 0;
        int imgok = 0;

        int imgnum = 0;
        do {
            std::string imgname = “./Image/english/“ + dirNum[dnum] + “/“ + fileinfo.name;
            //cout << imgname << endl;
            Mat srcImage = imread(imgname 0);
            //imshow(“srcImage“ srcImage);
            //waitKey(1);
            if (!srcImage.empty())
            {
                //将测试图像转化为1*128的向量
                resize(srcImage srcImage Size(IMAGE_ROWS IMAGE_COLS) (0 0) (0 0) INTER_AREA);
                threshold(srcImage srcImage 0 255 CV_THRESH_BINARY | CV_THRESH_OTSU);
                Mat_ testMat(1 IMAGE_ROWS*IMAGE_COLS);
                for (int i = 0; i < IMAGE_ROWS*IMAGE_COLS; i++) {
                    testMat.at(0 i) = (float)srcImage.at(i / IMAGE_ROWS i % IMAGE_COLS);
                }

                //使用训练好的MLP model预测测试图像
                Mat dst;
                model->predict(testMat dst);
                //std::cout << “testMat: \n“ << testMat << “\n“ << std::endl;
                //std::cout << “dst: \n“ << dst << “\n“ << std::endl;
                double maxVal = 0;
                Point maxLoc;
                minMaxLoc(dst NULL &maxVal NULL &maxLoc);
                //std::cout  << dirNum[dnum] << “ “ << num++ << “ 测试结果:“ << dirNum[maxLoc.x] << “置信度:“ << maxVal * 100 << “%“ << std::endl;
                if (dirNum[dnum] == dirNum[maxLoc.x]) { 
                    imgok++; 
                }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\.vs\
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\.vs\xml\
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\.vs\xml\v14\
     文件       36864  2019-08-09 12:08  opencv3 神经网络字母识别\.vs\xml\v14\.suo
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\Debug\
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\x64\
     目录           0  2019-08-09 18:09  opencv3 神经网络字母识别\x64\Debug\
     文件      183296  2019-08-09 17:40  opencv3 神经网络字母识别\x64\Debug\xml.exe
     文件     1018076  2019-08-09 17:40  opencv3 神经网络字母识别\x64\Debug\xml.ilk
     文件     3313664  2019-08-09 17:40  opencv3 神经网络字母识别\x64\Debug\xml.pdb
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\x64\Release\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\
     文件     4129258  2019-08-09 16:49  opencv3 神经网络字母识别\xml\Image\English.xml
     目录           0  2019-08-09 18:10  opencv3 神经网络字母识别\xml\Image\Error\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\A\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\B\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\C\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\D\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\E\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\F\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\G\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\H\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\I\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\J\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\K\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\L\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\M\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\N\
     目录           0  2019-08-09 18:12  opencv3 神经网络字母识别\xml\Image\Error\O\
............此处省略35个文件信息

评论

共有 条评论