У меня проблемы с передачей данных cv :: mat между формами в приложении qt gui, на данный момент я просто хочу передать выбранное пользователем изображение в главное окно и отобразить его на странице результатов
void MainWindow::on_pushButton_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), ".", tr("Image Files (*.png *.jpg *.bmp)"));
Lateral= cv::imread(fileName.toAscii().data());
}
В заголовочном файле главного окна я определил: -
public:
cv::Mat get_Lateral(cv::Mat img);
cv::Mat get_Posteroanterior();
В файле MainWindow.cpp я определил следующий (я пробовал несколько вариантов метода): -
cv::Mat MainWindow::get_Lateral(cv::Mat img ){
Lateral.copyTo(img);
return img;
}
cv::Mat MainWindow::get_Posteroanterior(){
return Posteroanterior;
}
Наконец, в новой форме у меня есть что-то вроде этого: -
MainWindow Mw ;
cv::Mat op;
Mw.get_Lateral(op);
//(Mw.get_Posteroanterior()).copyTo(op);
cv::namedWindow("Lateral Image");
cv::imshow("Lateral Image",op);
Когда я запускаю это, я получаю сообщение об ошибке во время выполнения, поэтому я добавил if для проверкисодержимое cv :: mat op выглядит следующим образом: -
MainWindow Mw ;
cv::Mat op;
Mw.get_Lateral(op);
//(Mw.get_Posteroanterior()).copyTo(op);
if (!op.data)
cv::namedWindow("dud Image");
else{
cv::namedWindow("Lateral Image");
cv::imshow("Lateral Image",op);
}
И мне выдается окно с грязным изображением, подразумевающее, что op пуст.
Любой совет о том, как правильно выполнить этот процесс, будет признателен, я довольно новичок в opencv и c ++, поэтому прошу прощения за любые вопиющие ошибки.
Приветствия