- 博客(7)
- 收藏
- 关注
原创 Mat和IplImage转换
之前使用opencv时,个人习惯使用c++接口函数,但是在维护老项目经常遇到c接口,这里需要接口的转换,记性比较差,这里索性记录下。 1、IplImage转Mat IplImage* iplImage=cvLoadImage(“1.jpg”); Mat matImage; matImage=cvarrToMat(iplImage); Mat src= matImage.clone();//如果需要深拷贝 2、Mat转IplImage Mat matImage=imread(“i.jpg”); IplImag
2021-05-10 18:10:14
1077
1
原创 windows yolov4-tiny训练自制voc数据集
最近工作涉及到车位检测,检测算法采用yolov4-tiny,官方提供的检测类默认有80种,由于项目只需要检测车辆,所以需要自制数据集,这里我使用的是voc数据集。网上也度了很多方法,这里记录下自己的使用流程。 自制voc数据集我使用了两种方法:1、voc2012官方数据集;2、使用labelImage自制数据集 一、VOC2012数据集 voc2012数据集里面官方都已经分类好了数据集,我们可以直接拿来用,不需要再手动标注。虽然说都有分类好的数据集,但是Annotations内的文件并没有分类,一张图上什么
2020-09-24 15:13:52
1668
2
原创 多线程JNI开发踩坑
一、前言 在JNI开发时,最重要的就是JNIEnv *env这个参数,它代表着Java本地接口环境(Java Native Interface Environment),通过它可以在native层中与java层进行交互。因此在每个定义的native方法中都有这个参数。 二、问题描述 在项目中遇到的一个问题就是在native层中的回调函数里调用java层的方法,实时向java层传输算法结果,这里就需要在回调函数中定义JNIEnv *env这个参数。我当时认为只要定义一个全局变量env,在其他方法中进行赋值,然
2020-08-26 15:22:24
1041
原创 JNI调用java层ArrayList方法
在类中存在的就是方法和属性了,上次写了jni调用java的普通方法,这次记录下调用其属性的操作。 比如说我在native层处理相机传进来的图像数据,通过人脸识别算法返回人脸的坐标位置ArrayList<Rect>。 一、首先在java层先定义一个native方法: public native ArrayList<Rect> faceDetectSaveInfoFromJNI(Bitmap bitmap); 二、在naive层完成该方法的实现: extern "C" JNIEXPORT
2020-08-26 10:17:40
2516
原创 JNI调用Java方法
如果需要在native层调用Java的方法时,就需要使用到JNI提供的反射接口来调用Java层的方法。 使用方法 比如要在c代码中调用某个类A的某个方法如javaFun(),按照在Java中使用一个方法的流程,其实在JNI开发的情况下也与之类似: A a=new A(); a.javaFun(); 这里其实有三个点,一个是我要调用的该方法存在于哪个类中,另一个是进行实例化,第三个就是调用其方法。所以在JNI中对应的流程是: extern "C" JNIEXPORT void JNICALL Java_com
2020-08-21 15:26:56
714
原创 Android JNI开发
Android平台的NDK与opencv开发 环境搭建 version: android studio 3.5.2 ndk android-ndk-r16b 配置环境变量 jdk 8 配置环境变量 这里尤其是注意ndk的版本,我用as直接下载的ndk版本比较新,编译一直出问题,后来重新下载了16版,编译才通过。 有三种方式可以在android平台下使用opencv,以下三种方式自己都能测试通过。 一、使用mk、cmake方式
2020-08-14 15:28:53
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