是否有一種軟件/工具可以從簡單的原始8位RGB圖像生成RGB值矩陣? 此外,是否有一個軟件/工具可以從給定的RGB值矩陣生成圖像?從圖像中生成每個像素的R-G-B值的軟件/工具,反之亦然
謝謝。
PS:
i)我知道這可以用Matlab完成。我正在尋找一種可以做到的不是Matlab的工具。
ii)我意識到存在關於以編程方式執行類似事情的問題。我需要一個軟件工具,如果有的話,可以完成這項任務。
是否有一種軟件/工具可以從簡單的原始8位RGB圖像生成RGB值矩陣? 此外,是否有一個軟件/工具可以從給定的RGB值矩陣生成圖像?從圖像中生成每個像素的R-G-B值的軟件/工具,反之亦然
謝謝。
PS:
i)我知道這可以用Matlab完成。我正在尋找一種可以做到的不是Matlab的工具。
ii)我意識到存在關於以編程方式執行類似事情的問題。我需要一個軟件工具,如果有的話,可以完成這項任務。
我建議您使用可用於Linux,macOS和Windows的可敬的NetPBM。或者,您可以使用ImageMagick,但重量要重得多,稍後再看。
NetPBM的方法 - 見Wikipedia NetPBM entry
所以,讓我們開始與包含紅色,綠色和藍色像素原始,8位RGB文件:
-rw-r--r-- 1 mark staff 9 10 Oct 07:47 rgb888.bin
如你所見,它有9個字節。讓我們來看看他們:
xxd -g3 rgb888.bin
00000000: ff0000 00ff00 0000ff
現在,如果我們想要一個形象清晰值矩陣:
rawtoppm -plain 3 1 rgb888.bin
樣本輸出
P3
3 1
255
255 0 0 0 255 0 0 0 255
其中:
-plain
是指在ASCII顯示而不是二進制轉換爲二進制是一個有點困難,假設我們開始像這樣創造了一個PPM文件:
rawtoppm -plain 3 1 rgb888.bin > image.ppm
因此,我們可以得到的二進制版本是這樣的:
ppmtoppm < image.ppm | tail -c 9 > rgb888.bin
,看看它:
xxd -g3 rgb888.bin
00000000: ff00 0000 ff00 0000 ff
ImageMagick的方法
# Convert binary RGB888 to text
convert -depth 8 -size 3x1 RGB:rgb888.bin txt:
樣品輸出
# ImageMagick pixel enumeration: 3,1,65535,srgb
0,0: (65535,0,0) #FF0000 red
1,0: (0,65535,0) #00FF00 lime
2,0: (0,0,65535) #0000FF blue
或者,外觀略有不同:
# Convert binary RGB888 to matrix
convert -depth 8 -size 3x1 RGB:rgb888.bin -compress none ppm:
樣本輸出
P3
3 1
255
255 0 0 0 255 0 0 0 255
現在走另一條路,PPM爲二進制
# Convert PPM image to binary
convert image.ppm rgb:image.bin
# Check how the binary looks
xxd -g 3 image.bin
00000000: ff0000 00ff00 0000ff .........
平原轉儲方式
也許你很高興與普通轉儲從od
:
od -An -t u1 rgb888.bin
樣本輸出
255 0 0 0 255 0 0 0 255
謝謝馬克! NetPBM正是我所期待的。再次感謝。 – nachiketkulk
是不是一個matlab的「軟件工具「? –
我無法訪問Matlab。因此,尋找可以完成這項任務的軟件或網絡應用程序。 – nachiketkulk
Python,Matplotlib和PIL(Pillow)會工作嗎? – ayplam