2016-02-19 94 views
-1
#include <opencv/cv.h> 
#include <opencv/highgui.h> 
#include <cvblob.h> 

#include <iostream> 
using std::string; 
#include <cstdlib> 


class ImageProcessing 
{ 
// ImageProcessing* ImgPtr; 
    private: 

    IplImage *img0, *img1; 
    IplImage* ReducImg; 
    IplImage* ReducImgColor; 
    CvSize imgSize; 

    CvPoint C1,C2; 

    public: 

    friend class CarVideoHandler; 
    ImageProcessing(void); 
    ~ImageProcessing(void); 

    void checkZone(CvTracks::const_iterator ot, double position1, double position2, int **T1,int **T2,int **T3,int **T4, int &numCars, int dire, int p, string type,string dc, string dp); 
    void checkZoneOneLine(CvTracks::const_iterator ot, double position1, int **T1,int **T2, int &numCars, int dire, int p, string type, int **distance,string dc, string dp); 
    int CarOrPerson(long area, float wh, CvTracks::const_iterator ot, int *labelTrack[]); 
    string idTrackCarPerson(IplImage *colourImage1, int *labelTrack[], CvBlobs::const_iterator it, CvTracks::const_iterator ot, int percent, double lin, double position1, double position2, CvFont font, char* wow, int **T1, int **T2, int **T3, int **T4, int &numCars, int &numPersons, int *Xx, int *Xy, int *Yx, int *Yy, int *dire, int n, int m, int p,string dc, string dp); 
}; 

編譯器拋出錯誤「CvTrackers」尚未聲明當我編譯。當我在類之外聲明它時,編譯器不會拋出任何錯誤。但是當我讓它成爲類成員時,編譯器會拋出錯誤。夥計們幫我解決這個錯誤。錯誤:「CvTrackers」尚未聲明

+0

請問您能澄清導致問題的功能嗎? –

+0

@Daniel Dowd它引起了上面提到的所有功能問題。 「CvTracks :: const_iterator ot」主要用於迭代目的的for循環。 – pradeep

回答

0

好的,我查看了Github上的CVBlobs.h文件,在相關結構中for循環中使用的迭代器是CvTracks :: iterator。我會建議嘗試刪除const_,看看是否有效。

+0

我已根據您的建議嘗試過。它不工作。當我聲明'int CarOrPerson(long area,float wh,CvTracks :: const_iterator ot,int * labelTrack []);'在類外編譯器不會拋出錯誤。但是,如果我在公共編譯器中的類(類成員)聲明它拋出錯誤。當我聲明或使這個特定的函數作爲類成員編譯器無法找到CvTracks :: const_iterator聲明時。你能告訴我這個的原因嗎? – pradeep

+0

我認爲問題是與CvTracks聲明不與const_iterator。 – pradeep

+0

@berak你能幫我解決這個問題嗎? – pradeep