matlab素描演算法實現

2021-08-18 20:09:23 字數 1388 閱讀 6724

處理一幅影象,生成實際的素描影象,基本原理見:photoshop影象濾鏡——素描演算法

實現**如下:

n=zeros(height,width); %取反之後值

g=zeros(height,width); %濾波之後值

%三通道

rc = i(:,:,1);

gc = i(:,:,2);

bc = i(:,:,3);

%選擇乙個通道進行處理

channel = gc;

out=zeros(height,width);

spec=zeros(height,width,3);

%顏色取反

fori=1:height

forj=1:width

n(i,j)=uint8(255-channel(i,j)); %double

endend

figure(2);

imshow(n,[0,255]);

%高斯模糊

gausize = 9; %濾波器大小,越大越模糊

gausigma = 10; %越大越模糊

gh = fspecial('gaussian', gausize, gausigma);

g = imfilter(n, gh);

figure(3);

imshow(g,[0,255]);

fori=1:height

forj=1:width

b=double(g(i,j));

a=double(channel(i,j));

temp=a+a*b/(256-b);

out(i,j)=uint8(min(temp,255));

endend

figure(4)

imshow(out/255);

%模糊程度越高,得到的素描結果越清晰,框架紋理顏色越深

效果圖

可以調整高斯濾波器的視窗大小和sigma值,從而實現不同程度的素描效果。

素描濾鏡的實現

期望圖 參考鏈結2 直接對每乙個畫素乘於乙個灰度的乘子即可得到當前畫素的灰度 vec3 greyscale vec3 inputcolor 效果圖如下 直接相減即可 vec3 invertcolor vec3 inputcolor 效果圖如下 對每個畫素乘於乙個5 5的核之後乘於0.4即可 1 1 ...

matlab實現kmeans演算法

kmeans是一種聚類演算法 無監督學習 演算法分為兩步 1.隨機選取k個聚類中心。2.計算每個樣本點離哪個聚類中心最近 距離計算 就將該樣本分為這個類。3.重新計算這k個類的聚類中心。一種簡單的計算方法為 計算每個類的平均值即為新的聚類中心。重複執行步驟2,直到聚類中心的變化小於給定閾值,或者達到...

Apriori演算法Matlab實現

clc clear 最小支援度設定 min sup 2 最小置信度 min conf 0.7 讀取檔案,當前的檔案型別是txt檔案,事務資料用數字來表示的,測試資料可以用 資料探勘概念與技術 第三版中的資料為樣本 fid fopen d matlabfile apriori dataapriori....