自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 python plot_surface 画表面网格图

对于三维点云数据,如何画其表面的网格图,比如1*1m的表面栅格图?话不多说,直接上python脚本,已验证。# !/usr/bin/env python3# -*- coding: utf-8 -*-import open3d as o3dimport numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Ddef grid_plot(file): target = o

2021-05-17 12:24:52 3574

原创 python np.arange 步长0.1的问题需要注意

两个小测试:1)count输出什么?import numpy as np y_min= 20 y_max= 21 step = 0.1 count = 0 for i in np.arange(y_min, y_max, step): count += 1 print('i:', count, i)答案是:count = 10如图2)count输出是什么?import numpy as np .

2021-04-22 09:58:27 3050 1

原创 ubuntu18安装PCL点云库

项目需要,安装PCL点云库,开始安装吧。安装依赖库sudo apt-get update sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin o

2021-02-23 15:21:07 421

原创 ubuntu 增加内存 swap设置

有时ubuntu内存不够,编译大工程经常报错。需要增加内存,进行swap设置来实现。// 新建文件夹mkdir /home/ubuntu/swapfile cd /home/ubuntu/swapfile//count=6 6Gsudo dd if=/dev/zero of=swap bs=1G count=6sudo mkswap -f swapsudo swapon swap//永久设置生效sudo gedit /etc/fstab//最后一行填入/home/r

2021-02-23 14:36:24 605

原创 opencv C++图像/视频旋转 90度 180度 270度

上代码:#include <opencv2/opencv.hpp> using namespace cv; int main() { Mat src = imread("1.jpg",1); Mat srcCopy= Mat(src.rows, src.cols,src.depth()); transpose(src, srcCopy); //flip(srcCopy, srcCopy, 1); //rotate 270

2020-12-22 17:29:26 3217

原创 ffmpeg ubuntu C++ 获取视频的旋转角度

问题:输入的视频有的是左/右旋转90度横拍,有的是竖拍,需要获取视频的旋转角度。直接上ffmpeg库的解决方法。1. 安装ffmpeg库sudo apt-get install ffmpeg2. 查看安装位置whereis ffmpeg我的位置是:ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz3.CMakeLists.txt编写cmake_minimum_requ..

2020-12-18 19:37:33 430 1

转载 使用vector保存Mat

参考这篇文章,说的很明白,需要.clone()一下。https://blog.csdn.net/cy_tec/article/details/51249893

2020-11-18 10:19:11 289

转载 Mac下安装AndroidStudio Gradle环境配置

https://www.cnblogs.com/youpeng/p/10256901.html这个博客写的很清楚,设置后,下载速度快了很多,参考下。

2020-11-11 16:38:06 1288

转载 Android-JNI-将cv-Mat转换为jbyteArray

https://stackoom.com/question/3X9xD/Android-JNI-将cv-Mat转换为jbyteArray这篇写的很好,记录转载备份下。

2020-11-10 11:22:25 795

转载 Mac上装VMware和VMware Tools实现文件拷贝(虚拟机和主机)

安装VMware,参考:https://www.cnblogs.com/98record/p/13849103.html安装VMware Tools实现文件拷贝,参考:https://www.jianshu.com/p/ac56f09900f2

2020-10-30 11:35:02 2890

原创 基于ROS下的安卓手机图像和IMU跑ORB-SLAM3

接之前文章继续,手上没有现成的单目+IMU硬件,但是安卓手机几乎人人都有。因此,本文讲下如何用手机跑ORB-SLAM3的Mono和Mono_Inertial。1. 手机与PC通信基于ROS下的信息发布和订阅,手机和PC在一个局域网下进行信息(image和IMU)传输。手机APK参考了github上的2个开源Android_Camera-IMU和android_ros_sensors,基于ros_java生成安卓APP,下载安装任一个APP到安卓手机,界面分别是这样:手机和PC连一个无

2020-08-26 11:29:20 9237 15

原创 ROS image_transport (melodic)

