天天看點

(GO_GTD_3)基于OpenCV和QT,建立Android圖像處理程式

一、解決權限問題

    圖檔采集了,處理了,如何儲存?最直接的方法是使用imwrite,但是如果現在直接使用的話,比如會出現這樣或那樣的錯誤,因為我們現在是在android的環境下進行圖像處理,是以必須要融入到Android的權限管理系統中去。

   在新版本的QT中,這一步是這樣做的:項目->詳情

(GO_GTD_3)基于OpenCV和QT,建立Android圖像處理程式

createtemp

(GO_GTD_3)基于OpenCV和QT,建立Android圖像處理程式

然後就可以修改了

(GO_GTD_3)基于OpenCV和QT,建立Android圖像處理程式

修改logo,添權重限

(GO_GTD_3)基于OpenCV和QT,建立Android圖像處理程式

這個時候已經可以使用imwrite了,此外我添加了一些東西

//儲存處理結果資料

void MainWindow::on_btn_save_pressed()

{

if(b_canSave)

{

//獲得目前時間

QDateTime current_date_time =QDateTime::currentDateTime();

QString current_date =current_date_time.toString("yyyy_MM_dd");

try

{

if(isDirExist("/storage/emulated/0/GO_GTD"))

{

cv::imwrite("/storage/emulated/0/GO_GTD/"+current_date.toStdString()+".jpg",matResult);

ui->lb_info->setText(strFetchImage+"result儲存成功!");

}

else

ui->lb_info->setText("目錄建立失敗!");

}

catch(Exception e)

ui->lb_info->setText(strFetchImage+"儲存失敗,請查找原因!");

}

else

ui->lb_info->setText("未處理圖像無法儲存,請先進行處理操作!");

}

其中有一個建立新檔案夾的函數

/*判斷檔案夾是否存在,不存在則建立*/

bool isDirExist(QString fullPath)

QDir dir(fullPath);

if(dir.exists())

return true;

bool ok = dir.mkpath(fullPath);//建立多級目錄

return ok;

二、使用過程中發現的突出問題

到目前為止,GO_GTD已經可以使用了,作為一個我自己研究和使用的工具,我确實是每天都在使用。到了這一步,主要是以下問題:

1、圖像的采集,目前采用的是圖檔采集的方式,這個方式最大的問題就是不知道你采集的圖檔是否是可用的。下一步需要修改成類似二維碼的采集模式,也就是視訊直接處理的模式。這個首先從做特征點開始;

2、圖像結果的存儲使用,目前儲存到檔案夾中,那麼如果想要使用,想要在app上面直接看到結果,還有很多qml方面需要研究的東西。

感謝閱讀至此希望有所幫助!

來自為知筆記(Wiz)

目前方向:圖像拼接融合、圖像識别

聯系方式:[email protected]

繼續閱讀