In the frame difference method,on converting an image to frame,i have got an error in the following statement:
M(i-1)=im2frame(unit8(fg),gray);
fg is gray image.
the error is :
Indexed movie data values must be legal color map indices:
1.0<=value<=length(colormap) for double-precision movie data,and
0<=value<=length(colormap)-1 for unit8 movie data.
plzz tell me how can i fix this error?

 採用された回答

Walter Roberson
Walter Roberson 2012 年 6 月 2 日

0 投票

The default size of the colormap for gray() is smaller than 256 elements. You need to use
M(i-1)=im2frame(uint8(fg),gray(256));

3 件のコメント

Hari Patel
Hari Patel 2012 年 7 月 27 日
I have an images (492x510) unit16 and I want to convert images into movies frame using im2frame using the following code:
temp1 = imread('image1.tiff'); % unit16
temp2 = double(temp1);
f(1) = im2frame(temp2,gray(4096));
But I got error:
??? Error using ==> im2frame
double-precision indexed CData values must be legal colormap indices: 1.0 <= value <= length(colormap)
Image Analyst
Image Analyst 2012 年 7 月 28 日
Why are you casting it to double? Don't do that. There's probably a zero in there and it says it must have values between 1 and 4096. Why did you want to cast to double anyway, when it was not necessary?
Hari Patel
Hari Patel 2012 年 7 月 30 日
編集済み: Hari Patel 2012 年 7 月 30 日
I am casting it to DOUBLE because im2frame can only make movie frame from image matrices of type double or unit8 and i checked, its not zero.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by