我在qt gui應用程序的窗體之間傳遞cv :: mat數據時遇到了困難,目前我只想將主窗口上用戶選擇的圖像傳遞給主窗口並顯示它在結果頁在窗體之間傳遞cv :: Mat img
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());
}
在主窗口的頭文件對我definded: -
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 statment檢查CV ::墊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++相當陌生,所以我對任何公然錯誤表示歉意。
乾杯
Chhers,我會給它一個結果並讓你知道結果 – melinnde