簡體   English   中英

在Matlab中從文本文件RGB數據創建圖像

[英]Create Image from Text File RGB Data in Matlab

我有一個文本文件,其格式為:

[Pixel 0,0] [Pixel 1,0] [Pixel 2,0]...
[Pixel 0,1] [Pixel 1,1] [Pixel 2,2]...
...

輸入以下內容:

0.0 0.0 0.0 <-- this would be Pixel 0,0
1.0 0.0 0.0
1.0 0.9 0.0

我可以使用以下命令創建尺寸為3x1的德國國旗:

%load the data to myData
Germany = reshape(myData,3,1,3);
image(Germany)

這是一張圖片

如圖所示,1像素寬的圖案效果很好,但是,目標是能夠創建多個圖案,例如3x3的德國國旗,3x3的羅馬尼亞國旗或任何其他長度的圖案,然后這樣做 是我找不到重塑矩陣的正確方法的地方。

如圖所示,應該創建第二個示例的輸入是:

         |========= Germany Flag ==========| [   Blue  ] [ Yellow  ] [   Red   ]
Black -> 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0
Red ->   1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0
Yellow-> 1.0 0.9 0.0 1.0 0.9 0.0 1.0 0.9 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0

任何幫助表示贊賞

更新:在Marcin的詢問下,輸入文件是我上面解釋的原義。 這是GermanyRomania.txt文件的內容:

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0
1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0
1.0 0.9 0.0 1.0 0.9 0.0 1.0 0.9 0.0 0.0 0.0 1.0 1.0 0.9 0.0 1.0 0.0 0.0

對於該文件,我必須在圖片中創建第二個圖案(德國+羅馬尼亞國旗),這樣做需要所有RGB信息。

我不認為僅通過使用reshape功能就可以實現所需的功能。

我們必須考慮Matlab以列優先順序存儲矩陣(您可以在此處閱讀更多內容)。

因此,在使用reshape函數之前,我們必須具有以下格式的數據矩陣:

[Pixel 0,0]
[Pixel 0,1]
...
[Pixel 1,0]
[Pixel 1,1]
...
[Pixel n,n]

這是一個可能的解決方案:

# data stores the input
height = size(data, 1)
width = size(data, 2)
vertical_data_cell = mat2cell(data, height, 3 * ones(1, width / 3))'
vertical_data = cell2mat(vertical_data_cell)
flags = reshape(vertical_data, height, width / 3, 3)
image(flags)

請注意,我們在第4行和第5行進行矩陣轉換。

這是您提供的輸入結果:

在此處輸入圖片說明

它也可以在不同的高度上工作。 這是德國,阿根廷和葡萄牙的國旗輸入。

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.46 0.66 0.85 0.46 0.66 0.85 0.46 0.66 0.85
1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 0.98 0.75 0.29 1.0 1.0 1.0
1.0 0.9 0.0 1.0 0.9 0.0 1.0 0.9 0.0 0.46 0.66 0.85 0.46 0.66 0.85 0.46 0.66 0.85
0.0 1.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0
0.0 1.0 0.0 1.0 0.9 0.0 1.0 0.9 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0
0.0 1.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0

結果如下: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM