自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 405

原创 已知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 2189

原创 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 1821

原创 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 1537

原创 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 297

原创 使用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 400

原创 将二进制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 902

原创 windows使用docker运行kalibr

windows使用docker运行kalibr安装dockerkalibr 镜像使用安装docker参考Windows Docker 安装。kalibr 镜像使用参考kalibr的docker镜像。

2021-05-21 17:59:09 773

原创 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 877 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 4910 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 850

原创 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 474

原创 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 1228

原创 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 1478

原创 visual studio release模式下调试

visual studio release模式下调试方法如下:项目 --&amp;gt; 属性 --&amp;gt; C/C++ --&amp;gt; 常规 --&amp;gt; 调试信息格式 --&amp;gt; 程序数据库 (/Zi) 。项目 --&amp;gt; 属性 --&amp;gt; C/C++ --&amp;gt; 常规 --&amp;gt; 优化 --&amp;gt; 已禁用 (/Od)。项目 --&am

2019-03-13 11:09:18 1548 1

原创 Android应用耗电量测试

测试方法测试工具为adb,测试步骤如下:关闭手机上无关软件。连接电脑,运行adb shell dumpsys batterystats --reset重置电池记录,重置成功显示“Battery stats reset.”。断开手机与电脑的连接(连着电脑充电结果不准),运行被测应用一段时间。测试结束再连接电脑,运行adb shell dumpsys batterysta...

2019-03-01 17:35:31 1656

转载 汉明距离的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 426

原创 Xcode把多个静态库打包成一个库

Xcode把多个静态库打包成一个库把Perform Single-Object Prelink设置为Yes。在Prelink libraries参数下把需要合并的静态库路径进行设置。

2019-01-25 19:30:55 1675

原创 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 935

原创 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 279

翻译 如何获取Qt3DWindow的事件

如何获取Qt3DWindow的事件? 继承Qt3DWindow并在子类里重载监听事件的代码。举例如下:my3dwindow.h#ifndef MY3DWINDOW_H#define MY3DWINDOW_H#include &lt;Qt3DExtras/Qt3DWindow&gt;class My3DWindow: public Qt3DExtras::Qt3DWindow{ ...

2018-11-22 18:48:33 817 1

翻译 使用ndk-stack定位so库crash位置

ndk-stack 工具让您可以在堆叠追踪出现在 adb logcat 的输出中时过滤它们。 它还可以从源代码将共享库中的任意地址替换为对应的&lt; source-file: &lt; line-number&gt; 值,从而更容易找出问题所在。例如,它可将下面的crash log:I/DEBUG ( 31): *** *** *** *** *** *** *** *** **...

2018-08-07 21:45:28 7903 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 130

原创 使用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 1838

转载 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 1179

原创 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 16295 6

原创 error C1854: 无法覆盖在创建对象文件.obj”的预编译头过程中形成的信息

在Visual Stdio中使用预编译头,可能会产生error C1854。 解决方法如下: 1、将stdfax.cpp属性中预编译头改为创建。 2、将工程中其余cpp属性预编译头均改为使用。 3、将工程属性预编译头改为使用。

2016-12-30 12:00:18 6062 4

ARM Assembler Reference

ARM Compiler toolchain Version 5.0 Assembler Reference

2019-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除