OpenCV Error: Größen von input-Argumente nicht übereinstimmen (Die operation ist weder 'array op array')

Arbeite ich an einem Projekt, das mit opencv auf dem raspberry pi. Ich habe laufen in einem Hindernis, das sieht einfach aus, aber ich bin nicht in der Lage, das Problem zu lösen.
Zunächst, hier ein Teil von meinem code:

    {
        gray=cvarrToMat(py);
        ///cvShowImage("camcvWin", py); //display only gray channel
        if(img_num%2 == 1)
        {
            cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);
        }
        else if (img_num%2 == 0)
        {
            cv::imwrite( "/home/pi/test/Gray_2Image2.jpg", gray );  
            cv::Mat img2 = cv::imread("/home/pi/test/Gray_2Image2.jpg", 0);
            cv::Mat img1 = cv::imread("/home/pi/test/Gray_2Image1.jpg", 0);
            diffImage = abs(img1-img2);
            imshow("diffImage", diffImage);
            cv::imwrite( "/home/pi/test/Diffimage.jpg", diffImage );

        }          
        img_num++;

Dieser code ist kein problem.
Allerdings, wenn ich den code Bearbeiten, um eine leichte Veränderung wie folgt:

    {
        gray=cvarrToMat(py);
        ///cvShowImage("camcvWin", py); //display only gray channel
        if(img_num%2 == 1)
        {
            cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);
            cv::Mat img1 = cv::imread("/home/pi/test/Gray_2Image1.jpg", 0);
        }
        else if (img_num%2 == 0)
        {
            cv::imwrite( "/home/pi/test/Gray_2Image2.jpg", gray );  
            cv::Mat img2 = cv::imread("/home/pi/test/Gray_2Image2.jpg", 0);
            diffImage = abs(img1-img2);
            imshow("diffImage", diffImage);
            cv::imwrite( "/home/pi/test/Diffimage.jpg", diffImage );

        }          
        img_num++;

Bekomme ich die folgende Fehlermeldung:

OpenCV Error: Größen von input-Argumente nicht übereinstimmen (Die operation ist weder "array-op-array' (wo-arrays haben die gleiche Größe und die gleiche Anzahl von Kanälen), noch 'array op scalar', noch 'Skalare op array') in arithm_op, file /home/pi/OpenCV-2.3.1/modules/core/src/arithm.cpp, Zeile 1253
kündigen, genannt nach dem werfen einer Instanz von "cv::Exception'
was (ist): /home/pi/OpenCV-2.3.1/modules/core/src/arithm.cpp:1253: Fehler: (-209) Der Betrieb ist weder "array-op-array' (wo-arrays haben die gleiche Größe und die gleiche Anzahl von Kanälen), noch 'array op scalar', noch 'Skalare op array' in der Funktion arithm_op

Ich bin nicht wirklich in der Lage zu verstehen, was Los ist. img1 und img2 werden Global definiert, als Matte.
Dies könnte ein einfaches Problem, aber ich bin noch ein Neuling. Bitte helft mir das Problem zu lösen.
Vielen Dank für Ihre Zeit.

InformationsquelleAutor Dead-coder | 2013-07-15

Schreibe einen Kommentar