2016-05-16 116 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圖像中的值是不可或缺的,如幫助文本所示。