logo资料库

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

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
二、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;i
5. for(j=0;j
44. for(j=0;j
分享到:
收藏