Перейти к содержимому
Compvision.ru
Argon

opencv + win32(64) + Qt

Recommended Posts

Доброго времени суток!

Изначально писал программу на 64-ох битной системе, затем перенес ее на 32-х битную, переформировал все библиотеки программой cmake, и в итоге имею следующее

на 64 битной системе код обрабатывается правильно:

void MouseDetected::on_btnLoadFromFile_clicked()

{

    QString qVideofileName = QFileDialog::getOpenFileName(this,

                                                          tr("Выберите видео файл"), "",

                                                          tr("Video file (*.avi);;All Files (*)"));

    if(qVideofileName.isEmpty() == false)

    {

        ui->txtFileOpen->setText(qVideofileName);

        capture = cvCreateFileCapture(qVideofileName.toStdString().c_str());

        framesCount = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);

        iPositin = (int)framesCount;

        frame = cvQueryFrame(capture);

        dPosSlid = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES);

        iFirstPosition = (int)dPosSlid;

        ui->horizontalSlider->setMaximum(iPositin);

        ui->horizontalSlider->setRange(iFirstPosition, iPositin);

        ui->progressBar->setMaximum(iPositin);

        ui->nomKadr->setMaximum(iPositin);

        storage = 0;

        //загружаем фоновое изображение(временно, переделать для кнопки(изменить) и добавить просмотр из формы)


        matFon = cvLoadImage("D:\\myProjekt\\MouseTreking\\fon\\fon.png");

        cv::cvtColor(matFon, matFon, CV_RGB2GRAY);

        cv::GaussianBlur(matFon, matFon, cv::Size(3,3), -1);


        cv::cvtColor(frame, frame, CV_BGR2RGB);


        QImage gimgOriginal((uchar*)frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);

        ui->IplOutputImage->setPixmap(QPixmap::fromImage(gimgOriginal));



    }

}
а на 32-х ошибка возникает тут
frame = cvQueryFrame(capture);


......


 cv::cvtColor(frame, frame, CV_BGR2RGB);


т.е. программа не может разложить файл на кадры... в чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо перестроить еще и QT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо перестроить еще и QT.

что значит перестроить? я на вторую "машину" отдельно устанавливал QT и переформировывал библиотеки, и естественно сделал подключение к новым библиокекам(каторые формировал на 32-х битной машине)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А воспользоваться отладчиком и узнать, в чём конкретно проблема не вариант?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OpenCV должна быть 64 разрядной, построенной с поддержкой Qt тоже 64 разрядной (я перестраивал Qt и OpenCV, только тогда связка заработала).

Можно построить 64 разрядный OpenCV с 32 разрядной Qt, но работать такая смесь не будет (у меня не работала).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А воспользоваться отладчиком и узнать, в чём конкретно проблема не вариант?

чувак... отладчиком я и нашел где ошибка выскакивает, точнее после каких действий...

2Smorodov

у меня 32-х разрядный Qt и библиотеки opencv сформированные в 32-х разрядной ОС

но все равно поробую еще раз перенастроить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чувак... отладчиком я и нашел где ошибка выскакивает, точнее после каких действий...

Мда. Современные отладчиики понимают скрипты, умеют многопоточную отладку, стек вызовов, условные брейк поинты, откатываться назад по времени, позволяют просматривать любой адрес памяти и регистры, отображать значения любых переменных,... А ты всего лишь смог найти строку, в которой падает программа?!! Чувак...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мда. Современные отладчиики понимают скрипты, умеют многопоточную отладку, стек вызовов, условные брейк поинты, откатываться назад по времени, позволяют просматривать любой адрес памяти и регистры, отображать значения любых переменных,... А ты всего лишь смог найти строку, в которой падает программа?!! Чувак...

неправдали я охеренен :), буду разбираться дальше...

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×