2012-01-27 32 views
1

我的工作與opencv C++
我得到的代碼的參考用Python編寫的(reference)
我只是想知道如何寫這條線在C Python而sys.stdout.write函數++如何編寫CPP

sys.stdout.write(frame.tostring()) 

如有需要,請指定頭


HELP

我的Python代碼C++
但它突然跳出了我一個錯誤說轉換
我使用Opencv2.3

error: ‘struct _IplImage’ has no member named ‘tostring’ 
+0

我建議你在嘗試一些更復雜的OpenCV之前,先閱讀更多關於C++基礎知識的內容。例如,你可能想看看'std :: cout'對象... – 2012-01-27 06:23:05

+0

@JoachimPileborg謝謝你的建議......我很感激,但我已經在過去3個月的時間裏對opencv進行了工作..... I取得了很好的進展,但只有探索C++的擴展,我需要它在opencv ... 它雖然非常緊迫,但....請幫助我與一種方式兄弟.... – Wazzzy 2012-01-27 06:26:40

+0

關於你的第二個問題,也許它是稱爲'ToString()'或'toString()'。使用IDE的自動完成功能找出將其轉換爲字符串的'_IplImage'方法。 – Hossein 2012-01-27 08:40:09

回答

2

寫入標準輸出(這是Python中的sys.stdout.write)通常通過std::cout流和<<運算符完成:

std::cout << frame.tostring(); 

包括<iostream>標題。 cout對象是std::ostream的後代,因此您可以使用文檔說明您可以使用ostream執行的所有操作。


您還可以使用C風格的I/O。該printfputs功能(在<cstdio>頭)將一個字符串寫入標準輸出:

std::printf("%s", frame.tostring().c_str()); 
std::puts(frame.tostring().c_str()); // also writes '\n' afterward 

在這裏,我假設你tostring函數返回一個std::string; C風格的功能只打印以零結尾的指針char,而不是string,所以我打電話給c_str。另一方面,<<運算符被重載以處理大多數常見的C++類型,因此您可以在不調用額外函數的情況下打印它們。

+0

非常感謝您....非常感謝...但是,當我在Opencv中使用它時,我得到了這樣的錯誤....錯誤:請求'幀'中的成員'tostring',它是非類類型'IplImage *'' – Wazzzy 2012-01-27 06:47:02

+0

我對OpenCV一無所知。我回答了問題標題,即關於如何閱讀Python的問題。自從你已經使用OpenCV三個月以來,我就假設你已經知道如何做到這一點。顯然,你不應該直接使用'IplImage *'。 [相反,使用'cv :: Mat'。](http://stackoverflow.com/a/5192612/33732)然後你可以[使用'''語法](http://stackoverflow.com/a/ 7971568/33732)就像我描述的那樣。 – 2012-01-27 07:50:37