0

エラーは次のとおりです。

Error no Operand "<<" matches these operands

エラーが発生する行は次のとおりです。

cout << "M = "<< endl << " " << size << endl << endl;

しかし、この行を使用してもエラーは発生しません:

cout << "M = "<< endl << " " << frame << endl << endl;

コードは次のとおりです。

#include <cv.h>
#include <highgui.h>


using namespace std;
int main(){
CvCapture* capture =0;

capture = cvCreateCameraCapture(0);
if(!capture){
//printf("Capture failure\n");
return -1;
}

IplImage* frame=0;
int size = 0;
cvNamedWindow("Video");


//iterate through each frames of the video
while(true){

frame = cvQueryFrame(capture);
if(!frame) break;

frame=cvCloneImage(frame);

CvSize size = cvGetSize(frame);
cout << "M = "<< endl << " " << size << endl << endl;
//Clean up used images

cvReleaseImage(&frame);

//Wait 50mS
int c = cvWaitKey(10);
//If 'ESC' is pressed, break the loop
if((char)c==27 ) break;
}

cvDestroyAllWindows() ;
cvReleaseCapture(&capture);

return 0;
}
//////////////////////////////////////

それはなぜですか....変数「サイズ」の出力を取得するのを手伝ってください。また、OpenCV変数の出力を取得する方法を学ぶことができるように、オンラインリソースを引用して回答してください。

4

2 に答える 2

1

CvSize構造体sizeあり、タイプですCvSize

次のように使用する必要があります。

cout <<" Height:" << size.height<<" Width:"<< size.width<< endl;

ただしframe、へのポインタですIplImage

coutonを使用すると、frameが指すメモリアドレスが得られますframe

于 2013-08-31T08:19:56.847 に答える