我從一個輸出RGB565格式圖像的微處理器獲取RGB矩陣。我想將它讀入MATLAB,將其轉換爲RGB24格式並輸出圖像。我該怎麼做呢?如何在MATLAB中轉換RGB565和RGB24圖像格式?
回答
首先必須從文本文件中讀取數據到MATLAB中的矩陣。由於我不知道您的文本文件的格式,因此我只能建議您可能需要使用函數fscanf
來讀取所有值(可能是類型uint16
),那麼您可能需要重新設計值使用函數reshape
轉換爲N×M圖像矩陣。
假設您已經完成了所有這些工作,並且您現在有一個無符號16位整數的N×M矩陣img
。首先,你可以使用函數bitand
提取位爲紅,綠,藍的成分,其位置在16位整數此處所示:
接下來,你可以使用函數bitshift
並乘以比例因子以將紅色,綠色和藍色值縮放到0到255的範圍,然後使用函數uint8
將它們轉換爲無符號的8位整數。這會給你3個顏色分量矩陣的大小相同,img
:
imgR = uint8((255/31).*bitshift(bitand(img, 63488), -11)); % Red component
imgG = uint8((255/63).*bitshift(bitand(img, 2016), -5)); % Green component
imgB = uint8((255/31).*bitand(img, 31)); % Blue component
現在可以使用該函數cat
把三個顏色成分爲N由-M×3 RGB圖像矩陣,則將圖像保存到一個RGB24位圖文件使用功能imwrite
:
imgRGB = cat(3, imgR, imgG, imgB); % Concatenate along the third dimension
imwrite(imgRGB, 'myImage.bmp'); % Output the image to a file
實施例:
使用隨機生成的100逐100 UINT16的矩陣價值和應用上述轉換,這裏的結果:
img = randi([0 65535], 100, 100, 'uint16');
% Perform the above conversions to get imgRGB
subplot(1, 2, 1);
imshow(img);
title('Random uint16 image');
subplot(1, 2, 2);
imshow(imgRGB);
title('Corresponding RGB image');
Wow great answer!它真的幫了大忙! – NewImageUser 2010-08-26 23:39:29
RGB565表示5位紅色,6位綠色和5位藍色。 RGB24由8位紅,8位綠和8位藍組成。
使用bitget和bitset你可以轉換你的數據。
http://www.mathworks.de/access/helpdesk/help/techdoc/ref/bitget.html
所以一旦我將它轉換爲RGB24,我怎樣才能讓matlab將它顯示爲圖像? – NewImageUser 2010-08-26 20:51:28
'imshow(rgbImage)' – Jonas 2010-08-26 20:57:24
- 1. Java圖像轉換爲RGB565
- 2. 如何將RGB24像素格式的WriteableBitmap轉換爲EmguCV圖像<Bgr, Byte>格式?
- 3. 如何將24位圖像轉換爲16位rgb565位圖?
- 4. 在MATLAB中轉換圖像
- 5. 在matlab中將dicom圖像轉換爲特定格式
- 6. 轉換YUV422到RGB24
- 7. 轉換圖像在Matlab
- 8. 在MATLAB中的圖像轉換
- 9. V4L2_PIX_FMT_YUYV:從YUYV轉換爲RGB24?
- 10. 無損RGB24到YUV444轉換
- 11. 如何在ASP.Net中將圖像從任何格式轉換爲JPG格式?
- 12. 如何在iOS中將圖像轉換爲二進制格式?
- 13. 如何將所有圖像格式轉換爲.png格式?
- 14. 我如何檢索以.mat格式存儲在matlab中的多個圖像?(將.mat轉換爲圖像)
- 15. 如何在Matlab中柵格化圖像?
- 16. Renderscript從ARGB8888轉換到RGB565
- 17. 如何轉換位圖中的NV21圖像格式?
- 18. 轉換圖像格式在Android java
- 19. PDF格式的圖像轉換在CakePHP
- 20. 轉換爲MATLAB圖像
- 21. 在C++中將RGB轉換爲HDR圖像格式(EXR格式)
- 22. 如何JPG,位圖格式的圖像轉換成矢量格式在C#
- 23. 流圖像格式轉換和在Java中調整大小
- 24. 在Matlab中反轉和切割圖像
- 25. 如何在Matlab中將JPEG轉換爲DICOM圖像?
- 26. 如何在MATLAB中使用griddata()來轉換圖像?
- 27. 如何將UIImage轉換爲位圖int數組(rgb565)
- 28. NV12到RGB24轉換代碼在C++
- 29. Sprite Kit Texture Atlas:定義圖像格式(RGBA4444,RGB565,...)
- 30. 在Matlab中裁剪和變換圖像
您是否嘗試過使用[IMREAD閱讀了您的RGB565圖像到MATLAB(http://www.mathworks.com/access/helpdesk /help/techdoc/ref/imread.html)?當你這樣做時,什麼信息被列出來用於'X'和'map'?:'[X,map] = imread('your_file.bmp'); whos' – gnovice 2010-08-26 19:28:54
沒有file.bmp。這是來自uP – NewImageUser 2010-08-26 19:37:23
的原始RGB值,那麼您如何將這些值轉換爲MATLAB?如果你已經設法將它們放入一個變量中,那麼這個變量類型是什麼?它是uint16嗎? – gnovice 2010-08-26 19:42:04