- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 unity android 打包问题解决
打开 gradle所在路径,如:C:\Program Files\Unity 2020.3.30f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates,编辑baseProjectTemplate.gradle,替换成阿里云的源。
2023-11-21 13:49:03
671
原创 已知camera旋转矩阵求两帧之间的透视变换
已知camera旋转矩阵求两帧之间的透视变换相机的3D旋转矩阵R相机内参矩阵K和K的逆相机为纯旋转cv::Mat frame, frame_out;cv::Mat M = K * R * K.inv();cv::warpPerspective(frame, frame_out, M, out_dim);
2022-01-06 14:47:51
2372
原创 NV21图片去畸变
cv::Mat srcI420(cv::Size(W, H * 3 / 2), CV_8UC1);int W = 1280, H = 720; //Assume resolution of Y plane is 1280x720//Pointer to Y planeunsigned char *pY = (unsigned char*)srcI420.data;//Y plane as cv::Mat, resolution of srcY is 1280x720cv::Mat srcY
2021-12-31 16:27:08
1939
原创 opecv BGR转NV21
opecv BGR转NV21在opencv中,并没有直接转NY21的方法,所以需要先转到YUV_I420再转成NV21。YUV_I420为Y之后是所有的U分量,再接所有的V分量。而NV21则是Y之后VU分量交替。因此Y数据完整复制,V和U数据隔一个字节取一个。void BGR2YUV_NV21(const Mat &src, Mat &dst){ // 先转BGR到YUV_I420 cvtColor(src, dst, CV_BGR2YUV_I420); // 再从YU
2021-12-09 13:59:06
1835
原创 windows使用mingw编译Android端openblas
windows使用mingw编译Android端openblas参考官方编译方法How to build OpenBLAS for Android,将TOOLCHAIN中的darwin-x86_64改为windows-x86_64即可。注意ndk需要使用Android Sdk中的ndk路径。export NDK=/d/Android/Sdk/ndk-bundleexport TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/windows-x86_64make \
2021-09-26 16:49:33
410
原创 使用simpleperf对Android程序native层性能分析
使用simpleperf对Android程序native层性能分析使用app_profiler.py进行profiling,运行命令如下:python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .MainActivity -r "-e cpu-clock -g --duration 30"-p指定app名字,-a指定程序主Activity名字,-r指定录制perfdata的选项,具体命令可运行a
2021-08-31 19:18:36
523
原创 将二进制bin文件转成数组
std::ifstream file("data.bin", std::ios::binary); vector<unsigned char> data((istreambuf_iterator<char>(file)),istreambuf_iterator<char>()); ofstream out("vector.txt"); for (int i = 0; i < test.size(); ++i) { ...
2021-07-30 18:15:53
1054
原创 windows使用docker运行kalibr
windows使用docker运行kalibr安装dockerkalibr 镜像使用安装docker参考Windows Docker 安装。kalibr 镜像使用参考kalibr的docker镜像。
2021-05-21 17:59:09
1042
原创 LAPACK Android端编译
LAPACK Android端编译使用集成Fortran交叉编译工具链的NDKNDK默认没有集成Fortran交叉编译工具链,https://github.com/buffer51/android-gfortran/releases 这个链接里有修改版本的NDK交叉编译工具链,支持到NDK r13b和gcc4.9。将对应版本的工具链下载下来后,解压到NDK对应工具链目录下,以arm64为例,将下载下来的工具链解压到android-ndk-r13b/toolchains/aarch64-linux-an
2020-09-24 16:20:42
1111
8
原创 平面与直线的交点
平面与直线的交点在3D中,线L平行于平面P或者在单个点上与其相交。令L由参数方程式给出:P(S)= P0 + s(P1-P0) = P0 +su,并且平面P由其上的点V0和法向量N=(A,B,C)给出。我们首先通过测试n·u=0(直线方向向量u垂直于平面法线n)来检查L是否与P平行。如果等于0,那么L和P是平行的或者L完全位于平面P中。不相交或重合可以通过测试L中的任何一个特定的点(比如P0)被...
2019-07-12 15:44:38
5497
1
转载 opencv3.4.2 android编译
转自:https://www.520mwx.com/view/7113设置环境变量ANDROID_NDK=ANDROID_SDK=下载源码git clone https://github.com/opencv/opencvcd opencvgit checkout -b 3.4.2 3.4.2cd ..git clone https://github.com/opencv/op...
2019-04-29 16:10:16
900
原创 Androd.mk获取git的commit id
在Androd.mk增加如下代码:COMMIT=$(shell git rev-parse --short HEAD)LOCAL_CFLAGS += -DCOMMIT_ID=\"$(COMMIT)\"
2019-04-03 18:41:08
557
原创 JNI调用java函数
假设Java回调接口如下,JNI如何回调这么接口呢? public interface Listener { void onChanged(int state); }首先获取虚拟机指针,JNI_OnLoad系统自动调用。JavaVM* javaVM = nullptr;jint JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv ...
2019-03-14 17:05:00
1292
原创 JNI通过java class参数修改该类中String类型的成员变量
举例说明JNI如何通过java class参数修改该类中String类型的成员变量,如下所示array为Test类的一个成员变量,类型是double数组。public class Test { String array; Test() { }}调用JNI接口对应如下,参数是Test类的一个实例:public native void setTestArray(Tes...
2019-03-14 16:43:55
1555
原创 visual studio release模式下调试
visual studio release模式下调试方法如下:项目 --&gt; 属性 --&gt; C/C++ --&gt; 常规 --&gt; 调试信息格式 --&gt; 程序数据库 (/Zi) 。项目 --&gt; 属性 --&gt; C/C++ --&gt; 常规 --&gt; 优化 --&gt; 已禁用 (/Od)。项目 --&am
2019-03-13 11:09:18
1631
1
原创 Android应用耗电量测试
测试方法测试工具为adb,测试步骤如下:关闭手机上无关软件。连接电脑,运行adb shell dumpsys batterystats --reset重置电池记录,重置成功显示“Battery stats reset.”。断开手机与电脑的连接(连着电脑充电结果不准),运行被测应用一段时间。测试结束再连接电脑,运行adb shell dumpsys batterysta...
2019-03-01 17:35:31
1784
转载 汉明距离的NEON版本
代码转自chromium中的libyuv。// 256 bits at a time// uses short accumulator which restricts count to 131 KBuint32_t HammingDistance_NEON(const uint8_t* src_a, const uint8_t* s...
2019-01-31 14:33:45
489
原创 Xcode把多个静态库打包成一个库
Xcode把多个静态库打包成一个库把Perform Single-Object Prelink设置为Yes。在Prelink libraries参数下把需要合并的静态库路径进行设置。
2019-01-25 19:30:55
1819
原创 JNI通过java class参数修改该类中数组类型的成员变量
举例说明JNI如何通过java class参数修改该类中数组类型的成员变量,如下所示array为Test类的一个成员变量,类型是double数组。public class Test { double []array; Test() { array = new double[10]; }}调用JNI接口对应如下,参数是Test类的一个实例:publi...
2018-12-30 23:12:28
1019
原创 JNI加载和链接Native Methods
JNI加载和链接Native Methods使用该System.loadLibrary方法加载Native Methods。在以下示例中,类初始化方法加载库,其中f定义了Native Methods。class Cls { native double f(int i,String s); static { System.loadLibrary(“pk...
2018-12-30 00:16:51
323
翻译 如何获取Qt3DWindow的事件
如何获取Qt3DWindow的事件? 继承Qt3DWindow并在子类里重载监听事件的代码。举例如下:my3dwindow.h#ifndef MY3DWINDOW_H#define MY3DWINDOW_H#include <Qt3DExtras/Qt3DWindow>class My3DWindow: public Qt3DExtras::Qt3DWindow{ ...
2018-11-22 18:48:33
970
1
翻译 使用ndk-stack定位so库crash位置
ndk-stack 工具让您可以在堆叠追踪出现在 adb logcat 的输出中时过滤它们。 它还可以从源代码将共享库中的任意地址替换为对应的< source-file: < line-number> 值,从而更容易找出问题所在。例如,它可将下面的crash log:I/DEBUG ( 31): *** *** *** *** *** *** *** *** **...
2018-08-07 21:45:28
8027
1
原创 用Hexo在GitHub上搭建个人博客
我用Hexo在GitHub上搭建好了自己的博客,我的这第一篇博客就来说说搭建的过程。1 环境配置本文使用环境如下: - Windows 10 - node.js v8.1.3 - git v2.13.2 - npm v5.0.3 - hexo v3.3.71.1 node.js安装可以去Nodejs官网下载,如果下载速度不行,可以去Nodejs中文网下载。下载完后...
2018-07-14 23:29:26
164
原创 使用android-ndk-profiler对native代码进行性能分析
android-ndk-profiler需要使用gcc进行编译,从NDK r13b 起NDK使用的默认编译器从gcc换成了clang,官方提供了Simpleperf工具进行性能分析,具体情况可以参考https://developer.android.google.cn/ndk/guides/simpleperf 。下载android-ndk-profiler的项目地址:https://...
2018-07-14 22:45:17
1909
转载 SSE的_mm_movemask_epi8在NEON的等效方法
参考链接:https://stackoverflow.com/questions/11870910/sse-mm-movemask-epi8-equivalent-method-for-arm-neonint32_t _mm_movemask_epi8_neon(uint8x16_t input){ const int8_t __attribute__ ((aligned (16...
2018-07-14 22:43:10
1294
原创 opencv videocapture无法读取视频
opencv videocapture读取视频编译通过,但运行时调用isOpened()返回false。沿着代码一步步Debug进去,发现如下代码:CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename){ CvCapture_FFMPEG_proxy* result = new CvCapture_FFMPEG_
2017-07-28 22:19:55
16494
3
原创 error C1854: 无法覆盖在创建对象文件.obj”的预编译头过程中形成的信息
在Visual Stdio中使用预编译头,可能会产生error C1854。 解决方法如下: 1、将stdfax.cpp属性中预编译头改为创建。 2、将工程中其余cpp属性预编译头均改为使用。 3、将工程属性预编译头改为使用。
2016-12-30 12:00:18
6418
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人