算法有很多變種。不過主要就是以下三步。
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));
