边缘检测模板怎么写

1.边缘检测的边缘检测所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征 。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据 。由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘也是图像匹配的重要的特征 。边缘检测和区域划分是图像分割的两种不同的方法,二者具有相互补充的特点 。在边缘检测中,是提取图像中不连续部分的特征,根据闭合的边缘确定区域 。而在区域划分中,是把图像分割成特征相同的区域,区域之间的边界就是边缘 。由于边缘检测方法不需要将图像逐个像素地分割,因此更适合大图像的分割 。边缘大致可以分为两种,一种是阶跃状边缘,边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,边缘处于灰度值由小到大再到小的变化转折点处 。边缘检测的主要工具是边缘检测模板 。我们以一个一维模板为例来考察边缘检测模板是如何作用的 。模板的作用是将右邻点的灰度值减去左邻点的灰度值作为该点的灰度值 。在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边缘附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果 。这种模板就是一种边缘检测器,它在数学上的涵义是一种基于梯度的滤波器,习惯上又称边缘算子 。我们知道,梯度是有方向的,和边缘的方向总是垂直的 。模板 是水平方向的,而上面那幅图象的边缘恰好是垂直方向的,使用模板 就可以将它检测出来 。如果图象的边缘是水平方向的,我们可以用梯度是垂直 方向的模板 检测它的边缘 。如果图象的边缘是45 。方向的,我们可以用模板检测它的边缘 。
常用的边缘检测模板有Laplacian算子、Roberts算子、Sobel算子、log(Laplacian-Gauss)算子、Kirsch算子和Prewitt算子等 。
2.基于matlab的边缘检测的robert算子的算法matlab本身有库函数的 。直接调用啊
VC代码:
void BianYuanJianCeDib::Robert()
{
LPBYTE p_data; //原图数据区指针
int wide,height; //原图长、宽
int i,j; //循环变量
int pixel[4]; //Robert算子
p_data=http://www.xuexi88.com/zhishi/this->GetData ();
wide=this->GetWidth ();
height=this->GetHeight ();
LPBYTE temp=new BYTE[wide*height]; //新图像缓冲区
//设定新图像初值为255
memset(temp,255, wide*height);
//由于使用2*2的模板,为防止越界,所以不处理最下边和最右边的两列像素
for(j=0;j<height-1;j++)
for(i=0;i<wide-1;i++)
{
//生成Robert算子
pixel[0]=p_data[j*wide+i];
pixel[1]=p_data[j*wide+i+1];
pixel[2]=p_data[(j+1)*wide+i];
pixel[3]=p_data[(j+1)*wide+i+1];
//处理当前像素
temp[j*wide+i]=(int)sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])
+(pixel[1]-pixel[2])*(pixel[1]-pixel[2]));
}
//将缓冲区中的数据复制到原图数据区
memcpy(p_data, temp,wide*height);
//删除缓冲区
delete temp;
}
3.边缘检测的边缘检测【边缘检测模板怎么写】所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征 。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据 。由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘也是图像匹配的重要的特征 。边缘检测和区域划分是图像分割的两种不同的方法,二者具有相互补充的特点 。在边缘检测中,是提取图像中不连续部分的特征,根据闭合的边缘确定区域 。而在区域划分中,是把图像分割成特征相同的区域,区域之间的边界就是边缘 。由于边缘检测方法不需要将图像逐个像素地分割,因此更适合大图像的分割 。边缘大致可以分为两种,一种是阶跃状边缘,边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,边缘处于灰度值由小到大再到小的变化转折点处 。边缘检测的主要工具是边缘检测模板 。我们以一个一维模板为例来考察边缘检测模板是如何作用的 。模板的作用是将右邻点的灰度值减去左邻点的灰度值作为该点的灰度值 。在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边缘附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果 。这种模板就是一种边缘检测器,它在数学上的涵义是一种基于梯度的滤波器,习惯上又称边缘算子 。我们知道,梯度是有方向的,和边缘的方向总是垂直的 。模板 是水平方向的,而上面那幅图象的边缘恰好是垂直方向的,使用模板 就可以将它检测出来 。如果图象的边缘是水平方向的,我们可以用梯度是垂直 方向的模板 检测它的边缘 。如果图象的边缘是45 。方向的,我们可以用模板检测它的边缘 。