一种消除图像锯齿的方法及装置制造方法

文档序号:6638476阅读:255来源:国知局
一种消除图像锯齿的方法及装置制造方法
【专利摘要】本发明涉及图像处理【技术领域】,尤其涉及一种消除图像锯齿的方法及装置,该方法包括:加载图像所有像素的颜色值到像素数组中;计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏移量;根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通道做透明处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中;将赋值后的像素数组设置到所述图像中,得到消除锯齿后的图像,本发明通过Android中像素数组的像素操作,对特定位的像素颜色执行高位透明处理,克服了需要动态获取图片而又采用了硬件加速场合下图像锯齿难以消除的问题,且消除边缘锯齿效果明显。
【专利说明】一种消除图像锯齿的方法及装置

【技术领域】
[0001] 本发明涉及图像处理【技术领域】,尤其涉及一种消除图像锯齿的方法及装置。

【背景技术】
[0002] 在Android绘图中,有两种消除图像锯齿的方法,分别是给Paint或 Canvas加上抗锯齿标 志:paint. setAntiAlias (true)和 canvas. setDrawFilter (new PaintFlagsDrawFilter (0, Paint. ANTI_ALIAS_FLAG I Paint. FILTER_BITMAP_FLAG)),但现 在很多应用程序为了提高性能都会开启硬件加速,此时这两种方法就不能消除图像锯齿, 对于旋转或缩放图片导致的锯齿,大多数是让美工手动修改图片,将图片的边缘部分做一 定的透明处理来避免锯齿,但对于动态获取的图片就无法消除图像锯齿。


【发明内容】

