aihot  2017-05-06 12:57:43  OpenCV |   查看评论   
sumMatValue(const Mat& image) 38 { 39 float sumValue = 0; 40 int r = image.rows; 41 int c = image.cols; 42 if (image.isContinuous()) 43 { 44 c = r*c; 45 r = 1; 46 } 47 for (int i = 0; i < r; i++) 48 { 49 const uchar* linePtr = image.ptr<uchar>(i); 50 for (int j = 0; j < c; j++) 51 { 52 sumValue += linePtr[j]; 53 } 54 } 55 return sumValue; 56 }

2,第二个特征非常简单,只需要将图像归一化到特定的大小,然后将图像每个点的灰度值作为特征即可。

<1>将图像由RGB图像转换为灰度图像;

<2>将图像归一化大小为8×4,并将图像展开为一行,组成特征向量。

4. OpenCV中的神经网络

关于神经网络的原理我的博客里已经写了两篇文章,并且给出了C++的实现,所以这里我就不提了,下面主要说明在OpenCV中怎么使用它提供的库函数。

CvANN_MLP是OpenCV中提供的一个神经网络的类,正如它的名字一样(multi-layer perceptrons),它是一个多层感知网络,它有一个输入层,一个输出层以及1或多个隐藏层。

4.1. 首先我们来创建一个网络,我们可以利用CvANN_MLP的构造函数或者create函数。

1 CvANN_MLP::CvANN_MLP(const Mat& layerSizes, int activateFunc=CvANN_MLP::SIGMOID_SYM, double fparam1=0, double fparam2=0 );
2 void CvANN_MLP::create(const Mat& layerSizes, int activateFunc=CvANN_MLP::SIGMOID_SYM, double fparam1=0, double fparam2=0            
          
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV进阶之路:神经网络识别车牌字符

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]