ps的各種濾鏡都可以用matlab**來進行實現,今天給出乙個例子:素描濾鏡
原圖如圖:
實驗步驟如下:
1.首先原圖就是灰度圖,我們不需要進行去色處理,直接讀取 即可,並對影象的灰度級歸一化到[0 255]。
2.對原圖進行反色得到影象b。
3.對影象b進行高斯模糊得到圖c。
4.最後將影象c與影象b進行顏色減淡的圖層混合演算法得到最後處理效果,顏色減淡的公式為:結果色 = 基色 + (混合色 * 基色) / (255 - 混合色)。
matlab實現**:
i=imread('d:/影象/fish.tif');
figure(1);
imshow(i);
info_size=size(i);
height=info_size(1);
width=info_size(2);
n=zeros(height,width); %取反之後值
g=zeros(height,width); %濾波之後值
%灰度級歸一化到0-255
originalminvalue = double(min(min(i)));
originalmaxvalue = double(max(max(i)));
originalrange = originalmaxvalue - originalminvalue;
desiredmin = 0;
desiredmax = 255;
desiredrange = desiredmax - desiredmin;
v= desiredrange * (double(i) - originalminvalue) / originalrange + desiredmin;
gc =v(:,:,1);
channel = gc;
out=zeros(height,width);
%顏色取反
for i=1:height
for j=1:width
n(i,j)=uint8(255-channel(i,j)); %double
end
end
figure(2);
imshow(n,[0,255]);
%高斯模糊
gausize = 90; %濾波器大小,越大越模糊
gausigma = 10; %越大越模糊
gh = fspecial('gaussian', gausize, gausigma);
g = imfilter(n, gh);
figure(3);
imshow(g,[0,255]);
for i=1:height
for j=1:width
b=double(g(i,j));
a=double(channel(i,j));
temp=a+a*b/(255-b); %顏色減淡演算法
out(i,j)=uint8(min(temp,255));
end
end
figure(4)
imshow(out/255);
%模糊程度越高,得到的素描結果越清晰,框架紋理顏色越深
得到如下結果:
素描濾鏡即可實現!這個例子也可以用於影象增強方面,使中的魚骨及魚刺清晰地顯示出來。
關於編寫程式
當初選擇了文經學院,毅然決然的選擇了電腦科學與技術這個專業,說實話我也不太清楚為什麼,程式設計員大多數都是男生,作為女生的我,也想嘗試一下吧,來上課,第一次接觸程式設計,老師只是叫我們照著書打,就算是這樣,我們還是不能正確執行,粗心大意的毛病在這個時候顯現的無疑,但是卻一點沒有澆滅我對學計算機的熱情...
結伴編寫程式
form1的 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system...
編寫程式的步驟
編寫程式至少需要三個步驟 步驟一 確定ipo 理解ipo模式 i input 輸入,程式的輸入 包括檔案輸入 網路輸入 使用者手工輸入 隨機資料輸入 程式內部引數輸入等 輸入是乙個程式的開始 p process 處理,程式的主要邏輯 程式對輸入進行處理輸出產生結果 處理的方法也叫演算法,是程式最重要...