2016-05-16 44 views
-1

我想运行下面位位移功能,在HSV图像移位位

img =imread(file_name); 
imgH=rgb2hsv(img); 
MSB3 = bitshift(imgH,-5); 

我的代码,但我有错误

Error using bitshift 
Double inputs must have integer values in the range of ASSUMEDTYPE. 
Error in Encoding (line 41) 
    MSB3 = bitshift(imgH,-5); 

回答

0

发生这种情况使用rgb2hsv的时候,因为它使你的形象imgH是类型双(IEEE 754双精度)。当在双精度数据类型使用bitshift,文档表明这一点:

If A is a double array, then all elements must be non-negative integers 
less than or equal to intmax('uint64'), and bitshift 
drops any bits overflowing 64 bits. 

看到

help bitshift 

给出如何rgb2hsv图像到位位移并没有真正发挥好格式转换这一认识与,我想你必须重新思考你的HSV图像使用bitshift的策略,或考虑潜在截断HSV图像中的值是不可或缺的,如帮助文本所示。