.
答:Sobel算子核心代码如下:
其中
m_nWork1=x7+x8+x8-x2-x2-x3; m_nWork2=x3+x6+x6-x4-x4-x7; if ( m_nWork1 m_nWork1=m_nWork2; m_nWork2=m_nWork1+x9-x1; 是卷积求梯度的核心代码,根据Prewitt的卷积阵,将此处改为以下代码即可。 m_nWork1=x7+x8-x2-x3; m_nWork2=x3+x6-x4-x7; if ( m_nWork1 m_nWork1=m_nWork2; m_nWork2=m_nWork1+x9-x1; 全部代码见附程序Sobel.c和Prewitt.c 七、参考资料 [1] 陈宇云. 灰度图像的边缘检测研究[D]. 电子科技大学硕士学位论文.2009 [2] 卢洋,张旭秀.图像边缘检测算法的对比分析与研究[J]. 太原科技. . . 2009,(3):17-18 [3] 韩磊 .MATLAB 在数字图象处理中的应用[J]. 电脑知识与技术. 2008,1(1):29-31 附录 1. transfer_1.m 将彩色图转化为灰度图的小程序,在迁移到CCS平台处理时用到,Matlab 平台仿真的程序中内嵌了这几行代码。 2. Sobel_1.m 传统Sobel算子代码+手动阈值调整功能 3. Sobel_2.m 八方向Sobel 4. Sobel_3.m 将水平和垂直算子单独考虑与都考虑时的对比 5. Prewitt_1.m 传统Prewitt 6. Sobel_prewitt.m Sobel和Prewitt的对比+考虑高斯白噪声后的情况 .
基于Sobel算子的数字图像边缘检测



