Bonsoir
ma fonction fait l'intersection entre les pixels de l'image et les moyennes 10*10 des pixels de la même image, mon problème c'est que le résulats est faux:comme résulat j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function c=interrgb(I); fun = @(x) mean(x(:)); mI(:,:,1) = blkproc(I(1:end-1,1:end-1,1),[ 10 10 ],fun); mI(:,:,2) = blkproc(I(1:end-1,1:end-1,2),[ 10 10],fun); mI(:,:,3) = blkproc(I(1:end-1,1:end-1,3),[ 10 10 ],fun); R = mI(:,:,1); G = mI(:,:,2); B = mI(:,:,3); uRGB = unique([R(:) G(:) B(:)],'rows'); R1 = I(:,:,1); G1 = I(:,:,2); B1 = I(:,:,3); uRGB1 = unique([R1(:) G1(:) B1(:)],'rows'); cc=intersect(uRGB,uRGB1,'rows'); R = cc(:,1); G = cc(:,2); B = cc(:,3); c = unique([R(:) G(:) B(:)],'rows'); end
mais rien que uRGB1 est égale à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 10 10 10 25 25 25 136 0 21 138 138 138 255 255 255
donc le pixel 25 25 25 je ne sais pas d'où il sort, et quand je recopie uRGB et uRGB1 dans de nouvelles matrices et que j'appelle simplement la fonction intersect le résultat est juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 10 10 10 136 0 21 138 138 138 255 255 255?????
Partager