目的:手机实时通过局域网传输图像数据到PC,通过ROS订阅和发布,图像是compressed的,但订阅的主题类型(types)只能是raw的,因此,需要用image_transport将compressed图像republish成raw的。rosrun image_transport list_transports查看ros的image_transport是否正常安装发现只有image_transport/raw,没有压缩图像的compressed和视频流theora,此时,需要安装下

2020-08-20 11:39:27 2193

原创 vlfeat在ubuntu下安装用于C/C++

vlfeat是一个开源的视觉图像算法工具包,包括了sift、HOG等,主要是在matlab下使用,本文是讲解如何在C/C++下调用。0 官网下载从官网下载地址,选择*.bin.tar.gz,版本自己选择,我选择的是0.9.21。1 安装ubuntu下安装,很简单如下:cd vlfeatmake生成了/vlfeat/bin/glnxa64/objs/*.o2 声明系统变量sudo gedit ~/.bashrc在bashrc里最后增加export VLROOT=

2020-08-17 17:11:45 905 1

原创 Ubuntu18.04安装ROS Melodic

1.Ubuntu 18.04 LTS上添加安装源到source.listsudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'2.添加秘钥到本地的trusted数据库中并加以验证sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:..

2020-08-11 16:11:51 250

原创 ORB SLAM3加载Vocabulary更快ORBvoc.bin

最近ORB SLAM3刚开源,跑了跑,发现源代码加载词袋还是ORBvoc.txt,加载时间比较慢,这里教你修改成ORBvoc.bin加载,1秒内完成加载。1. 将ORBvoc.bin拷贝到Vocabulary文件夹下,ORBvoc.bin百度云盘下载地址密码idr0,记得解压缩。2. 修改ORB_SLAM3/src的System.cc的82行: mpVocabulary = new ORBVocabulary(); //bool bVocLoad = mpVocabulary-...

2020-08-10 15:03:22 3387

转载 beyondcompare ubuntu revoked问题

用一段时间,会出来revoked问题,那就重新来一次。终端里cd .config/bcompare/Rm -rf *cd /usr/lib/beyondcompare/sudo sed -i "s/keexjEP3t4Mue23hrnuPtY4TdcsqNiJL-5174TsUdLmJSIXKfG2NGPwBL6vnRPddT7tH29qpkneX63DO9ECSPE9rzY1zhThHERg8lHM9IBFT+rVuiY823aQJuqzxCKIE1bcDqM4wgW01FH6oCB

2020-08-08 18:31:39 1438

原创 ORB-SLAM3实测与解读

最近ORB-SLAM3正式开源了,出品自西班牙萨拉戈萨大学的ORB-SLAM系列,一如既往的风格,一脉相传的味道。0 资源可以去github上查看源码:地址有同学反映github最近网速不给力,也可以去百度云盘下载,源码:地址密码: iftp;论文:地址密码: 6ml4。1 解读 ORB-SLAM3应该说是对近几年工作进行大的总结的一个系统,集成了之前的ORB-SLAM2、ORB-SLAM-VI等。支持了纯视觉、视觉+惯性、构建多子地图系统、单目、双目、RGB-D、针孔相机、鱼....

2020-08-08 10:57:39 14096 16

原创 WebAssembly封装C/C++代码含结构体 opencv Emscripten

业务需要,将C/C++算法代码集成到h5/小程序进行展示,需要进行WebAssembly封装成 .js和 .wasm首先是C/C++代码和CMakeList.txt,都要进行修改,C/C++的那一套在Emscripten可是行不通的。工程代码结构:CMakeList.txt, src/xxx.cpp, src/xxx.hpp。1. ubuntu下安装Emscriptengit clone https://github.com/juj/emsdk.gitcd emsdk./emsdk u

2020-07-20 12:34:47 3061

原创 Mac用QuickTime录屏+soundflower录制屏内外声音

mac自带的quickTime录屏没有声音,可以安装soundflower录制屏内外声音。安装好soundflower后,开始配置。启动台 搜索MIDI音频设置,左下角+号聚集设备之后是+多输出设备之后是 系统偏好设置 选声音,输入 选 聚集设备之后是 输出,选多输出设备之后配置quicktime:右键,新建屏幕录制,选项,聚集设备,之后OK了,开始录制吧。录完后需要声音:输入和输出改回 内置麦克风和内置扬声器,不然声音大小不能修改了。...

2020-07-09 23:12:36 1313

原创 物体检测(笔记)

物体检测的过去现在和未来-俞刚大佬讲座笔记行人检测 二维码检测bounding-box point keypoint物体检测 交通标示检测 人体骨架姿态检测特征+分类AP:average precision准确率 召回率precision and recall 分母的不同框面积 与真实面积的 交/并>50%认为框OKmmAP:所有类别 AOU 平均准确率 0.5-0.55-0.60-0.95all sub-windows feature 分类;计算量太大 轻feat

2020-07-04 22:08:04 396

原创 算法思想:贪心 分治 回溯 动态规划 数据结构:B+树(复习总结)

算法思想:贪心 分治 回溯 动态规划算法 数据结构:B+树贪心:贪婪算法 每一步当前最优解 局部利益最大化背包问题:有权图问题:前提:局部最优策略能导致产生全局最优解钱币找零问题:区间问题:分治:分而治之 通过递归来编程实现(递+归)适用:排序;分解为独立小问题;独立小问题可解;分解和合并操作复杂度不高10GB订单数据按照价格排序 分布式系统回溯backMethod:枚举的搜索尝试过程,选优搜索法 回溯状态点为回溯点八皇后问题:8*8棋盘格 行 列 斜 线上不能有2个皇后动态规划

2020-07-03 09:55:05 170

原创 堆 图 字符串匹配算法(复习总结)

堆 图 字符串匹配算法(查找算法)堆:Heap 一种树。1.完全二叉树;2.任意结点值大于等于(小于等于)子树的任意结点堆的分类:1.大顶堆:结点值大于等于子树任意结点;2.小顶堆:结点值小于等于子树任意结点。堆的存储:数组 父结点i 左子结点 2*i 右子结点 2*i+1堆的实现:data(数组) size count堆中插入元素:堆化操作:从下往上,从上往下1.插入底部;2.堆化操作,调换(当前结点和父结点),直到满足2.删除堆顶元素堆 时间复杂度:o(logn)堆排序时间复杂度:o(n

2020-07-03 09:52:06 253

原创 算法2:散列表 树 平衡二叉查找树(复习总结)

散列表 哈希算法 树形结构散列表:概念 函数 应用散列表Hash Table:哈希表 根据键key 数组演变来的key 散列函数 table散列函数:hashValue = hash(key) 将给定的key转换为特定的散列值要求:1.计算得到的散列值必须大于等于0的正整数,作为数组下标;2. if key1==key2, hash(key1)==hash(key2); 3. if key1!=key2, hash(key1)!=hash(key2)好的散列表满足:1.散列函数不能太复杂;2.

2020-07-03 09:46:19 177

原创 算法1:递归 排序 二分查找(复习总结)

算法性能好坏分析:时间复杂度 渐近复杂度分析:时间复杂度 空间复杂度忽略低阶、常量、系数代码循环次数最多原则、加法原则、乘法原则可数的:o(1)线性的:o(n)对数:o(logn) o(nlogn)最好/最坏/平均时间复杂度空间复杂度 渐近o(1) o(n) o(n2)递归算法思想:概念 条件 问题 递归和循环 常见应用概念:编程技巧 递回 recursion 递+归 去+回 递推公式条件:规律(递归表达式);出口(终止条件)问题:堆栈溢出(递归深度大,临时变量进入栈,内

2020-07-02 09:56:59 306

原创 数据结构:数组 链表 栈 队列 (复习总结)

数组:线性 连续内存空间 相同数据类型逻辑结构 物理结构数组下标=索引 a[0]高效随机访问获取 低效插入和删除多次删除(只标记)统一执行 垃圾箱删除的道理数组 容器类 ArrayList vector容器中元素添加 获取Object[] 数组 构造扩容机制 原有容量的1.5倍链表:非连续 非顺序插入和删除元素非常方便,查找麻烦结点:element 数据域(数据元素) 指针域next(下一个元素的指针,引用,最后一个是null)零散的内存块链表类型:单 循环 双向 双向循环..

2020-07-02 09:48:25 281

原创 嵌入式3D人脸识别(笔记)

3D人脸识别在人脸识别中所占比例58%(2020年),3D是趋势。3D人脸误识率1/100万,2D人脸误识率1/1万。应用人脸活体、高精度识别。几种深度相机比较:双目:运算量大,受光照影响(过亮过暗时)3D结构光:编码结构光,短距离(2米内)3D TOF:光照鲁棒性高,计算小,成本高点双目散斑结构光:不受光照影响数据训练时更鲁棒、多样、扩充数据:进行光线模拟,仿射变换。嵌入式人脸识别:512维度,yolo轻量级模型,模型进行裁剪和压缩输入:红外图和深度图..

2020-06-23 11:21:38 952 1

原创 自动驾驶简介及功能测试方法(笔记)

汽车四化:电动化、智能化、网联化、共享化。目的:减少交通事故; 解决交通拥堵; 解放驾驶员。国内政策:汽车强国上升为国家战略; 智能网联汽车标准体系; 统一测试场景、测试规程及通过条件,第三方检测机构进行自动驾驶功能检测验证。具体PPT讲义见此:智能驾驶系统简介及功能测试方法...

2020-06-10 10:14:33 4542 1

原创 anaconda3安装及Pycharm环境配置

1. 去官网下载anaconda3:anaconda3官网mac本选MacOS,选第一个Graphical installer(图形安装),下载安装包。之后同意,下一步,到安装成功。2. 终端配置anaconda3环境变量vi ~/.bash_profile#最后添加 替换为自己的路径export PATH="/Users/hao/anaconda3/anaconda3/bin:$PATH"source ~/.bash_profile验证:终端输入conda list,有

2020-06-05 17:19:20 617

原创 视频截取某段视频转图像C++

直接上代码:void Video2Images(char* video_path){ VideoCapture cap(video_path); float rate = cap.get(CV_CAP_PROP_FPS); long totalFrameNumber=cap.get(CV_CAP_PROP_FRAME_COUNT); cout<<"rate: "<<rate<<" "<<"totalFrameNumber

2020-06-03 17:56:19 357

原创 使用python调用C/C++动态链接库

有时要进行算法部署的加速,要把一些算法模块写成C/C++,如何混合编程,用python去调用C/C++呢?首先把算法用C/C++写好,然后打包算法的动态链接库,具体方法参考:需要注意:如果是C++,在代码前后加上extern "C" {C++代码函数}。//需要调用的C++程序就把声明写到这个extern "C"范围中如果是ubuntu下,生成动态链接库so之后开始python封装C/C++。话不多说,上例子:import ctypesimport cv2import num.

2020-06-02 18:45:36 514

原创 ubuntu下使用cmake打包算法动态链接库so 设置软链接

把自己的算法打包发给别人,部署上线,移植时需要把代码打包成动态链接库或可执行文件。如何打包呢?话不多说,上例子。先验证自己的算法和代码是OK的。编辑test.cpp:int main( int argc, char** argv) { Mat src = imread(argv[1]); chrono::steady_clock::time_point t1 = chrono::steady_clock::now(); int Result = ImgCheck(

2020-06-02 18:22:07 3433

原创 C/C++ opencv 图像处理 代码内存泄漏查找

不多说,上代码: CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* contour = 0; int flag = 0; cvFindContours(s_img, storage, &contour, sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); for( ; contour != 0; contour = contour-

2020-05-15 18:05:37 512

原创 ubuntu 内存泄漏 调试 valgrind

Ubuntu下的C/C++工程经常会遇到内存泄漏、阻塞、溢出等问题。进行问题的查找和问题代码的定位很重要。推荐 valgrind,终端开始安装:sudo apt-get install valgrind写好的代码生成可执行文件,用valgrind运行debug:valgrind --tool=memcheck --leak-check=full ./Test出来一堆调试信息,拉到最后看leak summary:==10216== ==10216== LEAK SUMMARY:

2020-05-15 17:54:11 781

原创 opencv里Mat和IplImage*相互转换 亲测好用 备用

//Mat 转IplImage*Mat img_src;IplImage temp = (IplImage)img_src;IplImage *src = &temp;//IplImage* 转 MatIplImage * img;Mat img_Mat = cvarrToMat(img);

2020-05-08 18:03:08 366

原创 MacBook Pro长时间待机后没有声音问题

MAC电脑有时打开后没有声音,这是MAC OS系统的一个软件BUG,不是硬件问题,可以通过如下操作解决。 在启动台下搜索 活动监视器,在活动监视器窗口内右上角搜索框搜索audio,可以搜索到coreaudiod进程,选中此进程,点击左上角的叉号退出。然后声音就出来了。如下图:...

2020-03-03 15:46:53 2420 1

原创 RKSLAM: Robust Keyframe-based Monocular SLAM for Augmented Reality 论文解读 demo体验

RKSLAM的工作介绍和论文、demo下载见浙大章国锋教授组官网,见链接:http://www.zjucvg.net/rkslam/rkslam.html论文解读:1. 跟踪采用基于多单应性矩阵(multi-homography)的方法,为了在移动端做到实时,放弃了sift特征,换成了FAST corners,耗时大大减少;2. 姿态优化采用了滑动窗的方法,借鉴了一般的VI-SLAM的...

2020-01-16 17:56:07 1187

原创 ubuntu18 安装 opencv viz 可视化模块

安装好opencv 和 opencv_contrib后,需要自己安装opencv viz可视化模块。建议在安装opencv 的build文件夹下操作,放到一起。终端操作:sudo apt-get isntall libvtk7-devsudo cmake -DWITH_VTK=ON ..sudo make -j2sudo make install...

2020-01-16 16:54:59 537

原创 Ubuntu18 安装 Sublime Text3

终端命令行安装:wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -sudo apt-get install apt-transport-httpsecho "deb https://download.sublimetext.com/ apt/stable/" | sud...

2020-01-13 16:42:50 371

原创 Ubuntu18.04 安装编译 opencv3.4.2 和对应 opencv_contrib 含下载地址

0. 下载官网下载下载特别慢,百度云下载地址如下:链接: https://pan.baidu.com/s/1TIkhJimyH5fyGax2zxpqvw 密码: dzrt链接: https://pan.baidu.com/s/1EnmghESyJ3lwreNkJsaGtA 密码: 77mo1. 安装依赖sudo apt-get updatesudo apt-get up...

2020-01-13 16:38:13 1642 1

原创 MAC 地址 IP 查询

终端里 ifconfig找en0:里面 ether 的8d:86:91:c9:86:9a 和 inet的10.49.96.147故:MAC地址:8d:86:91:c9:86:9a,IP地址:10.49.96.147。

2020-01-10 10:14:21 367

hugin拼接开源软件包

hugin图像拼接开源软件安装包,Mac、linux、windows三个版本,翻墙下载不易,给个好评吧。

2020-11-18

波形发生器C51 5种波行

#define uchar unsigned char sbit ksaw=P1^0; //锯齿波按键. sbit ktran=P1^1; //三角波按键. sbit ksquare=P1^2; //方波按键. sbit ksin=P1^3; //正弦波按键. sbit ktx=P1^4; //梯形波按键 void delay( ); uchar code tab[128]={ 64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106, 109,111,113,115,117,118,120,121,123,124,125,126,126, 127,127,127,127,127,127,127,126,126,125,124,123,121, 120,118,117,115,113,111,109,106,104,102,99,96,94,91, 88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39, 36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1, 1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23, 25,28,31,33,36,39,42,45,48,51,54,57,60}; void delay( ) { uchar i; for(i=0;i<255;i++); } void saw(void) //锯齿波. { uchar i; while(1) { for(i=0;i<255;i++) P0=i; if(ksaw==0) delay( ); if(ksaw==0) { while(ksaw==0); break; } } } void tran(void) //三角波 { uchar i; while(1)

2011-05-20

C51 波形发生器 有注释 C语言

C51编程 用C编写 有注释,简单易懂 波形发生器 三角波 正弦波 方波 梯形波 锯齿波 祝你们好运 张毅刚版本的课程设计作业,9波形发生器

2011-05-20

空空如也

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

TA关注的人

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