0
具體如何使用具有16位像素值的灰度圖像矩陣進行處理。我試圖將其編碼成PNG圖像,但編碼器只接受8位深度的像素值。如何將16位深度的圖像轉換爲8位深度
具體如何使用具有16位像素值的灰度圖像矩陣進行處理。我試圖將其編碼成PNG圖像,但編碼器只接受8位深度的像素值。如何將16位深度的圖像轉換爲8位深度
假設您正在處理無符號數,灰度圖像的亮度值範圍爲0到65,535(2^16 - 1)。將其轉換爲8位值,範圍將爲0-255(2^8 - 1)。所以你想保留每個數字的最重要的8位(最左邊的8位)。您可以將每個數字除以2^8,並將結果放在四周,或將數字右移8位。每個右移位n個空格相當於將十進制數除以2^n並將結果顯示出來。
int rows;
int cols;
unsigned int* image;
unsigned char*downConvertImage(unsigned int* img, int rows, int cols) {
unsigned char* out = new unsigned char[rows*cols];
for (int i = 0; i < rows*cols - 1; i++)
out[i] = (unsigned char*) image[i]/256;
return out;
}