- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
photoshop图像滤镜——浮雕算法(含matlab与C代码)
一、photoshop 图像滤镜——浮雕算法
浮雕的算法是对图像的每一个点进行卷积处理,采用的矩阵如下
[1 0 0;0 0 0;0 0 -1];
假设原图像为X,处理后的图像为Y ,也就是说,对于坐标为(i,j)
点,其浮雕效果图的算法为Y(i,j)=X(i-1,j-1)-X(i+1,j+1)+128。当然,
X,Y 的取值均在0~255 之间。
matlab 代码如下:
[plain] view plaincopy
1. img=imread(9.jpg);
2. size_info=size(img);
3. height=size_info(1);
4. width=size_info(2);
5. spec_img=zeros(height,width,3);
6. img_temp=rgb2gray(img);
7.
8. for i=2:height-1
9. for j=2:width-1
10. spec_img(i,j,:)=double(img(i-1,j-1,:))-double(img(i+1,j+1,:))+128;
11. end
12. end
13.
14. imshow(spec_img/255);
原图:
效果图:
相应的C 代码如下:
[plain] view plaincopy
1. void emboss(unsigned char r[1000][1000],unsigned char g[1000][1000],unsigned
char b[1000][1000],unsigned char output_r[1000][1000],unsigned char output_
g[1000][1000],unsigned char output_b[1000][1000],int height,int width)
2. {
3. int i,j;
4. //rgb 为输入图像的3 个通道,output r g b 为输出图像的通道
5. for(i=0;iheight;i++)
6. for(j=0;jwidth;j++)
7. {
8. output_r[i][j]=128;
9. output_g[i][j]=128;
10. output_b[i][j]=128;
11. }
12.
13. for(i=1;iheight-1;i++)
14. for(j=1;jwidth-1;j++)
15. {
16. output_r[i][j]=r[i-1][j-1]-r[i+1][j+1]+128;
17. output_g[i][j]=g[i-1][j-1]-g[i+1][j+1]+128;
18. output_b[i][j]=b[i-1][j-1]-b[i+1][j+1]+128;
19. }
20. }
欢迎各位朋友多多指教,欢迎分享,并且请您注明出处 (wsfdl)
文档评论(0)