bitshift函数用于移位HSV图像中的位

时间:2016-05-16 04:35:33

标签: matlab

我想在下面运行我的代码

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);  

1 个答案:

答案 0 :(得分:0)

这是因为在使用imgH时,它会使您的图像bitshift为double类型(IEEE 754双精度)。在双精度数据类型上使用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

鉴于对{{1}}如何将图像转换为bitshift并未真正发挥作用的格式的理解,我想您必须重新考虑使用bithift进行HSV图像的策略或者考虑可能将HSV图像中的值截断为整数,如帮助文本所示。