index exceeds matrix dimention
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
the error is in the line i have the three asterisks i cant figure it out, please help
Q=[16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99];
luma=double(luma);
luma=luma-128;
%dct
for i=1:8:size(luma,1)
for j=1:8:size(luma,2)
*** dluma(i:i+7,j:j+7)=dct2(luma(i:i+7,j:j+7));
temp(i:i+7,j:j+7)=dluma(i:i+7,j:j+7)./Q;
temp1(i:i+7,j:j+7)=round(temp(i:i+7,j:j+7));
end
end
1 commentaire
Mark Whirdy
le 18 Déc 2012
please paste self-contained code with all variables defined to accommodate any would-be assisters,
P.S. "if true" is pointless
??? Undefined function or variable 'luma'.
Error in ==> Untitled2 at 12
luma=double(luma);
Réponses (3)
Matt Fig
le 18 Déc 2012
What is the Q doing there? We need to see code that we can copy/paste and it will run. So please fill in the missing variables by editing your question.
0 commentaires
Image Analyst
le 18 Déc 2012
Modifié(e) : Image Analyst
le 18 Déc 2012
Change the lines to:
for i=1:8:size(luma,1)-7
for j=1:8:size(luma,2)-7
so that i and j never actually hit the very end of the array. The problem is that if i and j are at the very end, then i+7 and j+7 will be past the end. Setting them to 7 less means that the loop will end before so that i+7 and j+7 will not exceed the end.
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!