## What is the problem in my following Code?

### PRIYANGA (view profile)

on 20 Sep 2012

Dear Friends! This is my Thesis Coding. I have to calculate the Mean imamge in two ways. First One is Normal method. Another one is Decoded Mean image calculated Using Fractal values. But I got The Decoded Mean image is very

` im1=imread('D:\lena.jpg');`

c = im2uint8(im1);

% figure(1);

% imshow(c);

% title('Image used for training');

gsize=16;

nr=512;

nc=512;

% resize the image

c=imresize(c,[nr,nr]);

nc=nr; R=c(:,:,1);

G=c(:,:,2);

B=c(:,:,3);

% split the image of the range size

k=1; for i1=1:gsize:nr

`    for j1=1:gsize:nc`
```        l=1;
for x=i1:1:i1+(gsize-1)```
`            for y=j1:1:j1+(gsize-1)`
`               rang1r(k,l)=R(x,y); `
`               rang1g(k,l)=G(x,y);`
`               rang1b(k,l)=B(x,y);`
```               l=l+1;
end
end ```
```        drr=double(rang1r(k,:));
meanranr(k)=mean(drr);
varranr(k,:)=var(drr);```
```        drg=double(rang1g(k,:));
meanrang(k)=mean(drg);
varrang(k,:)=var(drg);```
```        drb=double(rang1b(k,:));
meanranb(k)=mean(drb);
varranb(k,:)=var(drb);```
```        k=k+1;
end
end```

rang1=cat(3,rang1r,rang1g,rang1b);

meanran=cat(3,meanranr,meanrang,meanranb);

varran=cat(3,varranr,varrang,varranb);

[nrr1,ncr1]=size(rang1);

% to display the mean image

n=sqrt(nrr1);l=1; for i1=1:1:n

`    for j1=1:1:n`
`        meanimg1r(i1,j1)=meanranr(l);`
`        meanimg1g(i1,j1)=meanrang(l);`
`        meanimg1b(i1,j1)=meanranb(l);`
```        l=l+1;
end
end```

meanimg1=cat(3,meanimg1r,meanimg1g,meanimg1b);

meanimg = uint8(round(meanimg1-1));

figure(3); %

imshow(meanimg);

title('Mean Image of the training'); I got a Good Mean Image

% divide the mean image into blocks km=1; for i1=1:gsize:n

`    for j1=1:gsize:n`
`        l=1;`
`        for x=i1:1:i1+(gsize-1)`
`            for y=j1:1:j1+(gsize-1)`
`               mimageranr(km,l)=meanimg1r(x,y);`
`               mimagerang(km,l)=meanimg1g(x,y);`
`               mimageranb(km,l)=meanimg1b(x,y);`
```               l=l+1;
end```
`        end `
`        km=km+1;`
```    end
end```

mimageran=cat(3,mimageranr,mimagerang,mimageranb);

gsize1=gsize/2; km=1;

for i1=1:gsize1:n

`    for j1=1:gsize1:n`
`        l=1;`
`        for x=i1:1:i1+(gsize1-1)`
`            for y=j1:1:j1+(gsize1-1)`
`               mimageran1r(km,l)=meanimg1r(x,y);`
`               mimageran1g(km,l)=meanimg1g(x,y);`
`               mimageran1b(km,l)=meanimg1b(x,y);`
```               l=l+1;
end
end
km=km+1;
end
end```

mimageran1=cat(3,mimageran1r,mimageran1g,mimageran1b);

llim=10; if (gsize == 16)

`    nvar = 7; nvar1 = 9;`

elseif (gsize == 8)

`    nvar = 11; nvar1 = 13;`

elseif (gsize == 4)

`    nvar = 15; nvar1 = 17;`

else nvar = 19; end

threshold=10;a=1;e=1;e1=1;b=1;w=1;w1=1;eno=0;

% compute the fractal code for i1=1:1:nrr1

