photoshop图像滤镜——素描算法(含matlab与C代码).pdfVIP

photoshop图像滤镜——素描算法(含matlab与C代码).pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二、photoshop 图像滤镜——素描算法 素描的算法,网络上有多种,但是效果并不是特别理想。熟悉 photoshop 的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步 操作:1、去色;2、复制去色图层,并且反色;3、对反色图像进行高 斯模糊;4、模糊后的图像叠加模式选择颜色减淡效果。 图像的去色较为简单,就不多解释。假设原图像为X,处理后的 图像为Y ,也就是说,对于坐标为(i,j)点,反色为Y(i,j)=255-X(i,j)。 高斯模糊相当与一个低通滤波器,朋友们可以找找和高斯模糊有关的资 料。颜色减淡的算法是这样的:C =MIN( A + (A×B)/ (255-B),255), 其中C 为混合结果,A 为源像素点,B 为目标像素点。 matlab 代码如下: [plain] view plaincopy 1. I=imread(a1.jpg,jpg); 2. imshow(I); 3. figure(); 4. info_size=size(I); 5. height=info_size(1); 6. width=info_size(2); 7. N=zeros(height,width); 8. g=zeros(height,width); 9. imggray=rgb2gray(I); 10. out=zeros(height,width); 11. 12. spec=zeros(height,width,3); 13. for i=1:height 14. for j=1:width 15. 16. N(i,j)=255-imggray(i,j); 17. 18. end 19. end 20. 21. for i=2:height-1 22. for j=2:width-1 23. sum=0; 24. sum=1*double(N(i-1,j-1))+2*double(N(i-1,j))+1*double(N(i-1,j+1)); 25. sum=sum+2*double(N(i,j-1))+4*double(N(i,j))+2*double(N(i,j+1)); 26. sum=sum+1*double(N(i+1,j-1))+2*double(N(i+1,j))+1*double(N(i+1,j+1)) ; 27. sum=sum/16; 28. g(i,j)=sum; 29. end 30. end 31. 32. for i=1:height 33. for j=1:width 34. b=double(g(i,j)); 35. a=double(imggray(i,j)); 36. temp=a+a*b/(256-b); 37. out(i,j)=uint8(min(temp,255)); 38. 39. end 40. end 41. imshow(out/255); 处理后图像如下: C 代码如下: [plain] view plaincopy 1. void rgb2gray(unsigned char r[1000][1000],unsigned char g[1000][1000],unsign ed char b[1000][1000],unsigned char gray[1000][1000],int height,int width) 2. { 3. int i,j; 4. for(i=0;iheight;i++) 5. for(j=0;jwidth;j++) 6. { 7. 8. gray[i][j]=r[i][j]/3+g[i][j]/3+b[i][j

文档评论(0)

智慧书苑 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档