cvSmooth(src,SmoothImg,CV_GAUSSIAN,3,3); //对图像做3*3的高斯平滑滤波
cvLaplace(SmoothImg,dst1,3);
cvConvertScale(dst1,dst); //将图像转化为8位
double min_val = 0;double max_val = 0;
cvMinMaxLoc(dst,&min_val,&max_val); //取图像中的最大最小像素值
printf("max_val = %f\nmin_val = %f\n",max_val,min_val);
cvNormalize(dst,dst,0,255,CV_MINMAX); //归一化处理
//对梯度图加门限,二值化
/* int x,y;
char* p = dst->imageData;
int w = dst->widthStep;
for(x = 0;xwidth;x++)
{
for(y = 0;yheight;y++)
{
if(p[x+y*w]>50)
p[x+y*w] = 255;
else p[x+y*w] = 0;
}
} */
他所说对梯度图加门限,二值化是什么意思?
代码中最后的 if(p[x+y*w]>50)
p[x+y*w] = 255;
else p[x+y*w] = 0; 是要实现什么功能?和检测零交叉点有什么区别?