跪求canny边缘检测算子的c源代码一定得是c的 谢谢各位大哥哥和大姐姐了

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 21:20:56
跪求canny边缘检测算子的c源代码一定得是c的 谢谢各位大哥哥和大姐姐了
xT[OA+|u-<  %*NE( `!Q*B!p1`,i[mƘLvg|;9gfjG}* e9_(ӳ>xMn̤Ӣm//IB.~8cϓma߸"i!1 ]ڑ?pv1EЩ!htAS#bH8FUd$ X6@T`QK t=~ 0S9E1gIO=}w@`rяtS2`wi`>LWsp+i2{|<}gOvggνcm8kbq ฯ S@~Nө2t"T\TW=|DJم1LRf7h50tN$WL3'g+DU&UwX}EKo:CDB5} !1 bkʽMZƨEp{k'b 1X

跪求canny边缘检测算子的c源代码一定得是c的 谢谢各位大哥哥和大姐姐了
跪求canny边缘检测算子的c源代码
一定得是c的 谢谢各位大哥哥和大姐姐了

跪求canny边缘检测算子的c源代码一定得是c的 谢谢各位大哥哥和大姐姐了
canny算子代码
void CreatGauss(double sigma,double **pdKernel,int *pnWidowSize);
void GaussianSmooth(SIZE sz,LPBYTE pGray,LPBYTE pResult,double sigma);
void Grad(SIZE sz,LPBYTE pGray,int *pGradX,int *pGradY,int *pMag);
void NonmaxSuppress(int *pMag,int *pGradX,int *pGradY,SIZE sz,LPBYTE pNSRst);
void EstimateThreshold(int *pMag,SIZE sz,int *pThrHigh,int *pThrLow,LPBYTE pGray,
double dRatHigh,double dRatLow);
void Hysteresis(int *pMag,SIZE sz,double dRatLow,double dRatHigh,LPBYTE pResult);
void TraceEdge(int y,int x,int nThrLow,LPBYTE pResult,int *pMag,SIZE sz);
void Canny(LPBYTE pGray,SIZE sz,double sigma,double dRatLow,
double dRatHigh,LPBYTE pResult);
#include "afx.h"
#include "math.h"
#include "canny.h"
// 一维高斯分布函数,用于平滑函数中生成的高斯滤波系数
void CreatGauss(double sigma,double **pdKernel,int *pnWidowSize)
{
LONG i;
//数组中心点
int nCenter;
//数组中一点到中心点距离
double dDis;
//中间变量
double dValue;
double dSum;
dSum = 0;
// [-3*sigma,3*sigma] 以内数据,会覆盖绝大部分滤波系数
*pnWidowSize = 1+ 2*ceil(3*sigma);
nCenter = (*pnWidowSize)/2;
*pdKernel = new double[*pnWidowSize];
//生成高斯数据
for(i=0;i