我想将视频中的所有帧从RGB颜色模型转换为HSV颜色模型。但是我收到错误而我无法解决它.Matlab代码是:
obj=mmreader('C:\Users\newendo.avi');
nFrames=obj.NumberOfFrames;
for k=1:3000
img=read(obj,k);
[m,n] = size(img); % get size of your image
imvector = reshape(img, m*n, 1); % reshape your image to a vector to compute DCT
imdct = dct2(imvector); % compute DCT
imagedct = reshape(imdct,m,n); %reshape result back to original form of your image
hsv_image = rgb2hsv(imagedct) ;
figure(1)
imshow(img,[]);
end
错误是:
试图访问r(:,2);索引超出界限因为 尺寸(R)= [921600,1,1]。
rgb2hsv出错(第74行) g = r(:,2); b = r(:,3); r = r(:,1);
file2中的错误(第9行) hsv_image = rgb2hsv(imvector);
我的目标是阅读视频,计算dct然后转换为HSV模型。
帮帮我。
答案 0 :(得分:0)
请检查imagedct
是否为三维RGB图像而不是二维灰度图像。错误可能是因为这个。