自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tom的博客

。。。。

  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android如何对应用进行系统签名

2、把公钥 platform.x509.pem 转换成pkcs12格式,并指定 密钥别名。1、将pkcs8格式的私钥 platform.pk8 转化成pkcs12格式。3、生成AndroidStudio中可以使用的keystore文件。输入上述指令后,需要连续两次输入密钥密码。

2024-03-06 15:58:17 681

原创 嵌入式LInux编译使用Valgrind

嵌入式LInux编译使用Valgrind

2023-04-05 20:33:40 358

原创 通过iptables将Linux主机作为代理,让设备上网

由于网络环境存在隔离,未认证的设备无法访问网络,但通过交换机连接的设备和Linux主机却能通信,配置Linux主机为代理上网。

2023-01-17 08:56:41 782

原创 mysql 5.7.39 zip版本 windows安装步骤

mysql 5.7.39 zip版本 windows安装步骤

2023-01-09 16:40:52 1201

原创 mysql conn.getMetaData().getColumns获取指定表头为空问题

mysql jdbc getTables()、getColumns() 中,通配符进行转义的问题

2023-01-09 16:24:45 784

原创 OpenCV 4.x交叉编译

编译0、下载代码:git clone -b 4.5.5 https://github.com/opencv/opencv.git 1、配置编译工具链,新建文件ax620a.toolchain.cmake,其内容如下:set(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")set(CMAKE_CXX_COMPILER "arm-linux

2022-05-23 12:46:57 922 1

原创 安防摄像头移动侦测和遮挡侦测基本原理

移动侦测算法流程:将目标区域划分为指定大小的格子(如32x32像素),计算每个格子YYY的均值Y‾\overline YY前后帧对应格子Y‾\overline YY的差值的绝对值记为∣Ydiff∣\vert Y_{diff} \vert∣Ydiff​∣,若∣Ydiff∣\vert Y_{diff} \vert∣Ydiff​∣大于指定的阈值TyT_yTy​则记为1,否则记为0统计最后1的个数是否大于指定阈值TconfidenceT_{confidence}Tconfidence​,若大于则发生移动,

2022-05-19 16:17:54 2411 1

原创 Linux笔记

QEMU-KVM guest rootfs read-only issueqemu 启动参数-append 为"root=/dev/sda rw" 而不是"root=/dev/sda"Booting a Custom Linux Kernel in QEMU and Debugging It With GDB# one time setup$ mkinitramfs -o ramdisk.img$ echo "add-auto-load-safe-path path/to/linux/script

2022-03-28 00:58:28 912

原创 Linux常用命令笔记

Linux环境下常用命令

2021-10-16 12:20:27 56

原创 重学Android之Framework层应用程序进程创建流程

Android系统启动完成后,会启动第一Android应用Launcher。之后在用户操作下启动其他的应用程序。这两个流程大体一致,本文主要分析启动Launcher的启动流程。Android系统源码版本:9.0.0_r3整体流程图如下:Zygote启动流程Android Kernel启动后启动第一个进程init,init将解析init.*.rc文件启动进程zygote。*/system/core/rootdir/init.zygote32_64.rc1 service zygote /syst

2021-08-22 11:09:43 543

原创 ffmpeg 从视频中指定位置间隔固定时间取出图片

