資源簡(jiǎn)介
基于Opencv的簡(jiǎn)單數(shù)字識(shí)別,適用于初學(xué)者入門,有助于開拓初學(xué)者的思維,幫助其更好地入門,代碼詳細(xì),有很多注釋,簡(jiǎn)單易懂!
代碼片段和文件信息
#include?
#include
#include?
#include?
using?namespace?std;
using?namespace?cv;
//創(chuàng)建記錄輪廓數(shù)量和坐標(biāo)的結(jié)構(gòu)體
struct?num_contours
{
double?x?y;?????????????//輪廓的x、y坐標(biāo)
int?index;???????????????//輪廓的順序
bool?operator?<(num_contours?&m)
{
if?(y?>?m.y+50)?return?false;
else?if?(y?>?m.y-50)
{
if?(x?
else?return?false;
}
else?return?true;
}
}num_contours[100];
//創(chuàng)建記錄結(jié)果的結(jié)構(gòu)體
struct?result
{
double?data;
int?num;
bool?operator<(result?&m)
{
if?(data? else?return?false;
}
}result[100];
void?select_result(Mat?&?src?int?num);
double?compare(Mat?&src?Mat?&model);
vector?imread_model();
void?deal(Mat?&src?Mat?&model?int?m);
void?select_result(Mat?&?src?int?num);
int?main()
{
Mat?src?gray_src?dest?dst;
src?=?imread(“C:/Users/86159/Desktop/num_text/num_text_02.png“);???????????//加載原圖
cvtColor(src?gray_src?COLOR_BGR2GRAY);?????????????????????//對(duì)圖像進(jìn)行預(yù)處理
threshold(gray_src?dest?150?255?THRESH_BINARY_INV);
vector>?contours;
vector?hierarchy;
findContours(dest?contours?hierarchy?RETR_EXTERNAL?CHAIN_APPROX_NONE?Point(0?0));????//提取輪廓
vector?rect;
Rect?min_bounding_rectre_rect;
float?tl_x?br_y?width?height;
for?(int?i?=?0;?i? {
if?(contourArea(contours[i])?>?50)
{
min_bounding_rect?=?boundingRect(contours[i]);
rect.push_back(boundingRect(contours[i]));
tl_x?=?(float)min_bounding_rect.tl().x;
br_y?=?(float)min_bounding_rect.br().y;
width?=?(float)min_bounding_rect.width;
height?=?(float)min_bounding_rect.height;
num_contours[i].x?=?(tl_x?*?2?+?width)?/?2.0;??????????//計(jì)算輪廓中心點(diǎn)
num_contours[i].y?=?(br_y?*?2?+?height)?/?2.0;
num_contours[i].index?=?i;
}
}
sort(num_contours?num_contours?+?contours.size());?????????//根據(jù)輪廓中心點(diǎn)坐標(biāo)進(jìn)行排序
vector?roi_rect(cont
評(píng)論
共有 條評(píng)論