cvNorm()は、Webカメラのフレームを比較すると常に0を返します。

私はウェブカメラからキャプチャされた2つのフレーム(30フレーム離れたもの)の間にノルムを印刷するプログラムを作成しようとしていますが、cvNormは常に0を返します。コードは次のとおりです。

int main( int argc, char **argv )
{
CvCapture *capture = 0;
IplImage  *frame = 0;
int       key = 0;

/* initialize camera */ 
capture = cvCaptureFromCAM( 0 );

/* always check */
if ( !capture ) {
    fprintf( stderr, "Cannot open initialize webcam!\n" );
    return 1;
}


/* create a window for the video */
cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );

IplImage *image;
IplImage pastImage;

for(int i = 0; key != 'q'; i++ ) {
    image = cvQueryFrame(capture);  

チェックが行われる場所は次のとおりです。

if(!(i %30)){
        if(i){
            cout<
0

1 答え

画像オブジェクトをmemcpyすると画像はコピーされません。イメージメタデータをコピーします。メタデータは、実際の画像ピクセルを指し示します。 OpenCVにはイメージコピー機能が必要です。それを呼びなさい。

Here's a tutorial on the subject: http://nashruddin.com/opencv-examples-for-operation-on-images.html/4

1
追加された
リンクが機能しません。むしろ、OSをきれいにするためにいくつかのランダムなページを読み込みます。
追加された 著者 Bhavin Doshi,
ありがとう!それが問題だった
追加された 著者 jzepeda,