Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
Fuzzy inferecne filter for image

Subject: Fuzzy inferecne filter for image

From: Twilighter

Date: 25 Jul, 2011 17:19:09

Message: 1 of 1


Hi

i'm struggling with this filter, and i really need someone to show me how i can do it...

just the idea, maybe i'm getting it right or wrong

i need someone to tell me even the idea of it how to go through it

i just noticed that there is no much fuzzy logic questions here & even most of them regarding this area are not answered

Please Please Help me in that

i have those rules

R1: If more of xi are Very High Then En(xi) is Very High.
R2: If more of xi are High Then En(xi) is High.
R3: If more of xi are Medium Then En(xi) is Medium.
R4: If more of xi are Low Then En(xi) is Low.
R5: If more of xi are Very Low Then En(xi) is Very Low.


more is an S function 1/ 1 + exp ^ - (axi -b)

En = sum of all rules multiplied by a constant vector [1 0.8 0.6 0.4 0.2]

xi a pixel in na image ...

how can i do something like this using FIS

i wrote my own code but i see that the En output depends on all the five rules, and the En should be calculates from the rules but how can i apply the IF ... Then ...
it's like recursive ....

this is a fuzzy filter .... and this is the part i cant do, more details are in this paper

http://edoc.ypu.edu.tw:8080/paper/csie/%E9%99%B3%E8%80%80%E6%B7%BB/Image%20Quantization%20Using%20Fuzzy%20Inference%20Filter.pdf

what i have done was to find the 3x3 window pixel and i loop through every 9 pixel and i make it the i/p of my FIS filter which i'm not sure of the way i implemented it
and that's my question

i made a matrix which each colum in it represents 9 pixels which is the 3x3 neighborhood so the matrix for my 64x64 image is m x n
m is 9 pixel & i have n =4096


[m,n] = size(NFC);

tri_param = [0.2 0.4 0.6;
             0.4 0.6 0.8;
             0.6 0.8 1];
trap_param = [-inf -0.2 0.2 0.4;
              0.8 1 1.4 inf]
    
          % Applying the Fuzzy inference algorithm
          % take the pixel 3x3 window and determine the memership
          % degree of each of the pixels within the 5 i/p memebership

for i = 1:1:n
    
    ante_mf = zeros(5,9);
    R = zeros(5,1);
    
    xi = NFC(:,i);
    
    ante_mf(1, :) = trapmf(xi',trap_param(1,:));
    ante_mf(2, :) = trimf(xi',tri_param(1,:));
    ante_mf(3, :) = trimf(xi',tri_param(2,:));
    ante_mf(4, :) = trimf(xi',tri_param(3,:));
    ante_mf(5, :) = trapmf(xi',trap_param(2,:));
    
    z = xi ./ 9; % the more i/p of xi/total number of xi
    for j = 1:5
        min_mf = min(min(ante_mf(j,:)));
        %indx = find(ante_mf(j,:)==min_mf);
        sigValue = sigmf(z(5),[alpha beta]);
        MoreMF = S_More(z(5),alpha, beta);
        R(j) = min_mf .* MoreMF ;
    end
    En(i) = sum (Ck.*R);
end


please tell me how can i modify this code so it will fit the logic i nthe paper cause this is incomplete cause i didnt apply the Rules on the output,

If more of Xj are Very High, then En (xj) is Very High.

En(xj) is very high is not computed

 i really dunno how to explain it ....

i hope i explain it fully

thank you for any help ...
know it's very valuable for me

==========================================
with hope to receive any help in that with god well

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us