2013-04-05 98 views
1

我有一個二維數組,其中包含從二進制文件傳輸的圖像。我想顯示這個圖像,我想知道什麼是最好的工具(C++庫)來做到這一點。最好的C++庫來顯示2D數組中的圖像

簡單地說,什麼C++庫可以採取的2D陣列和顯示圖像?

編輯* 我認爲這將是最好的更具體。

我試圖把8位數值和索引它們的二維數組成某種結構,以顯示我的形象。

Matlab具有一個函數來做到這稱爲imshow(X,地圖),其中地圖是由3陣列的RGB值的n。 X是二維數組。 C++庫是否提供了類似的功能?

感謝您的幫助。

+0

什麼格式? ASCII藝術也是一個圖像,你知道... – lapk 2013-04-05 21:50:02

+0

現在,我所知道的是,我有一個無符號的8位整數的數組,應該形成一個灰度圖像。 – DashControl 2013-04-05 21:53:34

+0

如果它有任何幫助,我將代碼從matlab轉換爲C++。 matlab中的圖像使用imshow從二維數組中顯示。 – DashControl 2013-04-05 22:00:25

回答

0

是它做它的所有C++中的要求,或者是OK擴展你的工具鏈?聽起來您可以將C++與例如gnuplot爲此,具有良好的效果和一點努力。

在這種情況下你要做的是將你的二維數組數組打印到stdout,每行一個像素行,並用空格(或製表符)分隔像素)。運行程序和輸出重定向到一個文件:

$ ./yourprogram > img.dat 

然後,創建只要你想繪出的圖像的gnuplot的腳本。 Gnuplot有extensive documentation這將幫助你開始 - 如果你下載當前版本(4.6)的PDF格式並看看標題「圖像」(第53頁),這似乎正是你想要的。

我的這種方法在例如主要論點OpenGL是這樣的真的很容易。寫入stdout是任何C++程序員學習的第一件事情,而gnuplot旨在使繪圖數據變得簡單。不可否認,gnuplot的確有一個陡峭的學習曲線,但是遠不及用OpenGL產生相同質量的東西。

+0

感謝您的幫助。我會試一下! – DashControl 2013-04-07 00:56:49

0

如果使用的是WinAPI,你是自由的,你想畫成程序窗口,這是在我看來,最簡單的方法。見thisthis

否則我建議你學習使用OpenGL,這是我覺得認爲今天是主流,還有更多的功能等

+0

OpenGL是一個3D gfx庫 - 顯示2D圖像有點矯枉過正。 – 2013-04-06 07:40:57

相關問題