私のプロジェクトの一環として、WebSocket を使用して組み込みマシンからクライアント アプリケーションに画像のストリームを送信し、それらをimg
タグで表示してストリーミングを実現したいと考えていました。
最初に生のRGBデータ(752 * 480 * 3 - 約1MB)を送信しようとしましたが、最終的にRGB画像に基づいてjavascriptで画像をpngにエンコードする際に問題が発生したため、データをPNGにエンコードしようとしましたまず、websockets を使用して送信します。
OpenCV
問題は、プロジェクトで既に使用されているライブラリを使用してデータを PNG にエンコードする際に問題が発生していることです。
まず、いくつかのコード:
websocketBrokerStructure.matrix = cvEncodeImage(0, websocketBrokerStructure.bgrImageToSend, 0);
websocketBrokerStructure.imageDataLeft = websocketBrokerStructure.matrix->rows * websocketBrokerStructure.matrix->cols * websocketBrokerStructure.matrix->step;
websocketBrokerStructure.imageDataSent = 0;
しかし、2行目の実行中に奇妙なエラーが発生します:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
コードからこのエラーが発生する理由が少しわかりません。
また、私はそれを正しく理解しているかどうか疑問に思っています.cvEncodeImageを呼び出した後(3つのチャネルがある場所-BGR bgrImage
) 、すべてのpngエンコードデータを取得するには、私のメンバーIplImage*
を反復処理する必要がありますか?data
CvMat