0
点赞
收藏
分享

微信扫一扫

(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序

一、解决权限问题

      图片采集了,处理了,如何保存?最直接的方法是使用imwrite,但是如果现在直接使用的话,比如会出现这样或那样的错误,因为我们现在是在android的环境下进行图像处理,所以必须要融入到Android的权限管理系统中去。


   在新版本的QT中,这一步是这样做的:项目->详情


   

(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序_QT



createtemp





(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序_QT_02


然后就可以修改了



(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序_新版本_03


修改logo,添加权限



(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序_新版本_04


这个时候已经可以使用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
;




}




else




{




bool

ok

=

dir
.
mkpath
(
fullPath
);
//创建多级目录




return

ok
;




}



}



二、使用过程中发现的突出问题


到目前为止,GO_GTD已经可以使用了,作为一个我自己研究和使用的工具,我确实是每天都在使用。到了这一步,主要是以下问题:


1、图像的采集,目前采用的是图片采集的方式,这个方式最大的问题就是不知道你采集的图片是否是可用的。下一步需要修改成类似二维码的采集模式,也就是视频直接处理的模式。这个首先从做特征点开始;


2、图像结果的存储使用,目前保存到文件夹中,那么如果想要使用,想要在app上面直接看到结果,还有很多qml方面需要研究的东西。


感谢阅读至此希望有所帮助!



举报

相关推荐

0 条评论