[0003] 本发明的目的在于提出一种消除图像锯齿的方法及装置,对特定位的像素颜色执 行高位透明处理,克服了需要动态获取图片而又采用了硬件加速场合下图像锯齿难以消除 的问题,且消除边缘锯齿效果明显。
[0004] 为达此目的,本发明采用以下技术方案:
[0005] -种消除图像锯齿的方法,包括:
[0006] 步骤110、加载图像所有像素的颜色值到像素数组中;
[0007] 步骤120、计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏移量;
[0008] 步骤130、根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通道做 透明处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中;
[0009] 步骤140、将赋值后的像素数组设置到所述图像中,得到消除锯齿后的图像。
[0010] 其中,所述像素数组是一个包含所述图像的宽度和高度的二维矩阵。
[0011] 其中,所述步骤130具体包括:
[0012] 步骤131、根据所述像素数组和边缘像素偏移量得到边缘像素颜色值;
[0013] 步骤132、将所述边缘像素颜色值的灰度通道做与零处理,其中所述灰度通道为边 缘像素颜色值的最高位字节;
[0014] 步骤133、将处理后边缘像素颜色值赋值到所述像素数组中对应的元素。
[0015] 其中,所述步骤110具体为:采用Andriod的Bitmap类中的getpixels接口函数 将图像所有像素的颜色值加载到像素数组pixels中,所述像素数组pixels为4字节的整 型数组。
[0016] 其中,所述步骤120具体包括:
[0017] 步骤121、从第i行开始扫描,其中,0彡i彡h-1,h为像素数组的高度;
[0018] 步骤122、判断i是否大于h-Ι,若是,则结束扫描;
[0019] 步骤123、若i彡h-Ι,判断i是否大于等于预设的边缘宽度e且小于h-e,若是,则 i+Ι,返回步骤121,若否,则进入步骤124 ;
[0020] 步骤124、从第j列开始扫描,其中,0 < j < W-1,W为像素数组的宽度;
[0021] 步骤125、判断j是否大于w-1,若是,则i+Ι,返回步骤121,若否,则进入步骤126 ;
[0022] 步骤126、判断j是否大于等于预设的边缘宽度e且小于w-e,若是,则j+Ι,返回步 骤124,若否,则进入步骤127;
[0023] 步骤127、计算该第i行j列的边缘像素偏移量offset = j+i*w ;
[0024] 步骤128、重复步骤124到127扫描完整个第i行;
[0025] 步骤129、重复以上步骤直至计算出所有边缘像素偏移量。
[0026] 一种消除图像锯齿的装置,包括:
[0027] 像素加载单元,用于加载图像所有像素的颜色值到像素数组中;
[0028] 计算单元,用于计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏 移量;
[0029] 透明处理单元,用于根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰 度通道做透明处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中;
[0030] 消除锯齿单元,用于将赋值后的像素数组设置到所述图像中,得到消除锯齿后的 图像。
[0031] 其中,所述像素数组是一个包含所述图像的宽度和高度的二维矩阵。
[0032] 其中,所述透明处理单元具体包括:
[0033] 边缘像素颜色值计算模块,用于根据所述像素数组和边缘像素偏移量得到边缘像 素颜色值;
[0034] 与零处理模块,用于将所述边缘像素颜色值的灰度通道做与零处理,其中所述灰 度通道为边缘像素颜色值的最高位字节;
[0035] 赋值模块,用于将处理后边缘像素颜色值赋值到所述像素数组中对应的元素。
[0036] 其中,所述像素加载单元的工作流程具体为:采用Andriod的Bitmap类中的 getpixels接口函数将图像所有像素的颜色值加载到像素数组pixels中,所述像素数组 pixels为4字节的整型数组。
[0037] 其中,所述计算单元的工作流程具体包括:
[0038] 步骤121、从第i行开始扫描,其中,0彡i彡h-1,h为像素数组的高度;
[0039] 步骤122、判断i是否大于h-Ι,若是,则结束扫描;
[0040] 步骤123、若i彡h-Ι,判断i是否大于等于预设的边缘宽度e且小于h-e,若是,则 i+Ι,返回步骤121,若否,则进入步骤124 ;
[0041] 步骤124、从第j列开始扫描,其中,0 < j < w-1,w为像素数组的宽度;
[0042] 步骤125、判断j是否大于W-1,若是,则i+1,返回步骤121,若否,则进入步骤126 ;
[0043] 步骤126、判断j是否大于等于预设的边缘宽度e且小于w-e,若是,则j+Ι,返回步 骤124,若否,则进入步骤127;
[0044] 步骤127、计算该第i行j列的边缘像素偏移量offset = j+i*w ;
[0045] 步骤128、重复步骤124到127扫描完整个第i行;
[0046] 步骤129、重复以上步骤直至计算出所有边缘像素偏移量。
[0047] 本发明的有益效果为:一种消除图像锯齿的方法及装置,该方法包括:加载图像 所有像素的颜色值到像素数组中;计算图像四周边缘的原始像素内存地址偏移量,得到边 缘像素偏移量;根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通道做透明 处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中;将赋值后的像素数组 设置到所述图像中,得到消除锯齿后的图像,本发明通过Android中像素数组的像素操作, 对特定位的像素颜色执行高位透明处理,克服了需要动态获取图片而又采用了硬件加速场 合下图像锯齿难以消除的问题,且消除边缘锯齿效果明显。

【专利附图】

【附图说明】
[0048] 图1是本发明实施例一提供的一种消除图像锯齿的方法流程图。
[0049] 图2是本发明实施例一提供的边缘像素偏移量计算方法流程图。
[0050] 图3是本发明实施例二提供的一种消除图像锯齿的装置结构图。

