2

こんにちは、OpenCV を使用して GLCM の作業を準備していますが、エラーが発生しました。Qt 5.4.2 MSVC 2013 - 32 ビットを使用しています

C:\Workspace\QtProjects\build-iRov-Desktop_Qt_5_4_2_MSVC2013_64bit-Debug\debug\iRov.exe を起動しています...

OpenCV エラー: cv::OutOfMemoryError、ファイル C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\src\alloc.cpp、52 行目のメモリ不足 (1012712448 バイトの割り当てに失敗) OpenCV エラー: アサーション失敗しました (u != 0) cv::Mat::create、ファイル C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\src\matrix.cpp、411 行目

***** ビデオ入力ライブラリ - 0.1995 - TFW07 *****

これは私のコードです:

#include <QApplication>
#include <QImage>
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include "iostream"
#include <string>

using namespace cv;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //IRovForm w;
   // w.showMaximized();

    int intensidadeMaxima, intensidadeMinima = 0;
    Mat img(50,50,CV_8UC1, Scalar::all(0));
    for(int i = 0;i< img.rows;i++){
        for(int j = 0;j< img.cols;j++){
            if(i>10 && i < 30 && j > 10 && j < 30)
            {
                 img.at<uchar>(i,j) = 255;
            }

        }
    }
    //resgata a intensidade de maior valor para criar a matriz de coocorrencia. Matriz quadrada
    for(int i = 0;i< img.rows;i++){
        for(int j = 0;j< img.cols;j++){
           if(img.at<uchar>(i,j) > intensidadeMaxima)
               intensidadeMaxima = img.at<uchar>(i,j);
        }
    }
    Mat GLCM_0 = Mat::zeros(intensidadeMaxima,intensidadeMaxima, CV_8UC1);
    Mat GLCM_45 = Mat::zeros(intensidadeMaxima,intensidadeMaxima, CV_8UC1);
    Mat GLCM_90 = Mat::zeros(intensidadeMaxima,intensidadeMaxima, CV_8UC1);
    Mat GLCM_135 = Mat::zeros(intensidadeMaxima,intensidadeMaxima, CV_8UC1);
    imshow("teste",img);
    return a.exec();
}
4

0 に答える 0