- 8
- 0
- 约8.19千字
- 约 13页
- 2017-08-28 发布于重庆
- 举报
canny边缘检测算子的c源代码
canny边缘检测算子的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(*pnWidowSize);i++) { dDis = double(i - nCenter); dValue = exp(-(1/2)*dDis*dDis/(sigma*sigma))/(sqrt(2*3.1415926)*sigma); (*pdKernel)[i] = dValue; dSum+=dValue; } //归一化 for(i=0;i(*pnWidowSize);i++) { (*pdKernel)[i]/=dSum; } } //用高斯滤波器平滑原图像 void GaussianSmooth(SIZE sz, LPBYTE pGray, LPBYTE pResult, double sigma) { LONG x, y; LONG i; //高斯滤波器长度 int nWindowSize; //窗口长度 int nLen; //一维高斯滤波器 double *pdKernel; //高斯系数与图像数据的点乘 double dDotMul; //滤波系数总和 double dWeightSum; double *pdTemp; pdTemp = new double[sz.cx*sz.cy]; //产生一维高斯数据 CreatGauss(sigma, pdKernel, nWindowSize); nLen = nWindowSize/2; //x方向滤波 for(y=0;ysz.cy;y++) { for(x=0;xsz.cx;x++) { dDotMul = 0; dWeightSum = 0; for(i=(-nLen);i=nLen;i++) { //判断是否在图像内部 if((i+x)=0 (i+x)sz.cx) { dDotMul+=(double)pGray[y*sz.cx+(i+x)] * pdKernel
您可能关注的文档
- 8259A课编程中断控制器实验-罗忠霖.doc
- a01热工理论基础学习指导(第1章).doc
- 66kV氧化锌避雷器技术规范.doc
- ABBKent-tayler在线分析化学仪表的运行及维护.doc
- abPLC工程实例,包含Rslogix5000硬件组态设置编程与.doc
- AC-20配合比体积设计分析.doc
- AC-Link数字音频VHDL编解码的FPGA设计.doc
- 8K纸八年级上期中国疆域和行政区划地理导学案.doc
- access二级编程实例.doc
- ACLTOP血凝分析仪的维护保养.doc
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
最近下载
- 西安交通大学《算法设计与分析》2023-2024学年期末试卷.doc VIP
- 最新北师大版小学数学三年级下册全册教案【优质】 .pdf VIP
- 08SG213-1:钢烟囱(自立式30~60m).pdf VIP
- 人教版数学二年级下册全册课件(2025年).ppt
- 药品综合强光稳定性试验箱操作保养规程.docx VIP
- (2025春新版本)教科版一年级下册科学全册教案.docx
- X射线衍射分析技术.ppt VIP
- 冶金工程:钒钛磁铁矿非高炉冶炼与钛渣综合利用技术进展.docx VIP
- 《强光稳定性试验箱》.pdf VIP
- 湖北汽车工业学院《电工与电子技术》2025 - 2026学年第一学期期末试卷(全网独发).docx VIP
原创力文档

文档评论(0)