网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月14日漏签0天
数字水印技术吧 关注:12贴子:42
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回数字水印技术吧
>0< 加载中...

数据预处理----gauss(高斯模糊处理(图像复原)

  • 只看楼主
  • 收藏

  • 回复
  • kaisalife
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define EXTRA_NAME "@gausssmooth."#include "loadbmp.h"
#define In(x,y) lpInput[(x)+(y)*nWidth]#define Out(x,y) lpOutput[(x)+(y)*nWidth]#define Mediate(x,y) lpMediate[(x)+(y)*nWidth]#define Point(x,y) lpPoints[(x)+(y)*nWidth]#define sigma 1
void Gauss(){int x,y,xx,xk,yk;BYTE *lpInput=new BYTE[nWidth*nHeight];BYTE *lpOutput=new BYTE[nWidth*nHeight];GetPoints(lpInput);int radius,window; double dev_inv=0.5/(sigma*sigma);radius = (int)ceil(3*sigma);window = radius*2+1;memcpy(lpOutput,lpInput,nWidth*nHeight);double* lpMediate=new double[nWidth*nHeight];
double* mask=new double[window];double sum=0;double temp;double weight;for(x=0;x<radius;x++){xx=(x-radius)*(x-radius);mask[x]=exp(-xx*dev_inv);mask[window-1-x]=mask[x];sum+=2*mask[x];}mask[radius]=1;sum+=1;for(x=0;x<window;x++){mask[x]/=sum;}for(y=0;y<nHeight;y++){for(x=radius;x<nWidth-radius;x++){temp=0;for(xk=-radius;xk<radius+1;xk++)temp+=In(x+xk,y)*mask[xk+radius];Mediate(x,y)=temp;}for(x=0;x<radius;x++){temp=0;weight=0;for(xk=-x;xk<radius+1;xk++){temp+=In(x+xk,y)*mask[xk+radius];weight+=mask[xk+radius];}Mediate(x,y)=temp/weight;}for(x=nWidth-radius;x<nWidth;x++){temp=0;weight=0;for(xk=-radius;xk<nWidth-x;xk++){temp+=In(x+xk,y)*mask[xk+radius];weight+=mask[xk+radius];}Mediate(x,y)=temp/weight;}}double* Column = new double[nHeight];for(x=0;x<nWidth;x++){for(y=radius;y<nHeight-radius;y++){temp=0;for(yk=-radius;yk<radius+1;yk++)temp+=Mediate(x,y+yk)*mask[yk+radius];Column[y]=temp;}for(y=0;y<radius;y++){temp=0;weight=0;for(yk=-y;yk<radius+1;yk++){temp+=Mediate(x,y+yk)*mask[yk+radius];weight+=mask[yk+radius];}Column[y]=temp/weight;} for(y=nHeight-radius;y<nHeight;y++){temp=0;weight=0;for(yk=-radius;yk<nHeight-y;yk++){temp+=Mediate(x,y+yk)*mask[yk+radius];weight+=mask[yk+radius];}Column[y]=temp/weight;}
for(y=0;y<nHeight;y++){Out(x,y)=(int)Column[y];}}delete []Column;delete []mask;delete []lpMediate;PutPoints(lpOutput);delete lpInput;delete lpOutput;}
void main(int argc, char *argv[]){if(argc==2)FileName=argv[1];elsereturn;OpenFile();Gauss();SaveAs();}


  • qfm120
  • 下士
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
路过顶贴是美德,沙发占尽无人说。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回数字水印技术吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示