【具体实施方式】
[0051] 下面结合图1-图3并通过【具体实施方式】来进一步说明本发明的技术方案。
[0052] 实施例一
[0053] 图1是本发明实施例一提供的一种消除图像锯齿的方法流程图。
[0054] -种消除图像锯齿的方法,包括:
[0055] 步骤110、加载图像所有像素的颜色值到像素数组中;
[0056] 步骤120、计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏移量;
[0057] 步骤130、根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通道做 透明处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中;
[0058] 步骤140、将赋值后的像素数组设置到所述图像中,得到消除锯齿后的图像。
[0059] 在本实施例中,通过Android中像素数组pixels的像素操作,对特定位的像素颜 色执行高位透明处理,克服了需要动态获取图片而又采用了硬件加速场合下图像锯齿难以 消除的问题,且消除边缘锯齿效果明显。
[0060] 在本实施例中,所述步骤110具体为:采用Andriod的Bitmap类中的getpixels 接口函数将图像所有像素的颜色值加载到像素数组pixels中,所述像素数组pixels为4 字节的整型数组。
[0061] 在本实施例中,加载所有像素的颜色到像素数组pixels中的接口函数为:
[0062] b. getPixels (pixels, 0, w, 0, 0, w, h),其中,b 是 bitmap 类型的对象,w 为图像的宽 度,h为图像的高度。
[0063] 在本实施例中,所述像素数组是一个包含所述图像的宽度和高度的二维矩阵w*h。
[0064] 在本实施例中,将赋值后的像素数组设置到所述图像中所用到的接口函数为:b. s etPixels (pixels, 0, w, 0, 0, w, h) 〇
[0065] 在本实施例中,所述步骤130具体包括:
[0066] 步骤131、根据所述像素数组和边缘像素偏移量得到边缘像素颜色值;
[0067] 步骤132、将所述边缘像素颜色值的灰度通道做与零处理,其中所述灰度通道为边 缘像素颜色值的最高位字节;
[0068] 步骤133、将处理后边缘像素颜色值赋值到所述像素数组中对应的元素。
[0069] 如图2所示,在本实施例中,所述步骤120具体包括:
[0070] 步骤121、从第i行开始扫描,其中,0彡i彡h-1,h为像素数组的高度;
[0071] 步骤122、判断i是否大于h-Ι,若是,则结束扫描;
[0072] 步骤123、若i彡h-Ι,判断i是否大于等于预设的边缘宽度e且小于h-e,若是,则 i+Ι,返回步骤121,若否,则进入步骤124 ;
[0073] 步骤124、从第j列开始扫描,其中,0 < j < w-1,w为像素数组的宽度;
[0074] 步骤125、判断j是否大于W-1,若是,则i+1,返回步骤121,若否,则进入步骤126 ;
[0075] 步骤126、判断j是否大于等于预设的边缘宽度e且小于w-e,若是,则j+Ι,返回步 骤124,若否,则进入步骤127;
[0076] 步骤127、计算该第i行j列的边缘像素偏移量offset = j+i*w ;
[0077] 步骤128、重复步骤124到127扫描完整个第i行;
[0078] 步骤129、重复以上步骤直至计算出所有边缘像素偏移量。
[0079] 在本实施例中,计算边缘像素偏移量的伪代码为:

