参考以下文章,做了一些改进:
一、简单说明,其他详见上述文章,以及注释
目的,用RGB三色的点训练ANN分类器...
(1)ANN 训练数据:直接从图片获取"非零像素点(非黑色)"作为训练数据. // 图片可以自己编辑(使用RGB三色,点数小于20000)
训练数据值为:像素坐标x,y 两通道 (2维)
训练数据标签:RGB三通道数值 (3维)
(2)ANN 测试数据:使用全部像素作为测试数据,逐一进行预测。
(3)环境: OpenCV 2.4.13VC++2013 ANN及图像使用 float 32位浮点数。
(4)算法可以应用于多种颜色,此代码只判决RGB三色,彩色判决后会混乱(判决前不会)。
二、输入图像 256x256 RGB: (可绘图板自己制作,使用纯色 红 绿 蓝,点数不超过20000)
三、输出结果(结果拼接显示)--------------------------------------------
说明:(1)可以用于多种颜色(RGB及其混合色),本代码只有三色判决,因此判决后,其他颜色区域混乱。
(2)可能随机出现不同的收敛。(ANN 特性,寻找的是局部最优,具体原因不明)
四、源代码 ------------------------------------------------------------------------------------------------
(1)ANN代码函数形式出现:
void MyANN_TES(string mypath)
{
// TODO: 在此添加控件通知处理程序代码