```    disp(i1);
if (varran(i1) < threshold)```
```        % Code using mean value
label(i1)=0;```
`        mgacoder(e)=meanranr(i1);`
`        mgacodeg(e)=meanrang(i1);`
`        mgacodeb(e)=meanranb(i1);`
`        e=e+1;`
```        mgacode=cat(3,mgacoder,mgacodeg,mgacodeb);
else```
```        % code using genetic Algorithm
label(i1)=1;```
`        [isomer alphr meanrr dom1r errr]=ga(rang1r(i1,:),mimageranr,nvar,20);`
`        [isomeg alphg meanrg dom1g errg]=ga(rang1g(i1,:),mimagerang,nvar,20);`
`        [isomeb alphb meanrb dom1b errb]=ga(rang1b(i1,:),mimageranb,nvar,20);`
`        err=(errr+errg+errb)/3;`
```        if (err < llim)
label1(w)=0;```
`            gacoder(a,:) = [isomer alphr meanrr dom1r];`
`            gacodeg(a,:) = [isomeg alphg meanrg dom1g];`
```            gacodeb(a,:) = [isomeb alphb meanrb dom1b];
a=a+1;```
```            gacode=cat(3,gacoder,gacodeg,gacodeb);
else
label1(w)=1;```
`            [rangr]=qtsplit(rang1r(i1,:),gsize1);`
`            [rangg]=qtsplit(rang1g(i1,:),gsize1);`
`            [rangb]=qtsplit(rang1b(i1,:),gsize1);`
`           for x=1:1:4`
`                drr1=double(rangr(x,:));`
`                meansrangr(x)=mean(drr1); `
`                varsranr(x,:)=var(drr1);`
`                drg1=double(rangg(x,:));`
`                meansrangg(x)=mean(drg1); `
`                varsrang(x,:)=var(drg1);`
`                drb1=double(rangb(x,:));`
`                meansrangb(x)=mean(drb1); `
`                varsranb(x,:)=var(drb1);`
`                rang=cat(3,rangr,rangg,rangb);`
`                meansrang=cat(3,meansrangr,meansrangg,meansrangb);`
`                varsran=cat(3,varsranr,varsrang,varsranb);`
```                if (varsran(x) < threshold/2)
lab(w1)=0;
mgacode1r(e1)=meansrangr(x);```
`                    mgacode1g(e1)=meansrangg(x);`
`                    mgacode1b(e1)=meansrangb(x);`
```                    e1=e1+1;
mgacode1=cat(3,mgacode1r,mgacode1g,mgacode1b);
else
lab(w1)=1;```
`                    [isomeqr alphqr meanrqr dom2qr errqr] = ga(rangr(x,:),mimageran1r,nvar1,40);`
`                    [isomeqg alphqg meanrqg dom2qg errqg] = ga(rangg(x,:),mimageran1g,nvar1,40);`
`                    [isomeqb alphqb meanrqb dom2qb errqb] = ga(rangb(x,:),mimageran1b,nvar1,40);`
`                    errq=(errqr+errqg+errqb)/3;`
```                    if (errq > llim)
eno=eno+1;
end```
`                    gacode1r(b,:)=[isomeqr,alphqr,meanrqr,dom2qr];`
`                    gacode1g(b,:)=[isomeqg,alphqg,meanrqg,dom2qg];`
`                    gacode1b(b,:)=[isomeqb,alphqb,meanrqb,dom2qb];`
`                    b=b+1;`
`                    gacode1=cat(3,gacode1r,gacode1g,gacode1b);`
`                end`
`                w1=w1+1;`
```            end
end
w=w+1;
end
end
eno```

%decoding

% compute the mean image and display tic w=1;a=1;b=1;w1=1;w2=1;e=1;e1=1;

for x=1:1:sqrt(nrr1)

`    for y=1:1:sqrt(nrr1)`
```        if (label(w)==0)
dmimgr(x,y)=mgacoder(e);```
`            dmimgg(x,y)=mgacodeg(e);`
```            dmimgb(x,y)=mgacodeb(e);
e=e+1;```
`            dmimg=cat(3,dmimgr,dmimgg,dmimgb);`
`        else `
`            if (label1(w1)==0)`
`                dmimgr(x,y)=gacoder(a,3);`
`                dmimgg(x,y)=gacodeg(a,3);`
`                dmimgb(x,y)=gacodeb(a,3);`
`                a=a+1;`
```                dmimg=cat(3,dmimgr,dmimgg,dmimgb);
else```
```                sumvq=0;sumvqr=0;sumvqg=0;sumvqb=0;
for i=1:4```
```                    if (lab(w2)==0)
sumvqr=sumvqr+mgacode1r(e1);```
`                        sumvqg=sumvqg+mgacode1g(e1);`
`                        sumvqb=sumvqb+mgacode1b(e1);`
`                        e1=e1+1;`
```                        sumvq=cat(3,sumvqr,sumvqg,sumvqb);
else
sumvqr=sumvqr+gacode1r(b,3);```
`                        sumvqg=sumvqg+gacode1g(b,3);`
```                        sumvqb=sumvqb+gacode1b(b,3);
b=b+1;```
```                        sumvq=cat(3,sumvqr,sumvqg,sumvqb);
end
w2=w2+1;
end
dmimg=sumvq/4;```
```            end
w1=w1+1;  ```
```        end
w=w+1; ```
`    end  `

end

cimage = uint8(round(dmimg - 1));

figure(4);

imshow(cimage);

title('Decoded Mena image'); % I am not get properDecoded Mean Image

José-Luis

### José-Luis (view profile)

on 20 Sep 2012

You realize you did not ask a question? And that we don't have your image lena.jpg? Also it would help if you edited your code and posted a minimum working example. It would take a better soul than mine to read all your code.

Jan Simon

### Jan Simon (view profile)

on 20 Sep 2012

Please format the code properly. You find enough corresponding instructions in the forum. Then explain the actual problem. "But I got The Decoded Mean image is very" and "I am not get properDecoded Mean Image" does not allow to give instructions for a solution.

## Products

No products are associated with this question.

#### Join the 15-year community celebration.

Play games and win prizes!

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