1

CvInvert を使用する必要がありますが、次の問題があります。

OpenCV エラー: cvInvert、ファイル /opt/local/var/macports/ でアサーションが失敗しました (src.type() == dst.type() && src.rows == dst.cols && src.cols == dst.rows) build/_opt_mports_dports_graphics_opencv/opencv/work/OpenCV-2.4.3/modules/core/src/lapack.cpp、1738行目 libc++abi.dylib: 例外をスローして呼び出された終了

これはコードです:

#include <iostream>
#include <opencv/cv.h>
#include <stdio.h>

#include <opencv2/highgui/highgui_c.h>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/core/core_c.h>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, const char * argv[])
{
    CvCapture* capture=cvCreateCameraCapture(0);
    IplImage* originalImg;
    cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 640);
    cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 480);
    cvNamedWindow("Imagen");

    while (true) {
        originalImg=cvQueryFrame(capture);
        cvFlip(originalImg,originalImg,3);
        IplImage* Gray=cvCreateImage(cvGetSize(originalImg), IPL_DEPTH_8U, 1);
        cvCvtColor(originalImg, Gray, CV_RGB2GRAY);

        CvMat* Mat_tipo=cvCreateMat(originalImg->height, originalImg->width, CV_32F);
        CvMat* Mat_img=cvGetMat(Gray,Mat_tipo);

        CvMat* Matinvenrt=cvCreateMat(Mat_img->rows, Mat_img->cols, CV_32F);
        cvInvert(Mat_img, Matinvenrt,CV_LU);





        cvShowImage("Imagen", Mat_img);
//        imshow("imagen", img);
        cvReleaseMat(&Mat_img);

        int  id=cvWaitKey(27);
        if (id==27) break;       
    }


}

何が起こる??、Cvinvert にバグがありますか??

ありがとうございました。

4

2 に答える 2

1
Assertion failed (src.type() == dst.type() 

Mat_imgMat タイプが同じではないことがコードからはっきりとわかります。Matinvert

于 2013-03-04T06:13:26.643 に答える
0

正方行列を反転していますか? 同様のエラーが発生しましたが、それは MN 行列を反転しようとしていたためです。

于 2013-05-24T15:02:28.313 に答える