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>将图像归一化大小为,并将图像展开为一行,组成特征向量。
4. OpenCV中的神经网络
关于神经网络的原理我的博客里已经写了两篇文章,并且给出了C++的实现,所以这里我就不提了,下面主要说明在OpenCV中怎么使用它提供的库函数。
CvANN_MLP是OpenCV中提供的一个神经网络的类,正如它的名字一样(multi-layer perceptrons),它是一个多层感知网络,它有一个输入层,一个输出层以及1或多个隐藏层。
4.1. 首先我们来创建一个网络,我们可以利用CvANN_MLP的构造函数或者create函数。
除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV进阶之路:神经网络识别车牌字符