MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

index exceeds matrix dimention

lama jallo さんによって質問されました 2012 年 12 月 18 日
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 件のコメント

Mark Whirdy 2012 年 12 月 18 日
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);

サインイン to comment.

3 件の回答

Loginatorist
回答者: Loginatorist
2012 年 12 月 18 日

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 件のコメント

サインイン to comment.


Walter Roberson
回答者: Walter Roberson
2012 年 12 月 18 日

What did you initialize dluma as ?

  0 件のコメント

サインイン to comment.


Image Analyst
回答者: Image Analyst
2012 年 12 月 18 日
編集済み: Image Analyst
2012 年 12 月 18 日

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 件のコメント

サインイン to comment.



Translated by