【发布时间】:2015-01-20 09:15:48
【问题描述】:
我想将视频中的所有帧从 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 模型。
帮帮我。
【问题讨论】:
-
我尝试了以下但得到“下标分配维度不匹配”错误。像素=双(猫(4,imagedct))/ 255; nFrames = 大小(像素,4);对于 f = 1:nFrames 像素(:,:,:,f) = rgb2hsv(像素(:,:,:,f));结束;
标签: video image-processing rgb frames hsv