matlab 抓背景問題 |
尚未結案
|
7y7y7
一般會員 發表:14 回覆:2 積分:3 註冊:2004-12-28 發送簡訊給我 |
這是抓背景程式 s=0 % 起始張___ok
e=0 % 結束張___ok
n=20
u =0
t=[n:1]
o =0
r = 0
for d=1:1
s=e 1
e=d*n
mov=aviread('E:\MATLAB7\WORK\693.avi',[s:e]); % 讀取avi檔案___ok
colormap(gray);
for i=1:n % 一次讀取20張___ok
mov_gray(i).image=mov(i).cdata; % 取得這20張的強度___ok
end
counter=uint8(zeros(size(mov_gray(1).image)));
total_diff(d).diff=uint8(zeros(size(mov_gray(1).image)));
for k=1:n
x(k).image =mov(k).cdata;
u = x(k).image;
h = u(:);
h = h';
t = [t;h];
end
w = median(t);
w = w';
o = reshape(w,240,320,3); for j=1:n % 20張圖,有19個強度差值___ok
r = o-mov_gray(j).image ; % j 1張減掉某張指定張的強度差___ok
end
% windos
end %=======================
%--------------------------- ok=o;
tmp(1:3)=0;
tmp2=0;
di=35;
for ai = 1:240
for bi = 1:320
if o(ai,bi,1:3) di >= mov_gray(86).image(ai,bi,1:3)
if o(ai,bi,1:3)-di <= mov_gray(86).image(ai,bi,1:3)
tmp=1;
end
end
if tmp == 1
ok(ai,bi,1:3)=0;
tmp2=1;
end
if tmp2~=1
ok(ai,bi,1:3)=mov_gray(86).image(ai,bi,1:3);
end
tmp2=0;
tmp=0;
end
end
%-------------------------- 換個avi檔下去跑的時候,卻出現這個問題
Error using ==> reshape
To RESHAPE the number of elements must not change.
請問各位要如何解決呢
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
很可能是你兩個檔案的avi檔的解析度不同 另外有reshape的行數,如下:
o = reshape(w,240,320,3);請你檢查一下w的維度 輸入指令 (1) size(w) (2) prod(size(w)) % 必須等於240*320*3,當"不等於"時就會發生你遇到的錯誤訊息: 表示你的維度轉換錯誤..發表人 - fusung 於 2005/12/03 00:10:15
------
The first step toward proving things for yourself is to understand how others have done it before! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |