网上流传的一个Canny边缘检测算法C语言实现的bug
来源:互联网 发布:cmd命令导入sql文件 编辑:程序博客网 时间:2024/05/17 08:03
主程序部分
// 对原图象进行滤波
GaussianSmooth(pUnchImage, nWidth, nHeight, sigma, pUnchSmooth) ;
// 计算方向导数
DirGrad(pUnchSmooth, nWidth, nHeight, pnGradX, pnGradY) ;
// 计算梯度的幅度
GradMagnitude(pnGradX, pnGradY, nWidth, nHeight, pnGradMag) ;
// 应用non-maximum 抑制
NonmaxSuppress(pnGradMag, pnGradX, pnGradY, nWidth, nHeight, pUnchEdge) ;
// 应用Hysteresis,找到所有的边界
Hysteresis(pnGradMag, nWidth, nHeight, dRatioLow, dRatioHigh, pUnchEdge);
这段代码在很多地方都看到过,最近在dsp上用到了这段代码,自己花了点事件优化了一下代码,然后发现其中的一个bug,
void MakeGauss(double sigma, double **pdKernel, int *pnWindowSize)
这个函数中有一句
dValue = exp(-(1/2)*dDis*dDis/(sigma*sigma)) / (sqrt(2 * PI) * sigma );
看出有什么问题了么?如果你在下一句设断点,然后调试一下,会发现每次dValue的值都一样,因为(1/2)就结果是0 。
解决办法是用-0.5代替-(1/2)就行了
- 网上流传的一个Canny边缘检测算法C语言实现的bug
- Canny 边缘检测算法的C实现
- Canny边缘检测算法的实现
- Canny边缘检测算法的实现
- Canny边缘检测算法的实现
- Canny边缘检测算法的实现
- Canny边缘检测算法的实现
- canny边缘检测算法原理与C语言实现
- 图像边缘检测(Canny 算法)的Java实现
- 图像边缘检测(Canny 算法)的Java实现
- Canny边缘检测算法的原理与实现
- 基于canny的边缘检测算法:
- opencv读图像C语言实现canny边缘检测
- opencv3_java 图像的边缘检测Canny Canny
- Opencv的Canny边缘检测
- Canny算法 边缘检测
- Canny边缘检测算法
- 【算法】Canny边缘检测
- DroidDraw不能运行,显示The application requires a Java Runtime Environment 1.4.0的问题
- Scrum敏捷开发随笔
- STL各种容器的区别
- ping结果中TTL是什么意思
- 实现键盘自动弹出。
- 网上流传的一个Canny边缘检测算法C语言实现的bug
- 搜索算法 读数据结构与算法
- ping 命令的原理,揭开单向“Ping”通的奥秘
- 迎接2012之字符串格式化
- [SQL Server]visual studio开发时SQL Server 报表时,直接部署到服务器上的方法
- 耶鲁大学教授汪小京:21世纪中国计算神经科学展望
- Bing Maps Silverlight地图控件的扩展版(Ldh.Maps.V1.0)
- UBOOT-2010-03在S3C2440上的移植<二>------------硬件初始化
- 数据结构题集(严蔚敏)1.17求k阶斐波那契序列的第n项值的函数算法