• 大小: 30.75MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-24
  • 语言: 其他
  • 标签: Google  

资源简介

对图像数字的简单识别,希望能够给你们参考参考,主要是将数字的特征匹配,在一定的范围内视为相识,再确定数字是否是1 2 3 4.。。。。。。。。。。。

资源截图

代码片段和文件信息

#include 
#include 
#include        
#include 

using namespace cv;
using namespace std;

struct con
{
    double xy;                     //轮廓位置
    int order;                      //轮廓向量contours中的第几个

    bool operator<(con &m)
{
        if(y > m.y) return false;    
        else  if( y == m.y)
{
            if(x < m.x) return true;
            else return false;
        }                           
        else return true;
    }

}con[15];

struct result
{
    double bi;
    int num;

    bool operator<(result &m)
{
        if(bi < m.bi)return true;
        else return false;
    }
}result[15];

Mat num[15];
Mat sample;
void deal(Mat &srcint order);
double compare(Mat &src Mat &sample);
void Threshold(Mat &srcMat &sampleint m);

int main( )
{
    Mat srcImage = imread(“originalSize.png“);
if(!srcImage.data)
{
cout << “读取图片出错!!“ << endl;
return false;
}
imshow(“【原图】“srcImage);
    Mat dstImage grayImage Image; 
    srcImage.copyTo(dstImage);
    cvtColor(srcImage grayImage COLOR_BGR2GRAY);               //将原图像转化成灰度图
// imshow(“【灰度图】“grayImage);                              //显示灰度图
    threshold(grayImage Image 48 255 CV_THRESH_BINARY_INV);  //二值化
imshow(“【二值化图】“grayImage);                            //二值图

    //定义轮廓和层次结构
    vector> contours;   //检测并勾画轮廓
    vector hierarchy; 
    findContours(Imagecontours hierarchy CV_RETR_EXTERNAL CV_CHAIN_APPROX_NONE);   //指定findContours()函数仅搜索最外层的轮廓,而不关注内部可能出现的任何轮廓。

Mat lunkuo = Mat::zeros(srcImage.rowssrcImage.colsCV_8UC3);   //创建一个与原图相同的三通道轮廓图

for(int i = 0;i >= 0;i = hierarchy[i][0])    //依次画出检测到的轮廓
{
drawContours(lunkuocontoursiScalar(00255)CV_FILLED8hierarchy);
}
imshow(“【轮廓检测图】“lunkuo);             //轮廓图

    int i = 0;
    Point2f pp[5][4];
    vector>::iterator It;
    Rect rect[10];
    for(It = contours.begin();It < contours.end();It++)
{                        //画出可包围数字的最小矩形
        Point2f vertex[4];  
        rect[i] = boundingRect(*It);   //计算一个轮廓的矩形边界
        vertex[0] = rect[i].tl();                                                           //矩阵左上角的点
        vertex[1].x = (float)rect[i].tl().x vertex[1].y = (float)rect[i].br().y;           //矩阵左下方的点
        vertex[2] = rect[i].br();                                                           //矩阵右下角的点
        vertex[3].x = (float)rect[i].br().x vertex[3].y = (float)rect[i].tl().y;           //矩阵右上方的点

        for( int j = 0; j < 4; j++)
            line(dstImagevertex[j] vertex[ (j+1)%4 ]Scalar(00255)1);       //画出矩形轮廓区域

        con[i].x = (vertex[0].x+vertex[1].x+vertex[2].x+vertex[3].x) / 4.0;                  //根据中心点判断图像的位置
        con[i].y = (vertex[0].y+vertex[1].y+vertex[2].y+vertex[3].y) / 4.0;
//cout << con[i].x << ““ << con[i].y << con[i].order << endl;
        con[i].order

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-26 15:36  数字匹配\
     目录           0  2018-05-25 21:37  数字匹配\1_HelloOpenCV\
     文件    35344384  2018-05-26 15:36  数字匹配\1_HelloOpenCV.sdf
     文件         906  2014-11-24 10:35  数字匹配\1_HelloOpenCV.sln
     文件       25088  2018-05-26 15:36  数字匹配\1_HelloOpenCV.suo
     文件        1633  2017-12-04 19:17  数字匹配\1_HelloOpenCV\0.png
     文件      272244  2014-07-24 17:19  数字匹配\1_HelloOpenCV\1.jpg
     文件         666  2017-12-04 19:18  数字匹配\1_HelloOpenCV\1.png
     文件        7402  2017-12-27 18:50  数字匹配\1_HelloOpenCV\1_HelloOpenCV.cpp
     文件        3982  2017-02-24 20:22  数字匹配\1_HelloOpenCV\1_HelloOpenCV.vcxproj
     文件         951  2014-11-26 09:37  数字匹配\1_HelloOpenCV\1_HelloOpenCV.vcxproj.filters
     文件         143  2014-11-24 10:35  数字匹配\1_HelloOpenCV\1_HelloOpenCV.vcxproj.user
     文件        1576  2017-12-04 19:19  数字匹配\1_HelloOpenCV\2.png
     文件       65291  2017-03-01 21:24  数字匹配\1_HelloOpenCV\3.jpg
     文件        1746  2017-12-04 19:20  数字匹配\1_HelloOpenCV\3.png
     文件        1535  2017-12-04 19:21  数字匹配\1_HelloOpenCV\4.png
     文件        1506  2017-12-04 19:22  数字匹配\1_HelloOpenCV\5.png
     文件        1907  2017-12-04 19:23  数字匹配\1_HelloOpenCV\6.png
     文件        1359  2017-12-04 19:24  数字匹配\1_HelloOpenCV\7.png
     文件        2020  2017-12-04 19:25  数字匹配\1_HelloOpenCV\8.png
     文件        1893  2017-12-04 19:26  数字匹配\1_HelloOpenCV\9.png
     目录           0  2018-05-26 15:36  数字匹配\1_HelloOpenCV\Debug\
     文件      272244  2014-07-24 17:19  数字匹配\1_HelloOpenCV\Debug\1.jpg
     文件         406  2015-11-24 14:32  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.exe.embed.manifest
     文件         472  2017-02-24 20:14  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.exe.embed.manifest.res
     文件         381  2015-11-24 14:32  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.exe.intermediate.manifest
     文件          81  2018-05-26 15:36  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.lastbuildstate
     文件         938  2018-05-26 15:36  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.log
     文件      404185  2018-05-26 09:23  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.obj
     文件         713  2017-02-17 10:53  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.vcxprojResolveAssemblyReference.cache
     文件           0  2017-02-17 10:53  数字匹配\1_HelloOpenCV\Debug\1_HelloOpenCV.write.1.tlog
............此处省略100个文件信息

评论

共有 条评论