用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)
總結
以上是生活随笔為你收集整理的用matlab做胶片滤镜,photoshop图像滤镜——浮雕算法(含matlab与C代码).pdf的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Re-parameterizing Yo
- 下一篇: 计算机网络与Internet发展历史