Тип возвращаемой функции

Тип возвращаемой функции

Сообщение hukzet » 23 дек 2013, 15:34

Работаю с OpenCV в билдере
Написал класс в Processing.h
Код: Выделить всё
class Processing
{
    public:
    IplImage* FunBin(int threshold_type, int threshold, int max_value, IplImage* gray, IplImage* bin);
};


в Processing.cpp

Код: Выделить всё
IplImage* __fastcall Processing::FunBin(int threshold_type, int threshold, int max_value,
        IplImage* gray, IplImage* bin)
{
    bin = cvCreateImage(cvSize(gray->width, gray->height), IPL_DEPTH_8U, 1);
    if (threshold_type == 0)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_BINARY);
    }
 
    if (threshold_type == 1)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_BINARY_INV);
    }
 
    if (threshold_type == 2)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_TRUNC);
    }
 
    if (threshold_type == 3)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_TOZERO);
    }
 
    if (threshold_type == 4)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_TOZERO_INV);
    }
 
    if (threshold_type == 5)
    {
        cvThreshold(gray, bin, threshold, max_value, CV_THRESH_OTSU);
    }
    return bin;
}


в основном файле формы main.h
Код: Выделить всё
class MyProcessing
{
    public:
    void __fastcall MyFunBin();
};


в main.cpp написал

Код: Выделить всё
// создаем экземпляр класса с Processing
Processing* Ev = new Processing();
// создаем экземпляр класса с Processing
MyProcessing* MyEv = new MyProcessing();
 
void __fastcall MyProcessing::MyFunBin()
{
    int threshold_type= Form1->ComboBox1->ItemIndex;
    double threshold = Form1->TrackBar3->Position;
    double max_value = Form1->TrackBar4->Position;
 
    if (!src)
        return;
    if (bin)
    {
        cvReleaseImage(&bin);
    }
    TUImage::DrawImage(Form1->Image2, Ev->FunBin(threshold_type, threshold, max_value, gray, bin));
}


и далее в коде вызываю например на TrackBar
Код: Выделить всё
void __fastcall TForm1::TrackBar3Change(TObject *Sender)
{
    MyEv->MyFunBin ();
}


но при компиляции ругается на
Код: Выделить всё
IplImage* FunBin(int threshold_type, int threshold, int max_value, IplImage* gray, IplImage* bin);


выдает
[BCC32 Error] Processing.h(25): E2303 Type name expected
Full parser context
Processing.cpp(5): #include Processing.h
Processing.h(23): class Processing
[BCC32 Error] Processing.h(25): E2139 Declaration missing ;
Full parser context
Processing.cpp(5): #include Processing.h
Processing.h(23): class Processing


так то я без проблем в программе работаю с типом IplImage, но почему я не могу сделать данный тип для функции?
билдер почему то при объявлении функции не видит этот тип или я не правильно указываю, есть у кого идеи как решить?
hukzet
 
Сообщения: 1
Зарегистрирован: 23 дек 2013, 15:20

Re: Тип возвращаемой функции

Сообщение admin » 24 дек 2013, 06:34

а заголовочные файлы OpenCV в h-нике подключили? :)
Аватара пользователя
admin
Администратор
 
Сообщения: 317
Зарегистрирован: 05 май 2011, 14:57
Откуда: Калининград


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron
© 2009-2019 |  О проекте  |  Политика Конфиденциальности  |