2012-11-02 73 views
0

我已經花了幾個小時在網上淘了一個解決我的問題,而我看到的其他論壇的一些「答案」,他們都不適合我的需要...轉換二進制數據到jpeg

我有一個二進制文件,我使用fwrite在Matlab中創建(儘管如果有人有更好的方法在Matlab中生成二進制文件,我願意接受建議)。回到我的問題 - 我有這個二進制文件,我想將它轉換爲JPEG格式。沒關係,二進制數據來自哪裏,我只是想生成一個二進制數據的JPEG圖像。

這甚至可能嗎? - 就像我說的那樣,許多「解決方案」都存在類似的問題,但沒有一個符合我的需求。

如果需要,我可以用C++編寫代碼,但爲了簡單起見,我想留在Matlab中。

任何幫助將不勝感激。

+0

http://www.mathworks.se/help/matlab/ref/imwrite.html。什麼樣的二進制文件?將其轉換爲一個matlab圖像(rgb矩陣)。 –

+0

這是要求一個數組,我正在閱讀二進制文件到一個數組(我打電話「B」)使用fscanf,但是當我使用imwrite時,我得到一個錯誤,告訴我該數組不應該是串。 – user1187621

+0

這需要更多關於「二進制」文件中包含的內容的描述。 NxMx3 uint8的? NxM單精度值?某些相機的* .raw格式?這也需要一些示例代碼。例如,原始文章中的任何內容都不會導致我認爲您已經設法讀取一個字符串。一旦你可以正確讀取數據,創建一個JPEG是非常簡單的。 – Pursuit

回答

0

編輯:

from binary to array

fid = fopen('yourfilename.bin'); 

% read the entire file as characters 
% transpose so that F is a row vector 
B = fread(fid, '*char')' 

fclose(fid); 
根據圖像尺寸

C=reshape(B,512,512); % or whatever dimension you have 

整形到陣列具有字符串數組只需使用:

D=int32(str2num(C)); 
+0

我遇到了將二進制文件轉換爲數組的問題。如果我使用文本編輯器打開.bin文件,它是不可讀的(因爲它應該是 - 是一個二進制文件)。我怎樣才能獲得二進制文件到數組中?還是有另一種方法來解決這個問題? – user1187621

+0

請參閱編輯和附加的鏈接瞭解如何閱讀二進制文件的更多信息... – bla