rgb到matlab中的hsv转换

时间:2015-01-20 09:15:48

标签: video image-processing rgb frames hsv

我想将视频中的所有帧从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模型。

帮帮我。

1 个答案:

答案 0 :(得分:0)

请检查imagedct是否为三维RGB图像而不是二维灰度图像。错误可能是因为这个。