- 博客(209)
- 资源 (10)
- 收藏
- 关注
原创 gstream插件编译笔记【1.16.3】
gstream插件开源,可以自行选择合适的版本下载使用。上不去github的,请自行选择科学上网策略。5,创建一个构建目录并进行配置【目录自行修改】8, 检查插件是否安装成功。2,下载自己需要的版本。
2024-11-23 11:55:43
375
原创 DS6.3 报错JPEG parameter struct mismatch: library thinks size is 728, caller expects 720
苦思冥想了一晚上,到凌晨一两点才想到:DS6.3发布在DS7.0前不久的时间,大版本没变,变了小版本,说明了什么?(在此之前我在DS7.0环境测过这个功能,是正常的)但是一般大公司的大版本发布,都会有比较严格的测试,小版本可能测试不太够。那么,有没有可能,DS6.2版本的库和DS6.3版本的库运行环境是一样的,但是编译环境可能不一样。装完后,再deepstream调用,发现有些乱七八糟的错误,我一看就知道凉了,立马通知准备重装系统。事实证明,我的猜想是正确的,这个so在DS6.3版本可能被污染了。
2024-11-21 11:27:51
531
1
原创 linux C语言 pthread多线程11错误 卡死
贫瘠的C语言啊,这样开线程,可以跑,但是用完不会回收,就那样僵死在那里,资源占用着。等线程表满了,再新建线程,就直接撂挑子返回11了。pthread新手坑,跟着网上直接写,pthread_create然后就让函数跑,跑完了直接在函数里面return。这个流程,小测试,一点毛病都没有,跑得贼溜。然后在pthread_create后面增加了pthread_detach调用,测试就不一样了,线程数量级再多两个都没问题,然后可以手动停止测试了。管杀不管埋的操作,创建了32753个线程后,再创建,就直接返回11了。
2024-06-14 09:39:49
525
原创 Linux离线文字识别 C++ 调用easyocr
easyocr是一个python文字识别库,支持80种语言。直接用python调用的话,还是很简单的,代码量很少,对用户友好满分。如果需要C++调用,需要用到c-python。如果需要GPU版本的easyocr,需要先安装GPU版本的torch库等(这块比较复杂)。特征:库加载的时候需要的时间和硬件资源比较多,基本CPU要跑满。5,python调用增加可选参数白名单。3,python调用直接识别文件。4,python调用识别mat。6,C++调用直接识别文件。7,C++调用识别mat。
2024-04-28 10:08:34
714
1
原创 Linux离线文字识别 C++ 调用Tesseract
3,语言包下载路径:https://github.com/tesseract-ocr/tessdata_best。4,语言包安装路径:/usr/share/tesseract-ocr/4.00/tessdata/Tesseract是一个文字识别库,支持100多种语言。前面的博客有写到android调用的(7,demo依赖opencv,编译报错的话,需要手动安装下。2,安装Tesseract的C++ API开发库。),本文写下Linux的c++调用。1,安装Tesseract OCR。
2024-04-28 09:45:52
572
2
原创 deepstream第三方插件开发
deepstream是基于gstream开发的,插件的开发也与gstream一样。但是想要快速开发的话,还在在现有的框架上修改比较好上手。我的设备是jstson orin nano,deepstream版本是6.3,CUDA版本是11.4。deepstream给出的开源插件挺多的,可以参照不同的插件来开发。本文插件是基于dsexample修改的,本文给出框架和调用代码。
2024-02-27 14:59:49
316
原创 Android相机调用-libusbCamera【外接摄像头】【USB摄像头】 【多摄像头预览】
有的自定义系统,对于自己外接的USB摄像头,android原生的camera和camera2都无法打开,CameraX也用不了。这时候就要用libusbCamera,这个库可以打开摄像头,还可以多摄像头同时预览。本文主要是同时打开3个USB摄像头的项目记录,详细的接口介绍请参见原博客。
2024-02-23 18:12:41
8190
16
原创 Deepstream实现rtmp推流
3,在/opt/nvidia/deepstream/deepstream/sources/apps/apps-common/src/deepstream_sink_bin.c中查找“case NV_DS_SINK_MSG_CONV_BROKER:”在后面加上“case SINK_RTMP:”(一共有两处)1,在/opt/nvidia/deepstream/deepstream/sources/apps/apps-common/includes/deepstream_sinks.h中添加SINK_RTMP。
2024-01-20 11:48:52
261
原创 VScode新增设备实现无感接入(不需要输入密码)
VScode远程开发接入设备,默认是需要输入密码的,但是日常开发中刷新就需要重新输入密码,很烦人。配置ssh的RSA密钥后会,就可以直接系统级别验证接入,对开发人员来说验证步骤就透明了,实现无感接入,爽歪歪。前提是设备上已安装配置好ssh环境,开发机上已生成ssh密钥,这块没做的话要自己去找下资料,我这边都是配好的,直接说关键步骤。3,如果有人已经生成了第2步骤这个文件,直接把开发机的1步骤文件中内容拷贝出来,换行粘贴到2步骤的文件中就行。1,在开发机找到RSA公钥文件,一般在这个目录。
2024-01-20 11:34:02
749
原创 VScode连接重装系统的设备失败
VScode连接设备成功正常使用后,设备出问题又需要重装系统,重装后ip和账号密码没有修改,VScode重连会失败,各种办法都尝试无效,最后发现是历史记录信息影响的。只需要在这个文件中找到要连接的设备IP,把那一行删除即可。然后重新打开VScode,从远程管理器进去重新连接就行。这个文件是记录连接过的设备信息的,有ip和ecdsa-sha2-nistp256等。
2024-01-17 14:30:57
546
原创 Android相机调用-CameraX【外接摄像头】【USB摄像头】
现有查到的调用资料都不够新,对于外接摄像头(USB摄像头)这类非前置也非后置摄像头的设备调用,都说是没有实现。旧版本的库可能更多目标用户是基于手机的,1.3.0-alpha03版本针对外接摄像头有增加配置项(Android相机调用有原生的Camera和Camera2,我觉得调用代码都太复杂了,CameraX调用代码简洁很多。7,库的调用版本是比较新的,建议JDK版本不要太低,我使用的是16.0.2。),使用该配置项可以实现外接摄像头的调用。新人入行,经验分享,如有所误,欢迎指出~0,摄像头选择可用值。
2023-09-07 15:12:53
10550
5
原创 Android离线文字识别-tesseract4android调用
个人测试效果不是特别理想,但是速度真的很快,VIVO S10后摄照片,80ms内识别完成。现有的蛮多资料都写的是调用tess-two,但是这个库,已经慢慢不维护了,最新版本是tesseract4android。这些数据库下下来后,需要放到一个规定名称为tessdata的子目录下,调用init的时候需要提供它的父目录。4,训练数据库的提取这里要注意权限问题,否则会初始化失败,错误就一个ERROR。我的处理办法是把训练数据库打包到APP,APP启动后释放到内部目录,然后再使用。摄像头调用,请看下篇。
2023-09-07 14:46:10
3255
5
原创 Android在线文字识别-阿里云OCR调用
0,阿里云OCR有在线识别接口,直接用httpPOST调用就能实现,开发起来很快捷。5,在按钮响应函数不能直接调用ocrOnline,需要加个线程来调用,所以可以直接调用的接口是。2,申请完成后可以在服务页面找到自己的AppCode,这个代码要配置使用的,很重要。3,上送的图片要求是BASE64编码的,bitmap的base64编码函数。1,在阿里云页面先注册申请免费试用测试,后续可以购买产品增加使用次数。新人入行,经验分享,如有所误,欢迎指出~版权归属:深圳市琪智科技有限公司-花花。
2023-09-07 12:32:58
1004
原创 Android 文字转语音播放实现
1,TextToSpeech类是android自带的,但是部分设备需要支持TTS需要增加语音库,我使用的是讯飞语音(离线的哦)。请自行下载并安装讯飞语音APK,然后到系统设置中设置TTS功能默认使用该选项。有自带TTS库的可以省略该步骤。3,调用,每次调用都需要初始化。
2023-09-07 12:11:46
1513
原创 Android 播放mp3文件
3,初始化声音播放类,一般在onCreate中调用。1,在res/raw中加入mp3文件。4,调用播放,初始化后可以多次调用。5,播放速度与音量等参数调节。
2023-09-07 11:24:56
1446
原创 Android 开机自启动
2,在AndroidManifest.xml中application标签内增加开机广播。3,增加开机广播实现类,其中MainActivity.class是开机启动页面。1,在AndroidManifest.xml中增加权限。APP需要开机自启动,要通过开机广播实现。
2023-09-07 11:09:18
1575
2
原创 Android扫码连接WIFI实现
设备需要有个扫码器(摄像头拍照识别也行),APP调用扫码器读取WIFI连接分享码。扫码成功后,对内容进行一个基本的判断,确认扫码数据中有P和T的参数。在AndroidManifest.xml中增加权限。APP中实现扫WIFI分享码自动连接WIFI功能。
2023-09-07 10:32:32
2207
2
原创 【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL源码分析
RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很强大的(感兴趣的可以去看数据手册)。该芯片原厂公开了input和iio两种驱动和HAL,我这边选用的是iio驱动,所以HAL也配套选择了iio的。
2023-09-06 12:35:31
1314
原创 【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL移植
RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很强大的(感兴趣的可以去看数据手册)。该芯片原厂公开了input和iio两种驱动,我这边选用的是iio驱动。
2023-09-05 19:40:29
1162
原创 【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驱动移植
RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很强大的(感兴趣的可以去看数据手册)。该芯片原厂公开了input和iio两种驱动,我这边选用的是iio驱动。
2023-09-05 17:02:11
1345
10
转载 RK平台的sensor框架HAL层兼容其他HAL层so库
5.最后编译会将3个so库文件放在/vendor/lib/hw/下面,hals.conf会拷贝到/vendor/etc/sensors/下面,此时如果使用哪个sensor,lib***3.so就会去自动调用lib***1.so或lib***2.so。2.编写hals.conf,添加要编译的两个库名字,源码目录放在/device/rockchip/rkxx/,目的是将其从该目录拷贝到/system/stc/sensors/,hal.conf文件内容如下,这步要全部列过来lib和lib64都要。
2023-08-26 15:10:35
406
原创 【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常
ST的传感器驱动与HAL一直成功后,能拿到数据了,但是设备是横屏,系统默认是竖屏。就会出现屏幕自动转动时方向是错的的情况,设备横立展示的是竖屏,设备竖立展示的是横屏。
2023-08-25 21:30:48
518
原创 【android12-linux-5.1】【ST芯片】HAL移植后没调起来
ST传感器芯片HAL按官方文档移植后,测试一直掉不起来,加的日志没出来。经过分析,是系统自带了一个HAL,影响的。
2023-08-25 15:44:36
1291
原创 【android12-linux-5.1】【ST芯片】HAL移植后开机卡死
按照ST的官方readme移植HAL后开机一直卡在android界面,本文给出出力方法
2023-08-25 15:16:12
486
原创 【android12-linux-5.1】【ST芯片】HAL移植后配置文件生成报错
根据ST官方源码移植HAL源码后,执行readme指示中的生成配置文件指令时报错,本文给出修正方案
2023-08-25 14:50:26
902
原创 【android12-linux-5.1】【ST芯片】驱动移植后编译不通过
ST传感器芯片驱动移植后,编译报错timespec_to_ns未定义,本文给出解决方法。
2023-08-25 12:03:51
307
转载 未定义标识符 HMAC_CTX_init
这是因为,这是旧版本的代码HMAC_CTX hctx;HMAC_CTX_init(&hctx);HMAC_Init_ex(&hctx, mac_key, sizeof(mac_key), EVP_sha1(), NULL);HMAC_Update(&hctx, pTemp + offset, DEFAULT_PAGESIZE - reserve - offset + IV_SIZE);HMAC_Update(&hctx, (const unsigned char)& nPage, sizeof(n
2022-06-16 09:31:13
1535
原创 再见,外包
去年10月份,从干了六年的上家离职后进了外包。时至今日,外包也干了8个多月了。 问我为什么来外包?当时没有什么目标只是想换个地方。然后,这个外包的HR很热情,笔试面试的内容我恰好会。而且,HR还让我讲价。当时想出来看看,就答应了。 刚来的时候担惊受怕的过了半个月。一过来领导就给我发了一本书,让我自己学习,没安排任何活。由于外包,随时可能被释放(没有赔偿的裁员),就怕自己没干活,对甲方没有用处,然后被释放了。 之后开始干活,一堆代码,一个需...
2021-06-28 17:50:46
527
原创 GDI+ Graphics绘文字定位不准,显示偏差问题
拿来主义人员速达: 取一般的版式 TGPStringFormat 对象使用可以达到精准定位显示效果:format.GenericTypographic()MFC开发中需要自绘控件,使用Graphics绘文字时出现位置偏右偏下问题(显示效果如下)。版权原因,显示内容(空格+4个汉字)做模糊处理,望谅解。深入学(bai)习(du)后发现参数传入影响定位及绘画,遂结合参数做如下测试。矩形绘制定位及大小数据类型原因,都会强制转化成整数,所以矩形位置大小不是特别准确,但是可以做效...
2021-01-25 10:24:23
1427
4
原创 C++11 线程池
原始代码路径:https://github.com/progschj/ThreadPool代码理解参考:https://blog.youkuaiyun.com/zdarks/article/details/46994607管理一个任务队列,一个线程队列,然后每次取一个任务分配给一个线程去做,循环往复。线程无线循环处理任务:主动取任务并执行,直到没有任务了就阻塞。任务队列操作线程:新任务入队会唤醒一个线程来处理(如果存在阻塞中线程的话,没有阻塞中线程则等有线程执行当前任务完毕后来处理)。改变主要是在代
2020-12-25 18:33:12
881
原创 11章 进程间通信——《精通 Windows API》
荒废的光阴,最后得自己一点点捡起来。个人笔记,有误请直接评论提出,共同学习。进程间通信方式:邮槽、管道、剪贴板、消息、网络、FileMapping。一、邮槽邮槽通信进程分服务端和客户端,由服务端创建并指定邮槽名,客户端根据邮槽名打开使用。单向通信,客户端写+服务端读,消息先进先出。可夸主机,单条消息不能超过424字节。1,关键API1)服务端创建邮槽CreateMailslot2)服务端获取邮槽信息GetMailslotInfo3)服务端读取消息ReadFile4)客户端打开
2020-12-23 16:05:20
268
1
原创 VS2019 C++ 单元测试
荒废的光阴,最后得自己一点点捡起来。个人笔记,有误请直接评论提出,共同学习。前段时间开始重拾错过的东西,测试环境是VS2019,今天在UnitTest目录下测试。一、新建待测项目Calculate.h:#pragma onceclass Calculate{public: int Add(int a, int b);//加 int Subtract(int a, int b);//减 int Multiply(int a, int b);/.
2020-12-22 17:28:21
5661
转载 C++重载、重写、重定义
一、重载(overload)指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。(1)相同的范围(在同一个作用域中) ;(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。(5)返回值可以不同;二、重写(也称为覆盖 override)是指派生类重新定义基类的虚函数,特征是:(1)不在同一个作用域(分别位于派生类与基类) ;(2)函数名字相同;(3)参数相同;(4)基类函数必须有 virtual 关键字,不能有 static 。(5)
2020-12-09 13:34:10
748
转载 2020-12-04Windows路径操作API函数学习
Windows路径操作API函数学习前言 在VC++开发过程中,经常需要用到一些路径操作,比如拼需要的文件路径,搜索路径中的内容等等。Windows提供了一套关于路径操作的API帮助我们更好的执行这些操作。路径截断与合并APIPathRemoveArgs 去除路径后面的参数PathRemoveBackslash* 去除路径最后的反斜杠“\”PathAddBackslash* 在路径最后加上反斜杠“\”PathRemoveBlanks* .
2020-12-04 15:19:15
668
原创 CSV文件处理——使用列拆分逻辑,只使用有效数据列,增强软件的兼容性,可导入含有多余数据列或数据列顺序可变的文件
CSV文件处理/**使用列拆分逻辑,只使用有效数据列,增强软件的兼容性,可导入含有多余数据列或数据列顺序可变的文件* 入参:* CString strLine - 待拆分的字符串* char cSub - 分割标志字符* 返回:* vector<CString> - 分割后的字符串列表* leish*/vector<CString> CAlgorithmTradeNewData::SubLine(CString strLine, char
2020-11-12 17:23:01
10
原创 《金融市场基础知识》知识点摘要
股票一、概述定义、性质、特征定义:股票是一种有价证券,股份有限公司签发的证明股东(个人、机构)所持有股份的凭证。每一股金额相等、具有相同的权益。性质:有价证券、要式证券、证权证券、资本证券、综合权利证券。特征:收益性、风险性、流动性、永久性、参与性分类1)股东权利不同:普通股票——享有股东基本其权利和义务;特别股票——设有特别权利或特别限制(优先股)2)是否记载股东名字:记名股票——票面和股东名册上记载股东名字(转让复杂受限、便于挂失);不记名股票——票面和股东名册上均不记载股东
2020-10-27 09:20:54
1527
原创 安卓子线程内存问题——有结论
有一套C++库,通过JNI被安卓应用调用。应用中在主线程(UI现场)调用一函数C正常,在子线程中调用该函数会导致APP崩溃。APP崩溃时报错信息如下:E/libsigchain: exiting due to SIG_DFL handler for signal 11逐步调试后发现在JNI层定义一个400K长度的数组的时候崩溃。在此之前,该函数已定义两个400K大小的数组。将该定义代码注释掉且相关操作用之前定义的数组实现后,该函数可在子线程中调用正常。现怀疑测试用安卓系统有限制线程使用的内存
2020-06-30 14:14:44
6876
原创 安卓手机调试设备记录
两年前就有想法,让客户用自己的手机直接测试我们的设备。但是当时需求性不大,手上事情多也就先放着了。休假回来后,发现情况已经变了,客户都走安卓平台了。愤转平台而战,目前虽未用自己的手机测试(平台权限问题)成功,但是过程值得一叙。安卓平台调试设备的主要流程:1,环境安装2,驱动开发3,驱动编译4,测试工具开发5,测试工具编译与测试工具模拟运行6,安卓设备配置7,设备调试步骤详情1,环境安装准备JDK安卓包(360软件中有),Android Studio 安装包(360
2020-05-15 11:23:11
1318
吉首大学_莫礼平_编译原理书及通过代码.zip
2014-04-22
JSU_动态规划_dp1
2013-07-28
加速度传感器经常获取到满量程值
2023-07-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人