Android配置javacv
简介
本人由于业务需求苦难从零着手Android版本图像处理的开发,由于项目是接手的另一位同事的python代码,所以业务安排目标直接就是翻译代码成Android版本。曾经也尝试过单独引入一个jar包,但是总是报错各种找不到so文件等等等等狗屁问题,在请教了前辈的经验之后也是没成功,后来自己乱七八糟一顿操作就配置好了,所以在这里记录下曾经的操作。
1,jar包及armeabi-v7下载
1,先从gitee上下载如下文件(看别人的链接都是去外网下载一整个700多M压缩包,你VPN速度够快吗?还是老老实实从国内下载吧哈哈,这几个jar包我都放在gitee国内的仓库了,clone下载以后将这几个文件放入android的libs文件夹下,然后执行步骤2)
命令行:git clone https://gitee.com/wang-xianglong/javacv_1.5.2_jar.git
2, 修改app build.gralde 文件
2.1,加上如下几行
implementation files('libs\\javacv-platform-1.5.2.jar')
implementation files('libs\\javacv-1.5.2.jar')
implementation files('libs\\opencv-4.1.2-1.5.2.jar')
implementation files('libs\\javacpp-1.5.2.jar')
implementation files('libs\\openblas-0.3.7-1.5.2.jar')
2.2 追加so cpu 信息
ndk{
abiFilters 'armeabi-v7a'
}
具体位置:
2.3 追加sourceSets
2.4 重启android studio
3,让我们愉快的试试代码
int[] backSize = {1920,1080};
//原图路径
String srcBackImage="/sdcard/testFolder/reality.jpg";//路径自己改昂
//保存路径
String resizedBackImage = "/sdcard/testFolder/reality1.jpg";
//调用方法resize
IplImage resize_back = imageResize(srcBackImage,backSize);
//调用方法保存
imageSave(resize_back, resizedBackImage);
private static IplImage imageResize(String imagePath, int[] newSize){
CvSize dec_size = new CvSize();
IplImage input_Image = cvLoadImage(imagePath);
dec_size.width(newSize[0]);
dec_size.height(newSize[1]);
IplImage dec = cvCreateImage(dec_size, input_Image.depth(),input_Image.nChannels());
cvResize(input_Image, dec, CV_INTER_AREA);
return dec;
}
private static void imageSave(IplImage srcImage, String savePath){
cvSaveImage(savePath, srcImage);
srcImage.close();
}