Hi, i need to divide all 5 images into 16x16 block, then perform "minus" operation (i.e 1st from 3rd image, then calculate "mean").Likewise for (3rd and 5th image) and (2nd and 4th image) using block process

2 visualizzazioni (ultimi 30 giorni)
Thanks in advance

Risposta accettata

Walter Roberson
Walter Roberson il 29 Giu 2016
See mat2cell() and cellfun()

Più risposte (1)

kaavya subramani
kaavya subramani il 29 Giu 2016
Modificato: Walter Roberson il 29 Giu 2016
Thanks a lot sir, i have tried code using those 2 function, please check whether it is correct.
n=16*ones(1,16)
k=[img1 img2 img3 img4 img5]
for i=1:length(k)
blockres(i)=mat2cell(i,n,n)
end
for p=1:length(blockres)-2
for q=2+p:length(blockres)
minus(p)=cellfun(@minus,p,q,'uniform',0)
end
sum(p)=cellfun(@sum,minus,'uniform',0)
end
mean(p)=cellfun(@mean,sum,'uniform',0)
  5 Commenti
kaavya subramani
kaavya subramani il 29 Giu 2016
Sorry sir,i noticed that from comment, but i not corrected in my code. n=16*ones(1,16) k={img1 img2 img3 img4 img5} for i=1:length(k) blockres(i)=mat2cell(k{i},n,n) end for p=1:length(blockres)-2 for q=2+p:length(blockres) minus(p)=cellfun(@minus,p{blockres},q{blockres},'uniform',0) end mean(p)=cellfun(@mean,sum,'uniform',0) end
kaavya subramani
kaavya subramani il 29 Giu 2016
k sir. n=16*ones(1,16) k={img1 img2 img3 img4 img5} for i=1:length(k) blockres(i)=mat2cell(k{i},n,n) end for p=1:length(blockres)-2 for q=2+p:length(blockres) res1(p)=cellfun(@minus,p{blockres},q{blockres},'uniform',0) end res2(p)=cellfun(@mean,sum,'uniform',0) end

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by