本文目录一览

1,帮我解释个C程序Sobel算子

RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)取d*e%t==1
你留个网号吧,我教你.再看看别人怎么说的。

帮我解释个C程序Sobel算子

2,sobel算子对应的模板形式有哪两种

Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。

sobel算子对应的模板形式有哪两种

3,sobel 算子和 canndy 算子的区别

我觉得你这个说法就有问题,sobel边缘检测运用sobel算子,就是3×3或者5×5等等之类的矩阵,canny是在sobel算法的基础上加以改进,并没有canny算子,canny算法的边缘检测部分就是sobel算法。
计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。

sobel 算子和 canndy 算子的区别

4,Sobel和Kirsch算子的优缺点

Soble算子对噪声有抑制作用,因此不会出现很多孤立的边缘像素点。Sobel算子对边缘的定位不是很准确,图像的边界宽度往往不止一个像素,不适合于对边缘定位的准确性要求很高的应用。Prewitt算子:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。该算子与Sobel算子类似,只是权值有所变化,但两者实现起来功能还是有差距的,据网上查阅资料得知Sobel要比Prewitt更能准确检测图像边缘。
你说呢...

5,Sobel算子的算子描述

在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。与Prewitt算子相比,Sobel算子对于象素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边缘的 ,另一个是检测垂直边缘的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。将Sobel算子矩阵中的所有2改为根号2,就能得到各向同性Sobel的矩阵。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。 在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。

6,Sobel算子是什么

C++Builder下的sobel算子的程序如下:/// <summary> /// 按 Sobel 算子进行边缘检测 /// </summary> /// <param name= "b "> 位图流 </param> /// <returns> </returns> public Bitmap Sobel(Bitmap b) Matrix3x3 m = new Matrix3x3(); // -1 -2 -1 // 0 0 0 // 1 2 1 m.Init(0); m.TopLeft = m.TopRight = -1; m.BottomLeft = m.BottomRight = 1; m.TopMid = -2; m.BottomMid = 2; Bitmap b1 = m.Convolute((Bitmap)b.Clone()); // -1 0 1 // -2 0 2 // -1 0 1 m.Init(0); m.TopLeft = m.BottomLeft = -1; m.TopRight = m.BottomRight = 1; m.MidLeft = -2; m.MidRight = 2; Bitmap b2 = m.Convolute((Bitmap)b.Clone()); // 0 1 2 // -1 0 1 // -2 -1 0 m.Init(0); m.TopMid = m.MidRight = 1; m.MidLeft = m.BottomMid = -1; m.TopRight = 2; m.BottomLeft = -2; Bitmap b3 = m.Convolute((Bitmap)b.Clone()); // -2 -1 0 // -1 0 1 // 0 1 2 m.Init(0); m.TopMid = m.MidLeft = -1; m.MidRight = m.BottomMid = 1; m.TopLeft = -2; m.BottomRight = 2; Bitmap b4 = m.Convolute((Bitmap)b.Clone()); // 梯度运算 b = Gradient(Gradient(b1, b2), Gradient(b3, b4)); b1.Dispose(); b2.Dispose(); b3.Dispose(); b4.Dispose(); return b; } // end of Sobel
在边沿检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 。与 和 相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。 由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。 在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。.NET代码如下for(Times=0;Times<128&&iThreshold!=iNewThreshold;Times++) iThreshold=iNewThreshold; lP1=0; lP2=0; lS1=0; lS2=0; for(i=iMinGray;i<iThreshold;i++) lP1+=Histogram*i; lS1+=Histogram; } iMean1Gray=lP1/lS1; for(i=iThreshold;i<iMaxGray;i++) lP2+=Histogram*i; lS2+=Histogram; } iMean2Gray=lP2/lS2; iNewThreshold=(iMean1Gray+iMean2Gray)/2; }补充Sobel算子的矩阵表达式:Sobel1=[-1 -2 -1; %检测水平边沿的Sobel算子 0 0 0; 1 2 1];Sobel2=[-1 0 1; %检测垂直平边沿的Sobel算子 -2 0 2; -1 0 1];
c++builder下的sobel算子的程序如下: /// /// 按 sobel 算子进行边缘检测 /// /// 位图流 /// public bitmap sobel(bitmap b) { matrix3x3 m = new matrix3x3(); // -1 -2 -1 // 0 0 0 // 1 2 1 m.init(0); m.topleft = m.topright = -1; m.bottomleft = m.bottomright = 1; m.topmid = -2; m.bottommid = 2; bitmap b1 = m.convolute((bitmap)b.clone()); // -1 0 1 // -2 0 2 // -1 0 1 m.init(0); m.topleft = m.bottomleft = -1; m.topright = m.bottomright = 1; m.midleft = -2; m.midright = 2; bitmap b2 = m.convolute((bitmap)b.clone()); // 0 1 2 // -1 0 1 // -2 -1 0 m.init(0); m.topmid = m.midright = 1; m.midleft = m.bottommid = -1; m.topright = 2; m.bottomleft = -2; bitmap b3 = m.convolute((bitmap)b.clone()); // -2 -1 0 // -1 0 1 // 0 1 2 m.init(0); m.topmid = m.midleft = -1; m.midright = m.bottommid = 1; m.topleft = -2; m.bottomright = 2; bitmap b4 = m.convolute((bitmap)b.clone()); // 梯度运算 b = gradient(gradient(b1, b2), gradient(b3, b4)); b1.dispose(); b2.dispose(); b3.dispose(); b4.dispose(); return b; } // end of sobel

文章TAG:sobel算子  帮我解释个C程序Sobel算子  
下一篇
展开更多