演算法有很多變種。不過主要就是以下三步。
1.設計隸屬度函式將影象從空間域變換到模糊集域。
2.設計模糊增強運算元,在模糊集域對影象進行處理。
3.根據第1步的隸屬度函式重新將影象從模糊集域變換到空間域。
這和頻域處理中的變換反變換不是很像麼。
我使用的隸屬度函式和模糊增強運算元在這篇論文裡,也算相關演算法的經典論文了。
處理結果如下:
原圖:
模糊集增強後:
matlab程式碼如下:
clear all; close all; clc; img=double(imread('lena.jpg')); imshow(img,[]) [m n]=size(img); Fe=1; %控制引數 Fd=128; xmax=max(max(img)); u=(1+(xmax-img)/Fd).^(-Fe); %空間域變換到模糊域 %也可以多次迭代 for i=1:m %模糊域增強運算元 for j=1:n if u(i,j)<0.5 u(i,j)=2*u(i,j)^2; else u(i,j)=1-2*(1-u(i,j))^2; end end end img=xmax-Fd.*(u.^(-1/Fe)-1); %模糊域變換回空間域 figure; imshow(uint8(img));