91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 24.49MB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2023-06-28
  • 語言: 其他
  • 標(biāo)簽: OpenCV??

資源簡(jiǎn)介

實(shí)現(xiàn)了基于opencv 的手寫數(shù)字字符識(shí)別 主要參照文章: http://blog.damiles.com/2008/11/basic-ocr-in-opencv/ 基本上就是按著人家的代碼來配置的,完后小改動(dòng)了幾個(gè)參數(shù),寫了一個(gè)文檔,方便大家學(xué)習(xí)吧。

資源截圖

代碼片段和文件信息

/*
?*??basicOCR.c
?*??
?*
?*??Created?by?damiles?on?18/11/08.
?*??Copyright?2008?Damiles.?GPL?License
?*
?*/
#ifdef?_CH_
#pragma?package?
#endif

#ifndef?_EiC
#include?“cv.h“
#include?“highgui.h“
#include?“ml.h“
#include?
#include?
#include?
#endif

#include?“preprocessing.h“
#include?“basicOCR.h“

basicOCR::basicOCR()//構(gòu)造函數(shù)
{

//initial
sprintf(file_path??“OCR/“);
train_samples?=?50;//訓(xùn)練樣本,總共100個(gè),50個(gè)訓(xùn)練,50個(gè)測(cè)試
classes=?10;//暫時(shí)識(shí)別十個(gè)數(shù)字

size=128;//


trainData?=?cvCreateMat(train_samples*classes?size*size?CV_32FC1);//訓(xùn)練數(shù)據(jù)的矩陣
trainClasses?=?cvCreateMat(train_samples*classes?1?CV_32FC1);

//Get?data?(get?images?and?process?it)
getData();

//train
train();
//Test
test();

printf(“?------------------------------------------------------------------------\n“);
printf(“|\t識(shí)別結(jié)果\t|\t?測(cè)試精度\t|\t??準(zhǔn)確率\t|\n“);
printf(“?------------------------------------------------------------------------\n“);


}



void?basicOCR::getData()
{
IplImage*?src_image;
IplImage?prs_image;
CvMat?rowdata;
char?file[255];
int?ij;
for(i?=0;?i {
for(?j?=?0;?j {

//加載pbm格式圖像,作為訓(xùn)練
if(j<10)
sprintf(file“%s%d/%d0%d.pbm“file_path?i?i??j);
else
sprintf(file“%s%d/%d%d.pbm“file_path?i?i??j);
src_image?=?cvLoadImage(file0);
if(!src_image)
{
printf(“Error:?Cant?load?image?%s\n“?file);
//exit(-1);
}
//process?file
prs_image?=?preprocessing(src_image?size?size);

//Set?class?label
cvGetRow(trainClasses?&row?i*train_samples?+?j);
cvSet(&row?cvRealScalar(i));
//Set?data?
cvGetRow(trainData?&row?i*train_samples?+?j);

IplImage*?img?=?cvCreateImage(?cvSize(?size?size?)?IPL_DEPTH_32F?1?);
//convert?8?bits?image?to?32?float?image
cvConvertScale(&prs_image?img?0.0039215?0);

cvGetSubRect(img?&data?cvRect(00?sizesize));

CvMat?row_header?*row1;
//convert?data?matrix?sizexsize?to?vecor
row1?=?cvReshape(?&data?&row_header?0?1?);
cvCopy(row1?&row?NULL);
}
}
}

void?basicOCR::train()
{
knn=new?CvKNearest(?trainData?trainClasses?0?false?K?);
}

float?basicOCR::classify(IplImage*?img?int?showResult)//第二個(gè)參數(shù)主要用來控制是測(cè)試訓(xùn)練樣本還是手寫識(shí)別
{
IplImage?prs_image;
CvMat?data;
CvMat*?nearest=cvCreateMat(1KCV_32FC1);
float?result;
//處理輸入的圖像
prs_image?=?preprocessing(img?size?size);

//Set?data?
IplImage*?img32?=?cvCreateImage(?cvSize(?size?size?)?IPL_DEPTH_32F?1?);
cvConvertScale(&prs_image?img32?0.0039215?0);
cvGetSubRect(img32?&data?cvRect(00?sizesize));
CvMat?row_header?*row1;
row1?=?cvReshape(?&data?&row_header?0?1?);

result=knn->find_nearest(row1K00nearest0);

int?accuracy=0;
for(int?i=0;i {
if(?(nearest->data.fl[i])?==?result)
????????????????????accuracy++;
}
float?pre=100*((float)accuracy/(float)K);
if(showResult==1)
{
printf(“|\t????%.0f????\t|?\t????%.2f%%??\t|?\t?%d?of?%d?\t|?\n“resultpreaccuracyK);
printf(“?------------

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????248320??2013-11-29?17:36??基于opencv?的手寫數(shù)字字符識(shí)別\基于opencv的手寫數(shù)字字符識(shí)別.doc

?????文件????1539898??2013-11-19?11:03??基于opencv?的手寫數(shù)字字符識(shí)別\基于OpenCV的脫機(jī)手寫字符識(shí)別技術(shù)_許雁飛.pdf

?????文件??????87515??2013-11-27?19:24??基于opencv?的手寫數(shù)字字符識(shí)別\實(shí)驗(yàn)結(jié)果截圖\實(shí)驗(yàn)結(jié)果2.jpg

?????文件??????89254??2013-11-27?19:26??基于opencv?的手寫數(shù)字字符識(shí)別\實(shí)驗(yàn)結(jié)果截圖\實(shí)驗(yàn)結(jié)果9.jpg

?????文件??????29696??2013-11-24?22:12??基于opencv?的手寫數(shù)字字符識(shí)別\流程圖\主流程圖.vsd

?????文件??????59904??2013-11-25?17:39??基于opencv?的手寫數(shù)字字符識(shí)別\流程圖\細(xì)化流程圖.vsd

?????文件???23581429??2013-11-28?16:19??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\VS工程\Character_Recognition.rar

?????文件???????3885??2013-11-27?20:08??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\代碼\basicOCR.cpp

?????文件????????608??2013-11-26?17:34??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\代碼\basicOCR.h

?????文件???????3534??2013-11-25?22:47??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\代碼\main.cpp

?????文件???????3013??2013-11-27?17:53??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\代碼\preprocessing.cpp

?????文件????????319??2013-11-21?20:47??基于opencv?的手寫數(shù)字字符識(shí)別\源代碼\代碼\preprocessing.h

?????文件????2992128??2013-11-27?20:08??基于opencv?的手寫數(shù)字字符識(shí)別\程序\Character_Recognition.exe

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\000.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\001.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\002.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\003.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\004.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\005.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\006.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\007.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\008.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\009.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\010.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\011.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\012.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\013.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\014.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\015.pbm

?????文件??????16580??2012-07-02?01:25??基于opencv?的手寫數(shù)字字符識(shí)別\程序\OCR\0\016.pbm

............此處省略1005個(gè)文件信息

評(píng)論

共有 條評(píng)論