我想在下面运行我的代码
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 :(得分: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图像中的值截断为整数,如帮助文本所示。