Segmentation Fault unbekannten Grund Opencv

Ich habe den folgenden code zusammengestellt, der in linux-terminal (c++ unter linux) und bin mit OpenCv 2.4.3.

Bin jedoch immer ein "segmentation fault" im Lauf der Zeit und ich habe wirklich keine Ahnung, warum. Ich habe platziert differnt cout Anweisungen um zu wissen, ob das Programm verarbeitet, insbesondere der Bühne, aber vergeblich. Könnten Sie mir bitte helfen? Bitte erklären Sie mir, was genau ist dieses "segmentation fault". Bin hier hängengeblieben, für eine lange Zeit.

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <stdlib.h>

using namespace cv;
using namespace std;

int main()
{           
    cout<<"check"<<flush;
    Mat src,src_gray,dst;
    int kernel_size = 3;
    int scale = 1;
    int delta = 0;
    int ddepth = CV_16S;
    char* window_name = "sharpness estimate";

    int freq,rows,cols =0;
    double *estimate,*min = 0;
    Point *minLoc,*maxLoc = 0;
    src = imread("/home/siddarth/examplescv/erez images/image53.jpg");
    if( !src.data )
    {
        return -1;
    }

    namedWindow(window_name,CV_WINDOW_AUTOSIZE);
    Mat abs_dst;
    cvtColor(src,src_gray,CV_RGB2GRAY);

    Laplacian(src_gray,dst,ddepth,kernel_size,scale,delta,BORDER_DEFAULT);
    convertScaleAbs(dst, abs_dst);

    minMaxLoc(dst,min,estimate,minLoc,maxLoc,noArray());
    Size s = dst.size();
    rows = s.height;
    cols = s.width;
    cout<<rows<<endl<<cols<<endl;

    for(int i=0;i<=rows;i++)
    {
        for(int j=0;j<=cols;j++)
        {
            if(dst.at<double>(i,j) >= *estimate-100
               && dst.at<double>(i,j) <= *estimate+100)
            {
                cout<<freq++;
            }
        }
    }

    cout<<"estimate :"<<*estimate<<endl;
    cout<<"frequency :"<<freq<<endl;
    imshow(window_name,abs_dst);
    waitKey(1000);
    return 0;   
 }

Den code nicht cross der erste "check" print-Anweisung nur nach der main-Funktion Erklärung. Das ist die verwirrende Frage. Aber sobald ich geleert, die erste print-Anweisung, habe es ausgeführt. Ich bin immer noch Probleme.

  • Also, was habt Ihr couts Ihnen sagen? Es gibt eine Menge fehlt hier. Wir brauchen mehr wissen darüber, Wann es Auftritt.
  • cout ist mir nichts. das ist die ganze Verwirrung. Die erste Prüfung ist auch nicht erreicht. Bitte helfen Sie mir.
  • Wenn Sie fügen Sie ein "endl", um Ihre erste cout, ich Wette, dass man druckt, und es nicht ein paar Zeilen später. Versuchen Sie, mehr cout oder führen Sie den code in einem debugger. Es ist wahrscheinlich klar!
  • Nur ein Hinweis für zukünftige Leser: die Spülung wäre nicht erforderlich, wenn cerr verwendet wurde, die in der Regel synchronisiert mit stdio.
Schreibe einen Kommentar