灰度图像--图像分割 Prewitt算子

学习DIP第45天

转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意。有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!!

文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

开篇废话

废话开始,发现CSDN有了新的博客写作方式-MarkDown看起来很腻害的样子,有空试一下,希望以后能有更好的知识分享总结出来,当然要用更好的方式,更鲜明的表达出自己对知识的理解和观点,翻了下以前写的博客,感觉自己写博客的调理更清楚了,而且发现博客最好别写太长,当然,大牛除外,因为太长了可能有点驾驭不住。

今天来学习Prewitt算子,这个算子也是一阶微分算子,所以和前面说的Sobel有些类似,但不同的是平滑模板和不同情况下的效果。

Prewitt算子

来看prewitt算子,这个算子形式简单,基本形式如下:

一排1减去另一排1,差分被它体现的淋漓尽致,当然我们观察它的性质还是要看分解形式,也就是前两个小模板,[1,0,-1]不用解释,差分的形式,为什么不用[1,-1]进行差分?首先对于2x3的模板和3x3的模板,我们更倾向于3x3,因为3x3的模板中心落在实数上,其次[1,0,-1]的差分结果能够在一定程度上减少噪声影响。这个差分的性质,Sobel,Prewitt以及后面的Scharr都是一样的,所以这里并不是他们的差异,他们的差异主要集中在平滑算子上。Sobel算子的平滑算子是一个接近高斯的小模板,而Prewitt的平滑算子则是一个均值模板,也就是1/3[1,1,1],其原理与Sobel也保持一致,横向平滑,纵向差分产生Y方向的一阶微分,或者纵向平滑横向差分,产生X方向一阶微分,当然要注意按照这个模板做出的梯度方向是左手坐标系,也就是和图像坐标系一致的,即(0,0)在左上角,x轴向右为正,y轴向下为正,为了使用习惯,可以把y轴取负,就能得到传统的右手坐标系了。。。

关于扩展,没有见过有人扩展prewitt,但是按照理论是绝对可行的,我猜想,可以扩展成

代码和结果

代码:

/////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
double Prewitt(double *src,double *dst,int width,int height){
    double PrewittMask1[3]={1.0/3.0,1.0/3.0,1.0/3.0};
    double PrewittMask2[3]={-1.0,0.0,1.0};
    double *dst_x=(double *)malloc(sizeof(double)*width*height);
    double *dst_y=(double *)malloc(sizeof(double)*width*height);
    RealRelevant(src, dst_x, PrewittMask1, width, height, 1, 3);
    RealRelevant(dst_x, dst_x, PrewittMask2, width, height, 3, 1);

    RealRelevant(src, dst_y, PrewittMask2, width, height, 1, 3);
    RealRelevant(dst_y, dst_y, PrewittMask1, width, height, 3, 1);
    for(int j=0;j<height;j++)
        for(int i=0;i<width;i++){
            dst[j*width+i]=abs(dst_x[j*width+i])+abs(dst_y[j*width+i]);
        }
    free(dst_x);
    free(dst_y);
    return findMatrixMax(dst,width,height);

}

结果如下:

原图:

prewitt算子的处理结果:

局部放大:

在观察下阈值

结论

结论是prewitt会使灰度值相对集中,相比于Sobel并不会凸显出边界响应,整体边缘候选点区域接近,不适合做阈值后处理,但优点是速度快,计算简单。

时间: 2024-08-29 04:17:26

灰度图像--图像分割 Prewitt算子的相关文章

灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较

学习DIP第47天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 开篇废话 依然是废话,这篇主要想对比下Sobel,Prewitt和Scharr算子的平滑能力,由于一阶微分对噪声响应强,进行微分之前进行降噪是非常必要的,这里我们进行的实验是,以lena图作为实验原图,取其中一行数据作为无噪声的原始信号,分别加上不

灰度图像--图像分割 边缘检测算子 综述

转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 本来想这

灰度图像--图像分割 Robert算子

学习DIP第43天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 Scharr算子

学习DIP第46天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro ** 开篇废话 感受下markdown的写博客的感觉,好像在写程序一样,果然是程序员的好工具,不过开头怎么没有空格...一空格就自动变成代码了,这让我情何以堪,好吧,以后的文章开头不空格了.本来打算上一篇直接介绍Scharr算子,但是发现Prewi

灰度图像--图像分割 Marr-Hildreth算子(LoG算子)

学习DIP第49天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 开篇废话 今天介绍二阶微分算子,二阶微分算子典型的是Laplace算子,LoG可以看成是一个高斯模板的拉普拉斯变换,但是也可以从根源上推导出LoG算子,而后面要介绍的DoG则是为了纯粹的减少计算,模拟LoG的一种方法. LoG原理 LoG最底层的原

灰度图像--图像分割 Sobel算子

学习DIP第44天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像增强 拉普拉斯算子

学习DIP第34天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 边缘模型

学习DIP第41天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 综合介绍

学习DIP第40天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro