比double精度更高的数据类型_MATLAB中图像的数据类型
一.幾種圖象的數據類型。
表中羅列了常見的數據類型及其含義:
輸入圖像,指定為數值標量、向量、矩陣或多維數組。
1.如果 I 是灰度或真彩色 (RGB) 圖像,它可以是 uint8、uint16、double、logical、single或 int16。
2.如果 I為索引圖像,它可以是 uint8、uint16、double 或 logical。
3.如果 I為二值圖像,它必須是 logical。
二.matlab圖像的存儲數據類型。
imread函數把灰度圖像存入了一個八位矩陣,如果是RGB圖像,就存入8位RGB矩陣中。這個八位矩陣的每一個元素都是一個圖片中的像素,由于這種矩陣一般占用的頁面較大,這里我們用size函數來查詢一幅圖像的大小,例如:
>> [M,N]=size(BW)M =258 N =350因為我們前面的圖片是灰度圖,所以返回了一個M×N矩陣。
函數whos可以顯示出一個矩陣的附加信息:
>> f=imread('abc.jpg'); >> whos fName Size Bytes Class Attributesf 107x97x3 31137 uint8由此可見,matlab讀入圖像的數據是uint8的變量存儲為 1 個字節(8 位)的無符號整數,而matlab中數值一般采用double型(64位)進行存儲和運算,所以要先把圖像轉換為double格式的才能運算。
注意:二值圖像在matlab中具有非常重要的意義,一幅二值圖像是一個取值只有0和1的邏輯數組。所以一個取值只包含0和1的uint8類數組,在matlab中不認為是二值圖像,為了解決這個問題,我們使用logical函數可以把數值數組轉換拿為二值數組,因此,若A是一個由0和1構成的數值數組,則可以用如下的語句創建一個邏輯數組B:
>> B=logical(f); >> whos fName Size Bytes Class Attributesf 107x97x3 249096 double可以看到這時候的數據類型為double精度類型。若A中含有除了0和1以外的其他元素,則使用logical函數可以將所有非0的量變換為邏輯1。
三.幾種數據類型的轉換
1.把圖像數組轉換成double精度類型。
這里用到了im2double 函數,例子如下:
>> f=im2double(f); >> whos fName Size Bytes Class Attributesf 107x97x3 249096 double可見我們已經成功的完成了數據類型的轉換。
2.將圖象數組轉換成int8類型
這里用im2int8函數:
I =reshape(uint16(linspace(0,65535,25)),[5 5]) %創建 uint16 類的數組 I =5×5 uint16 矩陣0 13653 27306 40959 546132731 16384 30037 43690 573435461 19114 32768 46421 600748192 21845 35498 49151 6280410923 24576 38229 51882 65535 I2 = im2uint8(I) %將數組轉換為 uint8 類。 I2 =5×5 uint8 矩陣0 53 106 159 21311 64 117 170 22321 74 128 181 23432 85 138 191 24443 96 149 202 255輸入whos查看
>> whos I2Name Size Bytes Class AttributesI2 5x5 25 uint83.將圖像數組轉換成unit16類型
用im2uint16函數:
I = reshape(linspace(0,1,20),[5 4]) %創建 double類的數組 I =0 0.2632 0.5263 0.78950.0526 0.3158 0.5789 0.84210.1053 0.3684 0.6316 0.89470.1579 0.4211 0.6842 0.94740.2105 0.4737 0.7368 1.0000 I2 = im2uint16(I) %將數組轉換為 uint16 類。 I2 = 5x4 uint16 matrix0 17246 34492 517383449 20695 37941 551876898 24144 41391 5863710348 27594 44840 6208613797 31043 48289 65535輸入whos查看
>> whosName Size Bytes Class AttributesI 5x4 160 double I2 5x4 40 uint16歡迎大家關注我,以后會持續更新MATLAB相關文章
總結
以上是生活随笔為你收集整理的比double精度更高的数据类型_MATLAB中图像的数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程数学函数_【编程】Py
- 下一篇: vlan绑定_图文并茂深入了解VLAN工