首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
专题开发/技术/项目
图形图像/机器视觉
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
请教高手!!关于拉普拉斯算子做图像锐化
[无满意答案结贴,结贴人:jw712niat]
加为好友
发送私信
在线聊天
jw712niat
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
313963
揭贴率:
100.00%
发表于:
2008-08-23 16:07:13
楼主
我的程序如下,怎么出来的结果就不对呢???急!!
CDib* pDIB=pDoc->GetDibObject(); //得到DIB对象
UINT width=pDIB->GetWidth(); //图像宽度
UINT height=pDIB->GetHeight(); //图像高度
DWORD LineBytes=pDIB->GetDibWidthBytes(); //图像每行字节数
LPBYTE pImageData=pDIB->GetData(); //图像数据起始地址
float Template[9];//拉普拉斯算子模板
Template[0]=-1.0f;
Template[1]=-1.0f;
Template[2]=-1.0f;
Template[3]=-1.0f;
Template[4]= 9.0f;
Template[5]=-1.0f;
Template[6]=-1.0f;
Template[7]=-1.0f;
Template[8]=-1.0f;
BYTE tempdata[9];
memset(tempdata,0,sizeof(tempdata));
for (UINT i=1;i <height-1;i++)
{
for (UINT j=1;j <width-1;j++)
{
int k=0;
int x=0;
float result=0;
for (int m=-1;m <2;m++)
{
for (int n=-1;n <2;n++)
{
tempdata[k]=pImageData[LineBytes*(i+m)+(j+n)];//取出图像3*3领域类像素,存于tempdata数组
k++;
}
}
for (x=0;x <9;x++)
{
result+=tempdata[x]*Template[x];//领域内像素与对应摸板相乘
}
result=(float)fabs(result);
if (result>255)
{
pImageData[LineBytes*i+j]=255;
}
else
{
pImageData[LineBytes*i+j]=(BYTE)result;
}
}
}
问题点数:
0
回复次数:
2
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
thirdapple
.:RNPA:.陨落雕 - 非无圣主,岂乏明时
等级:
可用分等级:
富农
总技术分:
18533
总技术分排名:
662
发表于:
2008-08-25 03:53:04
1
楼 得分:
0
应该另建一个DIB放结果。
result=(float)fabs(result);
纯属多余
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
youxia000
无剑无我
等级:
可用分等级:
中农
总技术分:
560
总技术分排名:
32196
发表于:
2008-09-04 16:18:04
2
楼 得分:
0
另存结果,不然会前面的结果影响后面的
没必要弄成浮点,整形足够了
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友