我有一個圖像捕獲8位。我正在尋找將8位值轉換爲16位。我使用了以下內容8位到16位轉換
short temp16 = (short)val[i] << 8 ;
其中val
是一個8位樣本的數組。
上面的說法會導致噪音。 有人可以提出一個8位到16位轉換的方法嗎?
我有一個圖像捕獲8位。我正在尋找將8位值轉換爲16位。我使用了以下內容8位到16位轉換
short temp16 = (short)val[i] << 8 ;
其中val
是一個8位樣本的數組。
上面的說法會導致噪音。 有人可以提出一個8位到16位轉換的方法嗎?
純偏移不會給你純白色。 0xff < < 8 == 0xff00,不像預期的那樣是0xffff。
一個竅門是使用val [i] < < 8 + val [i]並記住正確的數據類型(大小,符號)。這樣你得到0x00 - > 0x0000和0xff - > 0xffff。
是val []有符號還是無符號8位?將它轉換爲無符號(假設你已經習慣了0 = darkest,255 =最亮),然後將其轉換爲有符號的短符號(我想這就是你想要的,因爲普通的'short'是默認簽名的)。
當你處理位時,肯定需要精確的關於簽名。 –
嘈雜,因爲在圖像仍然存在,但現在是嘈雜?或者像圖像中的噪音現在看起來像噪音? – bdares
它看起來像C,但只是可以肯定的 - 請添加一個標籤來說明語言。那裏有很多C語言。 – DarenW
採樣後出現噪聲,顏色格式Y8(灰度,無符號) – sontnh