看板 MATLAB 關於我們 聯絡資訊
X = imread('cameraman.tif'); y = zeros(size(X)); Qp=[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]; y_value=[]; new_index=[]; zigzag=[1 1;1 2;2 1;3 1;2 2;1 3;1 4;2 3;3 2;4 1;5 1;4 2;3 3;2 4;1 5;1 6;2 5;3 4;4 3;5 2;6 1;7 1;6 2;5 3;4 4;3 5;2 6;1 7;1 8;2 7;3 6;4 5;5 4;6 3;7 2;8 1;8 2;7 3;6 4;5 5;4 6;3 7;2 8;3 8;4 7;5 6;6 5;7 4;8 3;8 4;7 5;6 6;5 7;4 8;5 8;6 7;7 6;8 5;8 6;7 7;6 8;7 8;8 7;8 8]; for i=1:8:249 for j=1:8:249 x = double(X(i:i+7,j:j+7)); n=length(x); c=0:n-1; for g=1:n; if g==1; a(:,g)=sqrt(1/n)*cos(pi*(2*c+1)*0/(2*n)); else a(:,g)=sqrt(2/n)*cos(pi*(2*c+1)*(g-1)/(2*n)); end end y=a.*x.*a'; ii=round(y./Qp); index_table=ii; end for c=1:1024 y_value(:,:,c)=ii; end end 請問一下為何最後我的y_value值都會完全一模一樣呢? 也就是說 第一段FOR那邊都沒成功的RUN,請問哪部分出問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.58.176.226 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1439150521.A.58A.html
OuOcc: for c=1:1024 y_value(:,:,c)=ii; 目前出問題是這段 08/10 04:12
OuOcc: 只會一直存當C=1的值 我該如何讓每一個上面迴圈 08/10 04:13
OuOcc: 跑的值都能夠存進去呢? 08/10 04:13
celestialgod: 為什麼不在上面的迴圈每次跑y_value(:,:,k)=ii; 08/10 09:33
celestialgod: 迴圈外面加上k=1;y_value那行下方再加上k=k+1; 08/10 09:33
s123123sam: for 邏輯不太對。把for 流程圖畫出來。會發現到 08/10 22:17
s123123sam: 只有j=249,會丟到y_value參數。i=1:8:249則覆蓋前面 08/10 22:21