网站大量收购独家精品文档,联系QQ:2885784924

图形图像处理之误差扩散中篇.pdfVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形图像处理-之-误差扩散 中篇 HouSisong@GM 2008.04.22 (2010.01.05 文章由2 篇变成3 篇,对误差扩散的速度和质量作进一步探讨! 代码也有一些更新,容纳到我的图像处理建议框架内,并提供源代码下载! 测试环境也有了变动;由AMD64x2 4200+(2.37G)DDR2 677(双通道) 升级为i7- 920 DDR3 1333(三通道) ) (2008.12.01 修正一处bug,颜色误差多累加了一次; 该错误由QueQuan 发现,表示感 谢! ) tag: 误差扩散,真彩色到高彩色转换,色阶,减色,半色调 摘要: 在图像的颜色转换过程中,由于颜色值域的不同,转换过程中可能会产生误差; 误差扩散算法通过将误差传递到周围像素而减轻其造成的视觉误差。 上篇:简单实现; 中篇:简单的速度优化; 下篇: 更快的速度或更好的效果. (测试源代码下载: http://cid- 10/self.aspx/.Public/ErrorDiffuse.zip ) 正文: 代码使用C++,编译器:VC2005 测试平台:(CPU:i7-920(3.44G); 内存:DDR3 1333(三通道); 编译器:VC2005) (请先参看文章的上篇) E: 将误差扩散的浮点实现改写为一个整数的定点数实现: struct TErrorColor{ long dR; long dG; long dB; }; inline long getBestRGB16_555Color( const long wantColor) { const long rMax = ( 1 5 ) - 1 ; if (wantColor = 0 ) return 0 ; else if (wantColor = (rMax 3 )) return rMax; else return wantColor 3 ; } inline long getC8Color( const long rColor){ return rColor*(255*(116)/((15)-1)) 16; // rColor*255/((15)-1); } void CvsPic32To16_ErrorDiffuse_Line_1(UInt16 * pDst, const Color32 * pSrc, long width,TErrorColor * PHLineErr){ TErrorColor HErr; HErr.dR = 0 ; HErr.dG = 0 ; HErr.dB = 0 ; PHLineErr[ - 1 ].dB = 0 ; PHLineErr[ - 1 ].dG = 0 ; PHLineErr[ - 1 ].dR = 0 ; for ( long x = 0 ;x width; ++ x) { long cB = (pSrc[x].b + HErr.dB*2 + PHLineErr[x].dB ); long cG = (pSrc[x].g + HErr.dG*2 + PHLineErr[x].dG ); long cR = (pSrc[x].r + HErr.dR*2 + PHLineErr[x].dR ); long rB = getBestRGB16_555Color(cB); long rG = getBestRGB16_555Color(cG); long rR = getBestRGB16_555Color(cR); pDst[x] = r

文档评论(0)

feiyang66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档