在inRange函数进行黑色区域高亮的基础上,进行像素点检验。
在圈定的区域内,如果高亮像素点占比为90%(可以根据效果进行调试)以上时,说明该区域为黑色区域,即可通过串口发送信息。
/对二值化后的special逐个像素点进行检验* */
int sum_counter = 0;//总像素点个数
int counter = 0;//计算像素点的个数
Mat_::iterator it = special.begin();
Mat_::iterator itend = special.end();
for (; it!=itend; ++it)
{
sum_counter++;
if((*it)>0)//0代表黑色,255代表白色
counter+=1;//白色的点,像素点加一
}
if(counter>0.6*sum_counter)
{
cout<<"1:有故障"<<endl;
}
else
{
cout<<"0:无故障"<<endl;
}