资源简介
运用经典的sobel算法对图片进行边缘检测,c/c++代码实现。
代码片段和文件信息
#include “stdafx.h“
#include “windowsx.h“
#include “math.h“
#include “BianYuanJianCeDib.h“
#include “MainFrm.h“
#include “DynSplitView2.h“
BianYuanJianCeDib::BianYuanJianCeDib()
{
}
BianYuanJianCeDib::~BianYuanJianCeDib()
{
}
/***************************************************************/
/*函数名称:Templat(BYTE *m_pdata int wide int height int tempH int tempW int tempMX int tempMY float *fpArray float fCoef) */
/*函数类型:void */
/*参数:BYTE* m_pdata:指向原DIB图像指针 */
/* int wide:原图像宽度 */
/* int height:原图像高度 */
/* int tempH:模板高度 */
/* int tempW:模板宽度 */
/* int tempMX:模板的中心元素X坐标( /* int tempMY:模板的中心元素Y坐标( /* float *fpArray:指向模板数组的指针 */
/* float fCoef:模板系数 */
/*返回值:处理成功返回TRUE;处理失败返回FALSE。 */
/*功能:用指定模板对灰度图像进行操作。 */
/***************************************************************/
void BianYuanJianCeDib::Templat(BYTE *m_pdata int wide int height int tempH int tempW int tempMX int tempMY float *fpArray float fCoef)
{
int ijkl; //循环变量
BYTE* temp=new BYTE[wide*height]; //新图像缓冲区
//初始化新图像为原始图像
memcpy( tempm_pdatawide*height);
float fResult; //像素值计算结果
for(j=tempMY;j for(i=tempMX;i {
//计算像素值
fResult=0;
for(k=0;k for(l=0;l fResult=fResult+m_pdata[(j-tempMY+k)*wide+(i-tempMX+l)]*fpArray[k*tempW+l];
//乘上系数
fResult*=fCoef;
//取绝对值
fResult=(float)fabs(fResult);
//判断是否超过255
if(fResult>255)
//若超过255,直接赋值为255
temp[j*wide+i]=255;
else
//未超过255,赋值为计算结果
temp[j*wide+i]=(int)(fResult+0.5);
}
memcpy(m_pdata tempwide*height); //复制处理后的图像
delete temp;
}
/***************************************************************/
/*函数名称:Templat24bit(BYTE *m_pdata int DibWidth int height int tempH int tempW int tempMX int tempMY float *fpArray float fCoef) */
/*函数类型:void */
/*参数:BYTE* m_pdata:指向原DIB图像指针 */
/* int DibWidth:原图像宽度 */
/* int height:原图像高度 */
/* int tempH:模板高度 */
/* int tempW:模板宽度 */
/* int tempMX:模板的中心元素X坐标( /* int tempMY:模板的中心元素Y坐标( /* float *fpArray:指向模板数组的指针 */
/* float fCoef:模板系数 */
/*返
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 216056 2002-09-07 11:12 Sobel边缘检测\24位图.bmp
文件 7850 2008-04-20 14:55 Sobel边缘检测\BianYuanJianCeDib.cpp
文件 480 2008-04-20 14:54 Sobel边缘检测\BianYuanJianCeDib.h
文件 4735 2004-08-31 16:59 Sobel边缘检测\Cdib.cpp
文件 826 2004-03-28 12:17 Sobel边缘检测\Cdib.h
文件 30520 2008-04-20 14:52 Sobel边缘检测\DSplit.aps
文件 3275 2008-04-20 14:55 Sobel边缘检测\DSPLIT.CLW
文件 4158 2003-04-01 08:51 Sobel边缘检测\Dsplit.cpp
文件 5170 2004-03-31 15:33 Sobel边缘检测\DSplit.dsp
文件 579 1999-01-28 11:36 Sobel边缘检测\DSPLIT.DSW
文件 1366 2003-04-01 08:51 Sobel边缘检测\Dsplit.h
文件 1041408 2008-05-27 10:29 Sobel边缘检测\DSPLIT.NCB
文件 78848 2008-05-27 10:29 Sobel边缘检测\DSPLIT.OPT
文件 3078 2008-05-27 10:28 Sobel边缘检测\DSPLIT.PLG
文件 11995 2008-04-20 14:52 Sobel边缘检测\DSplit.rc
文件 2008 2003-04-01 08:45 Sobel边缘检测\DSplitDoc.cpp
文件 1505 2003-04-27 16:32 Sobel边缘检测\DSplitDoc.h
文件 3149 2004-08-31 17:02 Sobel边缘检测\Dsplitview.cpp
文件 1859 2003-04-01 08:27 Sobel边缘检测\Dsplitview.h
文件 6435 2004-08-31 17:02 Sobel边缘检测\DYNSPLITTERWND.CPP
文件 1733 1998-03-10 17:19 Sobel边缘检测\DYNSPLITTERWND.H
文件 4052 2008-04-20 14:55 Sobel边缘检测\DynSplitView2.cpp
文件 1779 2008-04-20 14:53 Sobel边缘检测\DynSplitView2.h
文件 3552 2003-05-15 09:56 Sobel边缘检测\Mainfrm.cpp
文件 1691 2003-04-02 17:00 Sobel边缘检测\MAINFRM.H
文件 4035 1998-02-03 10:42 Sobel边缘检测\README.TXT
目录 0 2008-05-27 10:29 Sobel边缘检测\Release
..A..H. 266 2002-09-02 20:49 Sobel边缘检测\RES\desktop.ini
文件 1078 1998-02-03 11:13 Sobel边缘检测\RES\DSPLIT.ICO
文件 398 1998-02-03 10:42 Sobel边缘检测\RES\DSPLIT.RC2
............此处省略17个文件信息
相关资源
- soble 算子的 边缘检测 VisualC++
- 基于MFC的界面设计,包括灰度化、边
- VS平台 图像边缘检测
- opencv prewitt边缘检测
- rar文件MFC 图像处理之图像增强 图像平
- C++实现图像边缘检测
- 在vc下开发的canny边缘检测 MFC
- VC++实现灰度图像的6种边缘检测算子
- 图像处理基本的算法边缘,梯度,均
- 虹膜定位方法实现
- 边缘检测 LOG算子 实现
- canny边缘检测的c语言实现
- sobel算子实现度图像的边缘提取,x和
- 基于C++的边缘检测算法
- log算子的边缘检测算法
- 图像分割和边缘检测完全C语言源代码
- C++实现灰度图像的边缘检测、提取及
- Canny边缘检测C++代码
- 拉普拉斯算子边缘检测C语言代码
- C语言实现canny边缘检测
- OpenCV边缘检测程序 by浅墨
- 边缘检测多尺度opencv
- 图像边缘检测7种算子代码
- canny边缘检测自适应
- OpenCV自己实现的高斯滤波,sobel边缘检
评论
共有 条评论