ffmpeg -ss 00:03:28 -vsync 0 -i input.mp4 -vf select='isnan(prev_selected_t)+gte(t-prev_selected_t\,5)' -qscale:v 4 ouput_%06d.jpg-ss 00:03:28 指定开始时间为00:03:28-vsync 0 必须要-i input.mp4 指定输入文件名为input.mp4-vf select=‘isnan(prev_selected_t)+gte(t-prev_s

2021-07-22 11:10:35 1149

原创 Pytorch计算数据集均值和标准差

代码来源Pytorch Quick Tip: Calculate Mean and Standard Deviation of Dataimport torchimport torch.utils.data.dataloader as dataloaderimport torchvision.datasets as datasetsfrom torchvision import transformstrain_dataset = datasets.CIFAR10(root="dataset/",

2021-03-30 10:00:08 1727

原创 不定长度验证码识别Pytorch版

模型结构采用CNN+RNN(CRNN)+CTCnotebook地址!pip install matplotlibimport torch.utils.data.dataloader as dataloaderimport torch.utils.data.dataset as datasetfrom torchvision import datasets, transformsimport torch.nn.functional as Fimport torchimport globim

2021-03-20 13:32:30 1555 5

原创 固定长度验证码识别TensorFlow版

识别固定长度的二维码 notebook!pip install captchaRequirement already satisfied: captcha in /usr/local/lib/python3.7/dist-packages (0.3)Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from captcha) (7.0.0)from captcha.image impo

2021-03-20 12:20:48 268

原创 cuda 11.2环境下TensorFlow 2.4.1出现libcusolver.so.10 not found问题记录

环境:RTX3090cuda11.2tensorflow 2.4.1测试TensorFlow使用是否能够使用GPUimport tensorflow as tftf.config.list_physical_devices('GPU')出现libcusolver.so.10 not found在tensorflow 的issues#43947发现解决方案,降低cuda版本到cuda11.0,现记录操作流程:1、卸载cuda11.2,在目录/usr/local/cuda-11.2/b

2021-03-12 10:34:33 797

原创 windows python 3.6升级pip失败问题 ValueError: Unable to find resource t64.exe in package pip._vendor.distl

环境:windows10python3.6报错日志:Python36\site-packages\pip\_vendor\distlib\scripts.py", line 383, in _get_launcher raise ValueError(msg)ValueError: Unable to find resource t64.exe in package pip._vendor.distlib解决方法:1、卸载pip setuptoolspython -m pip un

2021-02-17 17:35:43 219

原创 Android颜色选择控件绘制原理分析

项目地址android-colorpicker支持颜色的设置,当前选择颜色的监听,效果如图原理颜色的表示有RGB,YUV,HSV,HSL等方式。RGB颜色空间,可以表示为一个立方体如图YUV 色彩空间,电视系统这种表示方法用的较多,兼容黑白电视,与RGB互转公式为(RGB取值范围均为0-255): Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B R

2021-02-07 14:47:21 470

原创 Flowable 相关问题

环境:flowable-6.6.0问题一:用户密码数据库明文存储在flowable-default.properties配置文件中添加如下配置:flowable.idm.password-encoder=spring_bcrypt问题二:显示流程图中文乱码在flowable-default.properties配置文件中添加如下配置:flowable.activity-font-name=Defaultflowable.label-font-name=Defaultflowable.ann

2021-02-02 13:52:58 280

原创 极客时间-实用密码学-10怎么防止数据重放攻击

为什么还要学习 CBC 模式?不知道你是不是已经有了一个问题:既然 CBC 要退出历史舞台了,我们还学习它干什么呢?第一个原因,CBC 的退出进程可能需要十数年才能完成。你现在工作的项目种,可能还存在 CBC 模式的大量使用。我们学习了 CBC 模式,有助于你解决现存项目的安全问题。第二个原因,学习针对 CBC 的攻击方案, 是我们深入理解加密算法安全问题的最好的切入点。了解这些安全缺陷和攻击方案,有助于你更好地使用密码学的算法。因为,这些缺陷也可能换个面孔,出现在应用程序层面。如果你能够说清楚 CB

2020-12-16 09:48:33 2983 1

原创 极客时间-实用密码学-09为什么ECB模式不安全

链接模式怎么连?链接模式指的是如何把上一个分组运算和下一个分组运算联系起来,使得上一个分组运算可以影响下一个运算。但是,这个联系是怎么建立起来的,上一个运算到底又是怎么影响下一个运算的,这个描述是模糊的。从道理上来说,上一个分组运算的所有要素,都有可能参与到下一个分组运算里;下一个分组运算的每一个要素,都有可能接收上一个运算的一个要素或者几个要素的组合。而在这之间就会形成不同的分配组合,也就形成了不同的链接模式。ECB模式ECB模式不使用链接模式,也就不需要初始化向量。每一个分组的加密都是独立

2020-12-16 09:22:37 5164

原创 极客时间-实用密码学-08该怎么选择初始化向量

分组算法计算流程分组算法要对输入数据进行分组,然后按数据分组进行运算。一个典型的分组算法由三部分组成:数据分组、分组运算、链接模式。数据分组:数据分组在加密时会将明文数据分组为加密算法能够处理的固定大小的数据块。比如AES能够处理的数据块大小为128位,那么数据就要被分割成一个或多个128为的数据块。如果不能整分,就要把最后一个分组补齐为128位。这些分组数据的运算结果,组合起来就是密文数据。解密时进行相反的操作将补齐数据去掉,再把数据分组组合成完整的明文数据。理解了数据分组再来看一下分组运

2020-12-14 09:13:03 2348

原创 极客时间-实用密码学-07怎样选择对称密钥算法

对称加密性能影响有多大在下面的表格里,我给你总结了常见的一些算法,以及一些相关的信息。其中,计算性能参考的是 ECRYPT 性能基准测试在 2020 年 7 月对较长数据的运行结果。从上表中可以看出每个字节的加密、解密运算大约需要0.5个时钟周期,对比单向散列函数的性能,加密解密运算是一种很快的运算。序列算法和分组算法为了能够处理任意大小的数据并且输出结果长度固定,单向散列函数需要将数据分组,然后对数组进行运算。在对称加密算法里对输出数据没有长度限制,对数据的处理方式也就有更多的想象空间。如

2020-12-07 09:45:32 2013

原创 极客时间-实用密码学-5如何有效避免长度延展攻击

什么是长度延展攻击假设我们有两段数据S和M以及单向散列函数h,其中S是机密信息。我们通过hash=h(S+M)(其中+,表示字符串连接)计算hash值,通过计数数据的hash与原始hash对比来校验数据是否可靠。因为通常攻击者不知道S值。比如如下字符串(可以看作url的一部分):key_id=44fefa051fc1c61f5e76f27e620f51d5&perms=read&hash_sig=38d39516d896f879d403bd327a932d9ehash_si=h(

2020-12-02 16:40:07 2281 1

原创 极客时间-实用密码学-3如何设置合适的安全强度

有多难现代单向散列函数在算法意义上的破解,都是通过找到一对散列值相同的数据形式发布的什么是安全强度N位的安全强度表示破解一个算法需要2的N次方的运算组合的强度由最弱的算法和密钥决定安全强度会变吗算法的安全强度不是一成不变的,随着安全分析的进步,几乎所有的密码学算法的安全强度都会减弱。例如:MD5、SHA-1都不在安全,MD5安全强度最多 18 位,SHA-1 的攻击复杂度是 63.4 位,攻击成本大约为 4.5 万美元。一个 64 位安全强度的密码算法,它现在的破解成本大概是 5 万美元左右

2020-11-27 11:31:01 3080 1

原创 极客时间-实用密码学-2单向散列函数

单向函数正向计算容易,反向计算困难的函数散列函数任意长度的数据都能映射到固定长度数据的函数单向散列函数既是单向函数又是散列函数,满足:逆向运算困难构造碰撞困难雪崩效应输入数据的微小变化就会造成出输出数据的巨大变化严格的定义:输入数据的一位反转,输出数据的每一位都有50%的概率发生变化怎么解决数据完整性问题通过对应的散列函数计算数据的散列值与原散列值对比,相同表示数据未发生变化,否则数据已发生过修改...

2020-11-25 09:12:34 1965

原创 Nexus 2.14 安装及升级到nexus-2.15.1-02

系统环境:CentOS 7.50、将nexus-2.14.12-02.tar.gz 解压到/usr/local目录下tar -xzf nexus-2.14.12-02.tar.gz -C /usr/local1、创建用户以及用户组nexususeradd -U nexus2、修改目录权限 chown -R nexus:nexus nexus-2.14.12-02 chown -R nexus:nexus nexus chown -R nexus:nexus sonatype-work

2020-11-07 00:01:53 979

原创 重学Android之事件分发机制

通过本文了解Android中触摸事件在视图层次中的分发流程以及多点触控时系统的处理方式。通过分析源码的方式初步建立UI系统中处理事件的基本思路,为以后自己设计UI系统时做参考。同时也为开发Android自定义控件时处理复杂事件提供理论基础。前置条件: 有一定的Android开发经验源码版本: android 10在开始之前先思考几个问题:事件在视图层级中分派流程是怎样的什么时机确认事件被某一View处理如何记录事件应该分派到哪一个View多点触控时如何处理事件分派什么情况下View会收到A

2020-09-24 10:23:42 293

原创 androidx ViewModel 生命周期如何与Activity/Fragment生命周期关联

通常我们在Activity/Fragment中创建ViewModel使用如下方式:NameViewModel nameViewModel=new ViewModelProvider(this).get(NameViewModel.class);其中ViewModelStore对象由Activity/Fragment提供,并且在Activity/Fragment销毁时调用ViewModel的clear方法那Activity、Fragment如何创建ViewModelStore的呢?让我我们一起来看看

2020-08-31 16:29:13 8011

原创 JNI 中jstring转utf8

JNI 中jstring转utf8在java中通过GetStringUTFChars获取的char*是修改后的utf8字节数组,可以采用如下方式转换为标准的utf8编码 参见Getting true UTF-8 characters in Java JNIJNIEXPORT void JNICALL Java_EmojiTest_nativeTest(JNIEnv *env, jclass c...

2019-12-17 11:08:28 827

原创 读写锁ReentrantReadWriteLock性质

读写锁ReentrantReadWriteLock性质一、性质1、支持锁的降级,在写锁释放前降级为读锁2、不支持锁的升级,由读锁升级为写锁将会失败3、写锁支持ReentrantLock.newCondition,读锁不支持,将会抛出异常UnsupportedOperationException锁的降级测试代码 System.out.println("Enter"); ...

2019-10-30 15:23:56 97

原创 9、ffplay音频的波谱图及频谱图源码分析

ffplay音频的波谱图及频谱图源码分析当ffplay指定启动参数-showmode [0/1/2]时,值为0,正常播放(默认);值为1,显示波形;值为2,显示频谱图。在ffplay中由show_mode变量控制显示方式取值分别为:SHOW_MODE_VIDEO/SHOW_MODE_WAVES/SHOW_MODE_RDFT在函数video_display(…)中判断是否有音频流并且show_...

2019-10-23 14:43:56 1684

原创 8、ffplay字幕解码及渲染源码分析

ffplay字幕解码及渲染源码分析字幕解码逻辑static int subtitle_thread(void *arg){ VideoState *is = arg; Frame *sp; int got_subtitle; double pts; for (;;) { if (!(sp = frame_queue_peek_writ...

2019-10-23 14:43:22 403

原创 7、ffplay视频渲染模块

ffplay视频渲染模块源码分析main函数中,在stream_open(…)之后调用event_loop()不断的从SDL中查看是否有SDL事件发生,如果有事件发生就取出事件处理,否循环从pictq队列中取出AVFrame渲染到屏幕上。static void refresh_loop_wait_event(VideoState *is, SDL_Event *event) { do...

2019-10-23 14:42:55 493

原创 6、ffplay音视频同步原理

ffplay音视频同步原理以视频同步到音频上进行分析:音频播放过程中更新音频pts视频播放渲染过程中更新视频pts视频渲染过程中发现pts大于音频pts则sleep一定时间视频解码出AVFrame发现小于音频的pts还会进行丢帧处理由于以音频的pts为主时钟,音频播放只要按照速度一直播放即可。视频播放就要时刻要留意音频的pts,当视频播放慢了,就要去追赶音频。当视频播放快了,要停下...

2019-10-23 14:42:20 279

原创 5、ffplay音频解码模块源码分析

ffplay音频解码模块源码原理分析一、初始化二、音频数据写入输出设备sdl_audio_callback(…)输出数据的回调函数,将被SDL循环调用。//参数stream为音频缓冲区,len为缓冲区长度,将音频数据拷贝到stream,由SDL将stream中的数据送入硬件播放//opaque 为userdata,在函数audio_open(...)中赋值给SDL_AudioSpec结构...

2019-10-23 14:41:52 391 1

原创 4、ffplay解码线程源码分析

ffplay解码线程原理分析一、视频解码模块1、从AVPacket 解码出AVFramestatic int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) { int ret = AVERROR(EAGAIN); for (;;) { AVPacket pkt; ...

2019-10-23 14:41:16 295

原创 3、ffplay同步时钟源码分析

ffplay同步时钟源码分析同步时钟用于音视频同步(A-V sync)A-V同步可以选择以音频同步、视频同步、外部时钟同步一、数据结构typedef struct Clock { double pts; /* 渲染时间,单位秒 */ double pts_drift; /* 渲染时间-当前更新时间。这个写法真奇葩?^~^*/ double...

2019-10-23 14:40:42 363

原创 2、ffplay FrameQueue源码分析

ffplay FrameQueue 源码分析一、FrameQueue结构typedef struct FrameQueue { Frame queue[FRAME_QUEUE_SIZE]; int rindex;//队头索引 int windex;//队尾索引 int size;//队列元素个数 int max_size;//队列最大容量 int...

2019-10-23 14:38:27 204

原创 1、ffplay PacketQueue源码分析

ffplay PacketQueue源码分析一、数据结构typedef struct PacketQueue { MyAVPacketList *first_pkt, *last_pkt;//串联AVPacket链表,分别指向队头和队尾 int nb_packets;//队列中元素的个数 int size;//队列持有数据的字节大小 int64_t durati...

2019-10-23 14:33:18 272

原创 Android Button英文全部大写问题

添加如何写代码全局解决<style name="myTextAppearanceButton" parent="TextAppearance.AppCompat.Widget.Button"> <item name="textAllCaps">false</item> </style> &lt

2018-12-04 13:12:44 684

Keil4注册机

keil系列注册机keil 3 也一样的,本人亲自测试过的

2013-09-18

空空如也

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

TA关注的人

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