高斯模糊算法 c源码.

news/2024/7/8 5:47:28 标签: 算法, c, 嵌入式, 图形, image, 平台
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

color:rgb(255,0,0)">SPGUI(Simple Powerfull Graphics User Interface)是使用简单、功能强大的嵌入式图形开发系统。主要为开发嵌入式LINUX图形窗口应用提供工具集。她具有美观友好的图形控件࿰c;面向对像的编程接口࿰c;多平台可移植性等特点SPGUI为设计运行于嵌入式设备࿰c;个人电脑及工作站平台图形窗口应用程序࿰c;提供一个完整的开发平台。她的核心是为应用程序提供资源库及编译链接环境࿰c;开发者使用SPGUI提供的资源及环境࿰c;来开发自己的应用程序。SPGUI为应用程序设计者提供的资源包括:嵌入式图形引擎࿰c;图形控件࿰c;数据库引擎࿰c;底层驱动封装࿰c;常用数据结构封装及中文支持等

SPGUI是源码级高度可移植的,

目前经过本人的努力已经移植到window xp 使用vc 2005开发(可称作:模拟器),开发出来的程序只需要在嵌入式平台编译就可运行.

同时也扩展了如下功能.

图片支持 png ,gif, bmp,jpg

字库管理  freetype 矢量字库 ,fnt字库

压缩 zip

脚本 xml expat

窗口框架 : ems ui( 下个文章更新 )

 ce:pre"> ce:pre">提供帮助:124736442@qq.com


言归正传.

先看效果图

之前

c="http://hi.csdn.net/attachment/201112/19/853768_1324287614sS3x.jpg" alt="" />

之后

c="http://hi.csdn.net/attachment/201112/19/853768_132428761322O2.jpg" alt="" />


高斯模糊class="tags" href="/tags/SuanFa.html" title=算法>算法 c源码.

  颜色信息是565 可修改到 rgb888 argb 以及灰度的处理.

//---------------------------------------------------------------------------------
//ce:pre"> 124736442@qq.com
//    
//
//图象的平滑(去噪声)、锐化
//
//
//---------------------------------------------------------------------------------
#include <mach/effect.h>
#include <mach/datatype.h>


enum EFFECT_TYPE{
ce:pre">SMOOTH_BOX = 0,
ce:pre">SMOOTH_GAUSS,
ce:pre">SHARPEN_LL
};
//template array


SINT32 Smooth_Box[10]={1,1,1,1,1,1,1,1,1,3};
SINT32 Smooth_Gauss[10]={1,2,1,2,4,2,1,2,1,4};
SINT32 Sharpen_Laplacian[10]={-1,-1,-1,-1,9,-1,-1,-1,-1,1};


SINT32 Bitmap_SmoothDeal(spBitmap_t *p,spRect_t *rect,int type)
{
ce:pre">SINT32 *tEffect = NULL;
ce:pre">UINT8 *stpos;
ce:pre">UINT16 *pbg;
ce:pre">int r,g,b,Index,row,col;
ce:pre">int x;int y;
ce:pre">UINT8 r1,g1,b1;
ce:pre">UINT32 colorref;
ce:pre">UINT32 sumcol;
ce:pre">switch(type)
ce:pre">{
ce:pre">case SMOOTH_BOX:
ce:pre">tEffect = Smooth_Box; 
ce:pre">break;
ce:pre">case SMOOTH_GAUSS:
ce:pre">tEffect = Smooth_Gauss;
ce:pre">break;
ce:pre">case SHARPEN_LL:
ce:pre">tEffect = Sharpen_Laplacian;
ce:pre">break;
ce:pre">default:
ce:pre">return SP_FAIL;
ce:pre">}


ce:pre">stpos = (UINT8 *)( p->pData + (rect->x*p->bpl/p->width + rect->y*p->bpl) );
ce:pre">for(y = 1 ; y<rect->height-1;y++)
ce:pre">for( x = 1;x <rect->width-1;x++)
ce:pre">{
ce:pre">
ce:pre">r=0,g=0,b=0;
ce:pre">Index=0;
ce:pre">sumcol = 0 ;
ce:pre">for(col=-1;col<=1;col++)
ce:pre">{  
ce:pre">pbg = (UINT16*)(stpos+(y+col)*p->bpl);
ce:pre">for(row=-1;row<=1;row++)
ce:pre">{ce:pre">
ce:pre">colorref=pbg[x+row];
ce:pre">RGB_FROM_RGB565(colorref,r1,g1,b1);
ce:pre">r+=r1*tEffect[Index];
ce:pre">g+=g1*tEffect[Index];
ce:pre">b+=b1*tEffect[Index];
ce:pre">Index++;
ce:pre">}
ce:pre">}
ce:pre">r>>=tEffect[Index];//调节亮度.
ce:pre">g>>=tEffect[Index];
ce:pre">b>>=tEffect[Index];


ce:pre">RGB565_FROM_RGB(colorref,r,g,b);
ce:pre">pbg[x] = (UINT16)colorref;
ce:pre">}


ce:pre">return SP_OK;
}


