用matlab做胶片滤镜,photoshop图像滤镜——浮雕算法(含matlab与C代码).pdf

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;i

6. for(j=0;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;i

14. for(j=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)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值