Frame Difference

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?

 采纳的回答

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 个评论

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)
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 Exchange 中查找有关 Convert Image Type 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by