- 博客(37)
- 收藏
- 关注
原创 【Python比较两图相似性】MSE,RMSE,PSNR,SSIM,UQI
比较图片的相似性,应用在使用GPU加速计算后为了保证跟CPU的结果一致性,需要对比两者输出的图片的相似性。
2023-04-01 16:30:29 2059
原创 【Python脚本】从txt文本中提取x,y,z数据并绘图对比
import reimport matplotlib.pyplot as pltimport numpy as npdef withdraw_data(path, regex_str): string = open(path, encoding="UTF-8").read() # a = re.findall(r"FastDetect cost: (/d+\.?\d*)", string) # a = re.findall(r"stage3: (\d+\.?\d*)", s
2022-04-01 14:38:01 1570 1
原创 【Python脚本】正则提取两组x,y数据并绘图对比
import reimport matplotlib.pyplot as pltimport numpy as npdef withdraw_data(path, regex_str): string = open(path, encoding="UTF-8").read() # a = re.findall(r"FastDetect cost: (/d+\.?\d*)", string) # a = re.findall(r"stage3: (\d+\.?\d*)", s
2022-04-01 14:35:52 3888
原创 【Python脚本】Fast-dds正则提取时间数据处理
# coding=utf8import reimport matplotlib.pyplot as pltpara = "512K"# start send timestring = open("E:/Fast_DDS/debug/TCP/DDS_TCP_{}_publisher.txt".format(para), encoding="UTF-8").read()start = re.findall(r"(\d+\.\d*)"r"", string)start = list(map(f
2022-04-01 14:32:28 3111
原创 【Python脚本】harris调试时转换gray,Ix,Iy,resp等数据为png图片
# coding=utf-8import cv2import numpy as np# 把gray图转换为png图def test0(): for i in range(1): imgname = "E:/pan_backup/vio/5_13_static_pc_imgs/cam0/{}.gray".format(i); image = np.fromfile(imgname, dtype=np.uint8) image_gray = n
2022-04-01 14:31:03 2348
原创 【Python脚本】批量将二进制格式图片转换成png或mp4格式
# coding=utf-8import cv2import numpy as npimport osdef convert_bin2png(): """把单通道的bin文件转换为png""" for i in range(pic_num): bin_name = "{}.bin".format(i) input_name = path + bin_name image = np.fromfile(input_name, dtype
2022-04-01 14:28:12 2595
原创 【Python脚本】正则提取文本中的数据
正则表达式教程参考:正则表达式 - 菜鸟教程正则调试工具正则可视化工具# coding=utf8import reimport matplotlib.pyplot as plt# 文件名filename = "E:/rb5/debug/hard_write/3840x3840-2.txt"string = open(filename, encoding="UTF-8").read()# a = re.findall(r"FastDetect cost: (/d+\.?\d*)", st
2022-04-01 14:25:19 929
原创 【neon加速拆分/合并交叉数据】使用neon intrinsics加速合并/拆分uv的内存分布(交叉存储/分别存储)
说明在YUV格式的图片中,uv数据可以“UVUVUVUV”形式交叉存储叫NV12,也可以以“UUUUUVVVVV”的格式分开存储,为了将二者转换,需要类似如下的代码:// 将交错的数据分开for (int i = 0; i < size; i++) { uv[2*i] = u[i]; uv[2*i+1] = v[i];}// 交织数据for (int i = 0; i < size; i++) { u[i] = uv[2*i]; v[i] = uv[2*i+1];}
2021-12-27 12:11:59 1037
原创 【NEON Intrincics加速计算案例】使用neon加速计算视频FullRange转LimitedRange
目标使用 neon intrinsic指令对视频的full range转limited range进行加速,转换公式为:// Y通道data[i] = (219 * data[i]) / 255 + 16;// UV通道data[i] = (224 * data[i]) / 255 + 16;介绍neon指令属于SIMD指令,一次加载多组数据同时运算,从而实现并行加速,有点像影流之主的感觉。在Studio Level设备中,8位YCbCr系统都规定亮度的取值范围介于16至235之间,
2021-12-27 12:01:33 657
转载 【gstreamer】encode
Encoding and MuxingProblems this proposal attempts to solveDuplication of pipeline code for gstreamer-based applicationswishing to encode and or mux streams, leading to subtle differencesand inconsistencies across those applications.No unified sys
2021-12-15 18:21:22 486
转载 【gstreamer】Synchronisation
SynchronisationThis document outlines the techniques used for doing synchronisedplayback of multiple streams.Synchronisation in a GstPipeline is achieved using the following 3components:a GstClock, which is global for all elements in a GstPipeline.
2021-12-15 18:20:40 128
转载 【gstreamer】event
EventsEvents are objects passed around in parallel to the buffer dataflow tonotify elements of various events.Events are received on pads using the event function. Some events shouldbe interleaved with the data stream so they require taking theSTREAM_
2021-12-15 18:19:51 444
转载 【gstreamer】seek
SeekingSeeking in GStreamer means configuring the pipeline for playback of themedia between a certain start and stop time, called the playbacksegment. By default a pipeline will play from position 0 to the totalduration of the media at a rate of 1.0.A
2021-12-15 18:18:49 509
原创 【gstreamer opencv::Mat】将opencv的cv::Mat数据转换成MP4视频
目录序言实现VideoWriter.hVideoWriter.ccWriterDemo.ccCMakeLists.txt参考文献序言问题描述:继上一篇使用gstreamer读取视频中的每一帧为cv::Mat之后,又接到新需求 ,需要将处理后的cv::Mat数据保存成视频。为此,需要设置pipeline和应用app的数据传输。在gstreamer的pipeline中,数据的输入元件一般有本地文件输入filesrc,网络文件输入souphttpsrc,应用数据输入appsrc,毫无疑问这里需要appsrc
2021-12-13 12:11:58 5256 9
原创 【gstreamer中appsink和appsrc操作数据转换cv::Mat】参考文献
文章目录参考文献gstreamer知识入门重点推荐其他参考参考文献gstreamer知识入门通用的gstremer知识入门GStreamer流媒体知识介绍详细的GStreamer开发教程国内葛大神写的博客用 GStreamer 简化 Linux 多媒体开发GstAppSink简介GstAppSrc简介gstreamer开发手册专栏重点推荐几个开源仓库中包含appsink,appsrc,filesink例子的代码。可搜索appsink,appsrc,filesink直接看相关的代码
2021-12-13 12:08:38 3355
原创 【gstreamer opencv::Mat】使用gstreamer读取视频中的每一帧为cv::Mat
序言需求:读取视频中每一帧,通过gstreamer的插件转换成cv::Mat,并且实现调用一次read函数,读取一次frame。分析:gstreamer中的数据是在叫做pipeline(管道)中流动,最后流到sink中,sink包括显示设备videosink,文件filesink,虚拟设备appsink。其中appsink能够实现将管道中的数据取出,拷贝给外层的其他app应用,即我们的主程序中cv::Mat变量。实现gstreamer流程图如图所示:以下代码以通过测试,运行sudo ./Vi
2021-12-13 10:44:41 7779 3
转载 【gstreamer】pipeline-manipulation
title: Pipeline manipulation…Pipeline manipulationThis chapter presents many ways in which you can manipulate pipelines fromyour application. These are some of the topics that will be covered:How to insert data from an application into a pipelineHo.
2021-12-07 11:32:34 501
原创 javascript解力扣面试题 02.08. 环路检测
面试题 02.08. 环路检测题目面试题 02.08. 环路检测给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。示例 1:输入:head = [3,2,0,-4
2021-11-28 22:11:20 137
原创 javascript解力扣面试题 02.05. 链表求和
面试题 02.05. 链表求和题目面试题 02.05. 链表求和给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?示例:输入:(6 -> 1 -> 7
2021-11-27 15:11:46 596
原创 javascript解力扣面试题 02.04. 分割链表
面试题 02.04. 分割链表题目面试题 02.04. 分割链表给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你不需要 保留 每个分区中各节点的初始相对位置。示例 1:输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例 2:输入:head = [2,1], x = 2输出:[1,2] 提示:链表中节点的数目在范围 [0, 200] 内-
2021-11-27 14:31:05 597
原创 javascript解力扣面试题 02.03. 删除中间节点
面试题 02.03. 删除中间节点题目面试题 02.03. 删除中间节点若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。例如,传入节点 c(位于单向链表 a->b->c->d->e->f 中),将其删除后,剩余链表为 a->b->d->e->f 示例:输入:节点 5 (位于单向链表 4->5->1->9 中
2021-11-26 23:31:59 120
原创 javascript解力扣面试题 02.02. 返回倒数第 k 个节点
面试题 02.02. 返回倒数第 k 个节点题目面试题 02.02. 返回倒数第 k 个节点实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k 保证是有效的。解答var kthToLast = function(head, k) { // 解法1:快慢指针 // 执行用时:84 ms, 在所有 JavaScript
2021-11-25 22:00:53 292
原创 javascript解力扣面试题 02.01. 移除重复节点
面试题 02.01. 移除重复节点题目面试题 02.01. 移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?解答var removeDuplicateNodes = funct
2021-11-25 21:46:45 286
原创 javascript解力扣面试题 01.09. 字符串轮转
面试题 01.09. 字符串轮转题目面试题 01.09. 字符串轮转字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1: 输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True示例2: 输入:s1 = "aa", s2 = "aba" 输出:False提示:字符串长度在[0, 100000]范围内。说明:你能只调用一次检查子串的
2021-11-25 21:29:31 413
原创 javascript解力扣面试题 01.08. 零矩阵
面试题 01.08. 零矩阵题目描述编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[ [1,1,1], [1,0,1], [1,1,1]]输出:[ [1,0,1], [0,0,0], [1,0,1]]示例 2:输入:[ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出:[ [0,0,0,0], [0,4,5,0], [0,3,1,0]]解答var setZe
2021-11-25 20:40:55 521
原创 javascript解力扣面试题 01.07. 旋转矩阵
题目描述面试题 01.07. 旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到? 示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8
2021-11-23 22:52:06 316
原创 javascript解力扣面试题 01.06. 字符串压缩
题目描述面试题 01.06. 字符串压缩字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2: 输入:"abbccd" 输出:"abbccd" 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。提示:字
2021-11-23 22:04:12 190
原创 javascript解力扣面试题 01.05. 一次编辑
题目描述字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入: first = "pale"second = "ple"输出: True 示例 2:输入: first = "pales"second = "pal"输出: False解答var oneEditAway = function(first, second) { // 解法1:两种情况分类:①长度相等,只能有
2021-11-22 21:58:31 536
原创 使用cmake编译带有Eigen库,并调用静态库的例子
文件结构.├── CMakeLists.txt├── main.cpp├── makefile└── testEigen ├── testEigen.cpp └── testEigen.hmain.cpp#include "testEigen.h"int main(){ testEigen(); return 0;}teseEigen.cpp#include "testEigen.h"#include <iostream>#inc
2021-11-22 16:18:30 2045
原创 javascript解力扣面试题 01.04. 回文排列
题目描述面试题 01.04. 回文排列给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。示例1:输入:"tactcoa"输出:true(排列有"tacocat"、"atcocta",等等)解法var canPermutePalindrome = function(s) { // 方法1:Set不停更新奇数个字母的大小 // 执行用时:68 ms, 在所有 J
2021-11-18 21:44:40 404
原创 在linux上运行DJI的OSDK操作步骤
所需材料:可以插入usb接口的linux系统(本人使用windows的子系统WSL UBUNTU作为N3的计算平台)N3飞控系统windows上安装DJI Assistant 2 forAutopilotlightBridge2遥控器步骤从dji开源的github网站下载OSDK,切换到3.9版本,因为N3最高只能运行3.9版本的。git clone git@github.com:dji-sdk/Onboard-SDK.gitcd Onboard-SDKgit checkout 3
2021-11-17 10:28:00 1153
原创 javascript解力扣题 01.03. URL化
面试题 01.03. URL化题目描述URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 示例 1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例 2:输入:" ", 5输出:"%20%20%20%20%20"来源:力扣(LeetCode)链接:h
2021-11-09 21:22:33 538
原创 javascript解力扣题 01.02. 判定是否互为字符重排
面试题 01.02. 判定是否互为字符重排题目描述给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = "abc", s2 = "bca"输出: true 示例 2:输入: s1 = "abc", s2 = "bad"输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/check-permutation-lcci著作权归领扣网络所有
2021-11-09 20:20:14 518
原创 [javaspript解力扣题] 01.01.判定字符是否唯一
力扣面试题 01.01. 判定字符是否唯一题目描述实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = "leetcode"输出: false 示例 2:输入: s = "abc"输出: true限制:0 <= len(s) <= 100如果你不使用额外的数据结构,会很加分。题解1// 两次遍历,判断当前字符在之后的子串中是否出现var isUnique = function(astr) { for(let i = 0;
2021-11-08 22:15:30 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人