【权利要求】
1. 一种消除图像银齿的方法,其特征在于,包括: 步骤110、加载图像所有像素的颜色值到像素数组中; 步骤120、计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏移量; 步骤130、根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通道做透明 处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中; 步骤140、将赋值后的像素数组设置到所述图像中,得到消除银齿后的图像。
2. 根据权利要求1所述的一种消除图像银齿的方法,其特征在于,所述像素数组是一 个包含所述图像的宽度和高度的二维矩阵。
3. 根据权利要求1所述的一种消除图像银齿的方法,其特征在于,所述步骤130具体包 括: 步骤131、根据所述像素数组和边缘像素偏移量得到边缘像素颜色值; 步骤132、将所述边缘像素颜色值的灰度通道做与零处理,其中所述灰度通道为边缘像 素颜色值的最高位字节; 步骤133、将处理后边缘像素颜色值赋值到所述像素数组中对应的元素。
4. 根据权利要求1所述的一种消除图像银齿的方法,其特征在于,所述步骤110具体 为;采用An化iod的Bitmap类中的ge化ixels接口函数将图像所有像素的颜色值加载到像 素数组pixels中,所述像素数组pixels为4字节的整型数组。
5. 根据权利要求2所述的一种消除图像银齿的方法,其特征在于,所述步骤120具体包 括: 步骤121、从第i行开始扫描,其中,0《i《h-1,h为像素数组的高度; 步骤122、判断i是否大于h-1,若是,则结束扫描; 步骤123、若i《h-1,判断i是否大于等于预设的边缘宽度e且小于h-e,若是,则i+1, 返回步骤121,若否,则进入步骤124 ; 步骤124、从第j列开始扫描,其中,0《j《W-1,W为像素数组的宽度; 步骤125、判断j是否大于W-1,若是,则i+1,返回步骤121,若否,则进入步骤126 ; 步骤126、判断j是否大于等于预设的边缘宽度e且小于w-e,若是,则j+1,返回步骤 124,若否,则进入步骤127 ; 步骤127、计算该第i行j列的边缘像素偏移量offset = j+i*w ; 步骤128、重复步骤124至Ij 127扫描完整个第i行; 步骤129、重复W上步骤直至计算出所有边缘像素偏移量。
6. -种消除图像银齿的装置,其特征在于,包括: 像素加载单元,用于加载图像所有像素的颜色值到像素数组中; 计算单元,用于计算图像四周边缘的原始像素内存地址偏移量,得到边缘像素偏移 量; 透明处理单元,用于根据所述像素数组和边缘像素偏移量对边缘像素颜色值的灰度通 道做透明处理,得到处理后的边缘像素颜色值结果并赋值到所述像素数组中; 消除银齿单元,用于将赋值后的像素数组设置到所述图像中,得到消除银齿后的图像。
7. 根据权利要求6所述的一种消除图像银齿的装置,其特征在于,所述像素数组是一 个包含所述图像的宽度和高度的二维矩阵。
8. 根据权利要求6所述的一种消除图像银齿的装置,其特征在于,所述透明处理单元 具体包括: 边缘像素颜色值计算模块,用于根据所述像素数组和边缘像素偏移量得到边缘像素颜 色值; 与零处理模块,用于将所述边缘像素颜色值的灰度通道做与零处理,其中所述灰度通 道为边缘像素颜色值的最高位字节; 赋值模块,用于将处理后边缘像素颜色值赋值到所述像素数组中对应的元素。
9. 根据权利要求6所述的一种消除图像银齿的装置,其特征在于,所述像素加载单元 的工作流程具体为;采用An化iod的Bitmap类中的ge化ixels接口函数将图像所有像素的 颜色值加载到像素数组pixels中,所述像素数组pixels为4字节的整型数组。
10. 根据权利要求7所述的一种消除图像银齿的装置,其特征在于,所述计算单元的工 作流程具体包括: 步骤121、从第i行开始扫描,其中,0《i《h-1,h为像素数组的高度; 步骤122、判断i是否大于h-1,若是,则结束扫描; 步骤123、若i《h-1,判断i是否大于等于预设的边缘宽度e且小于h-e,若是,则i+1, 返回步骤121,若否,则进入步骤124 ; 步骤124、从第j列开始扫描,其中,0《j《W-1,W为像素数组的宽度; 步骤125、判断j是否大于W-1,若是,则i+1,返回步骤121,若否,则进入步骤126 ; 步骤126、判断j是否大于等于预设的边缘宽度e且小于w-e,若是,则j+1,返回步骤 124,若否,则进入步骤127 ; 步骤127、计算该第i行j列的边缘像素偏移量offset = j+i*w ; 步骤128、重复步骤124至Ij 127扫描完整个第i行; 步骤129、重复W上步骤直至计算出所有边缘像素偏移量。
【文档编号】G06T5/00GK104463803SQ201410766422
【公开日】2015年3月25日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】吴奇志 申请人:上海卓悠网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1