SINT32 effect_do(spBitmap_t *image,spRect_t *rect,SINT32 type)
{
ce:pre">spRect_t tRect;
ce:pre">if(image == NULL)
ce:pre">return SP_FAIL;
ce:pre">if(rect==NULL){
ce:pre">tRect.x = tRect.y = 0 ;
ce:pre">tRect.width = image->width;
ce:pre">tRect.height = image->height;
ce:pre">}
ce:pre">else
ce:pre">tRect = *rect;
ce:pre">//check rect


ce:pre">tRect.x = tRect.x <0 ?0:tRect.x;
ce:pre">tRect.y = tRect.y <0 ?0:tRect.y;
ce:pre">tRect.width = tRect.width >image->width ?image->width:tRect.width;
ce:pre">tRect.height = tRect.height >image->height?image->height:tRect.height;


ce:pre">//do effect
ce:pre">switch(type)
ce:pre">{
ce:pre">case SMOOTH_BOX:
ce:pre">case SMOOTH_GAUSS:
ce:pre">case SHARPEN_LL:
ce:pre">//return SP_OK;
ce:pre">Bitmap_SmoothDeal(image,&tRect,type);
ce:pre">break;
ce:pre">}
ce:pre">return SP_OK;
}

cle>

http://www.niftyadmin.cn/n/774865.html

相关文章

图像处理算法(模糊,锐化,水彩,素描,反色,马塞克,灰度转化等)

SPGUI&#xff08;Simple Powerfull Graphics User Interface&#xff09;是使用简单、功能强大的嵌入式图形开发系统。主要为开发嵌入式LINUX图形窗口应用提供工具集。她具有美观友好的图形控件&#xff0c;面向对像的编程接口&#xff0c;多平台可移植性等特点SPGUI为设计运行…

安卓程序锁设计

程序名称 :手机程序锁版本:1.0网站 :http://blog.csdn.net/icemanyandy简介:手机程序锁(AppLock)是安卓上一款加密应用程序的安全类工具&#xff0c;它简单易操作&#xff0c;高效。可以同时多款软件程序加锁&#xff0c;比如手机短信&#xff0c;手机相册&#xff0…

安卓笑话桌面插件

安卓笑话桌面插件 程序名称 :幽默大师(笑话桌面) 英文名称 :JokeLike 版本 :1.0 网站 :http://blog.csdn.net/icemanyandy 简介 :幽默大师(笑话桌面)是安卓上一款阅读笑话的利器。与同类软件相比&#xff0c;它独到之处在于让笑话在桌面展示(包含桌面小插件)&…

softboy安卓软件

程序锁Applock4.0 推荐星级&#xff1a; 简介&#xff1a;手机程序锁(AppLock)是安卓上一款加密应用程序的安全类工具&#xff0c;它简单易操作&#xff0c;高效。可以同时多款软件程序...幽默大师(笑话桌面) 推荐星级&#xff1a; 简介&#xff1a;幽默大师(笑话桌面)是一款阅…

风云毛笔字 手机练习毛笔字 【安卓软件】

游戏名称&#xff1a; 风云毛笔字版本: 1.0游戏简介&#xff1a;应用简介&#xff1a;风云毛笔字 是一款的练习毛笔字的软件。毛笔是汉民族对世界艺术宝库提供的一件珍宝&#xff0c;由于社会发展&#xff0c;这个珍宝逐渐被人遗忘&#xff0c;大家更喜欢拿着手机和平板&…

干掉老板Ⅱ 修正版 办公室发泄【安卓软件】

游戏名称&#xff1a;干掉老板Ⅱ 修正版版本:1.0游戏简介&#xff1a;作为可怜的小白领&#xff0c;每天看老板的脸色、加班、挨训都是家常便饭&#xff0c;来发泄一下你的工作压力吧&#xff01;~选择东西来揍老板。可用的17种武器分别是&#xff1a;墙壁、墙壁上的钩子、椅子…

是男人就闯到99关 【安卓软件】

游戏名&#xff1a;是男人就闯到99关官网&#xff1a;www.softboy.uqc.cn游戏简介&#xff1a;是男人就闯到99关是一款敏捷类小游戏。用手指在黑色横条下面滑动&#xff0c;接住上面落下的小球&#xff0c;为了鼓励你&#xff0c;每达到一定的分就更新一张美女图片&#xff0c;…

图片扭扭看,牛逼的图像学算法【安卓软件】

程序名称 :图片扭扭看版本:1.0网站 : www.softboy.uqc.cn简介:图片扭扭看 是一款非常有趣的图像处理软件&#xff0c;包含强大的bend计算机图像处理算法&#xff0c;实现局部成圆角成梯度平滑放大. 是目前所有手机处理软件没有的滤镜功能&#xff0c;是做有趣独特…