自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

微信公众号:Python与计算机视觉

人最大的痛苦,就是无法跨越知道和做到的鸿沟

  • 博客(21)
  • 资源 (7)
  • 论坛 (1)
  • 收藏
  • 关注

原创 MMdetection3d环境搭建、使用MMdetection3d做3D目标检测训练自己的数据集、测试、可视化,以及常见的错误

#1 环境搭建##1.1 从docker开始搭建环境1、克隆代码git clone https://github.com.cnpmjs.org/open-mmlab/mmdetection3d.git2、下载好代码后进入代码目录cd mmdetection3d3、开始使用docker构建mmdetection3d的镜像环境docker build -t mmdetection3d docker/构建mmdetection3d镜像的过程中可能会报错W: GPG error: h

2021-04-29 14:58:13 202 8

原创 python利用opencv自带的颜色查找表(LUT)进行色彩风格变换

#1 LUT颜色查找表介绍Look Up Table(LUT)查找表1、颜色查找表就是一种像素值映射的表,如下是一个对比度改变图像的查找表,从图中可以知道:原图中像素值为40的像素,经过查找表映射后值变为90原图中像素值为30的像素,经过查找表映射后值变为10当原图所有的像素值都经过查找表映射后就会得到一张对比度变高的图像有人可能就会问了,那不就是对图中的每个像素值进行了计算吗,没错,就是进行了进算,但是查找表中的计算是提前计算好的,你只需要知道40映射过去得到的值是90,甚至不需要知

2021-04-23 18:49:19 207

原创 使用python的eval()函数循环调用某些模块中的一些方法和属性

1 使用场景说明1、例如,我们要查看opencv中有哪些颜色查找表(LUT),查看如下;cv2_luts = [lut for lut in dir(cv) if lut.startswith("COLORMAP_")]print(f"opencv lut colormap number: {len(cv2_luts)}")print(f"opencv luts colormap: {cv2_luts}")输出结果如下:opencv lut colormap number: 22opencv

2021-04-23 16:57:18 38

原创 cv2.solvePnP(objp, imgp, K, D, flags=cv2.SOLVEPNP_ITERATIVE)使用LM优化迭代算法介绍

1、在opencv中的slovePnP函数的定义,我们可以看到关于flags参数的相关的选择及其含义:flags=cv2.SOLVEPNP_ITERATIVESOLVEPNP_ITERATIVE迭代方法基于Levenberg-Marquardt优化。 在这种情况下,函数会找到一个使重新投影误差最小的位姿(pose),该位姿是观察到的投影imagePoints与使用projectPoints将objectPoints投影的点之间的平方距离的总和。2、Levenberg-Marquardt法(LM法

2021-04-22 19:55:03 55

原创 AprilTags二维码的检测与应用

AprilTags二维码的检测与应用1 AprilTags介绍2 使用python库包apriltag对AprilTag进行检测2.1 python模块apriltag的安装2.2 python模块apriltag的测试用例3 AprilTags二维码检测,以及绘制检测框1 AprilTags介绍AprilTag官网:https://april.eecs.umich.edu/software/apriltag1、AprilTags类似与二维码QR codes(Quick Response Code

2021-04-22 15:05:33 127

原创 python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容

python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容1 pyzbar二维码检测模块1.1. pyzbar模块介绍1.2 pyzbar模块的安装1.3 pyzbar模块测试用例2 python3 + opencv +pyzbar实时检测二维码,并绘制二维码的矩形框1 pyzbar二维码检测模块pyzbar的github主页:https://github.com/NaturalHistoryMuseum/pyzbarpyzbar的pypi主页

2021-04-22 14:41:12 452 10

原创 罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化

罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化1 罗德里格斯公式推导2 cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化1 罗德里格斯公式推导参考:https://blog.csdn.net/qq_22235957/article/details/80461290 # 维基百科翻译参考:https://blog.csdn.net/q583956932/article/details/78933245参考:https://blog.cs

2021-04-21 20:10:17 62

原创 python实现:旋转矩阵转换为四元数

1 python实现旋转矩阵转换为四元数例如:下面把3x3的旋转矩阵转换为四元数from pyquaternion import Quaternionrotate_matrix = [[-0.0174524064372832, -0.999847695156391, 0.0], [0.308969929589947, -0.00539309018185907, -0.951056516295153], [0.95091166578

2021-04-21 17:35:19 51

原创 根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现

根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现1 旋转矩阵转换为欧拉角(Euler Angles)2 欧拉角转换为旋转矩阵相机标定过程中,我们会得到一个3x3的旋转矩阵,下面是我们把旋转矩阵与欧拉角之间的相互转换:1 旋转矩阵转换为欧拉角(Euler Angles)1、旋转矩阵是一个3x3的矩阵,如下:R=(r11r12r13r21r22r23r31r32r33)R=\left(\begin{a

2021-04-21 16:39:30 79

原创 右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)

1 右手坐标系右手坐标系如下图:X:拇指指向X轴Y:食指指向Y轴Z:中指指向Z轴可能很多人还是记不住,我个人总结两个小技巧,很容易牢记右手坐标系:X、Y、Z的顺序刚好也是对应手指大拇指、食指、中指也是顺序排列的做一个右手坐标系的姿势,然后让食指(Y轴)指向别人的姿势,很容易就可以把右手坐标系画出来如下,是我画的右手坐标系:1.1 旋转90度是什么样的例如X轴顺时针旋转90度,为了验证这个旋转结果是否正确,我们需要弄清楚这个90度是怎么旋转的:可以从原点(0,0,0)向X轴

2021-04-21 16:02:56 110 2

原创 python中的os.mkdir和os.makedirs的使用区别,以及如何查看某个模块中的某些字母开头的属性方法

1 os.mkdir的使用os.mkdir(dir_name):用于新建文件夹,当要新建的文件夹已经存在的时候,就会报错:FileExistsError: [Errno 17] File exists:因此,我们一般在新建一个文件夹的时候,会和os.path.exists()集合使用,如下:1、判断一个文件夹是否存在,如果不存在就新建它,如果已经存在就跳过:dir_name = "./images"if not os.path.exists(dir_name): os.mkdir(di

2021-04-20 16:45:59 33

原创 python2中使用中文报错:SyntaxError: Non-ASCII character

1、在使用python2作为解释器的时候,如果运行的python程序包含中文字符,就会报错:SyntaxError: Non-ASCII character2、解决方式(新手)在文件首行添加:#coding=utf-8(官方推荐)在文件首行添加:#-*- coding:utf-8 -*-...

2021-04-16 17:02:51 19

原创 使用ros标定相机的内参和外参

1 安装依赖1、安装依赖rosdep install camera_calibration注意:我的系统是Mint19.04,因此安装的过程中会报如下错误:(base) shl@zhihui-mint:~$ rosdep install camera_calibrationERROR: the following packages/stacks could not have their rosdep keys resolvedto system dependencies:camera_

2021-04-16 14:44:00 34

原创 ROS快速入门使用

文章目录:1 ROS的安装2 ROS的文件系统命令rosls、roscd、rospack find的快速使用2.1 rosls:快速列举ros文件目录下的文件2.2 roscd:快速切换到ros文件系统的指定目录2.3 rospack find <文件名/目录名>查找指定文件或目录的路径3 创建ROS程序包3.1 一个catkin程序包有哪些文件组成?3.2 在catkin工作空间中的程序包3.3 创建一个catkin程序包3.4 查看程序包的直接依赖关系(一级依赖)3.5 查看程序包的间接依赖

2021-04-14 19:59:36 47

原创 Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用

1 dpkg的使用1、查看dpkg有哪些命令参数:dpkg --help 或 man dpkg(base) shl@zhihui-mint:~$ dpkg --help用法:dpkg [<选项> ...] <命令>命令: -i|--install <.deb 文件名> ... | -R|--recursive <目录> ... --unpack <.deb 文件名> ... | -R|--r

2021-04-14 10:56:29 68

原创 python中的二进制、八进制、十六进制的相互转换

1 二进制、八进制、十六进制 转到 十进制使用int(str, n)即可完成二进制、八进制、十六进制到十进制的转换:str:是要转换的进制具体数,类型字符串n:是要转换的进制,类型整型1.1 二进制 转 十进制int(str_b, 2)>>> int('0101',2)5>>> b0101=22+20=5b0101=2^2+2^0=5b0101=22+20=51.2 八进制 转 十进制int(str_0, 8)>>&

2021-04-13 20:23:07 36

原创 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理及项目代码具体使用——旷视

1 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理这是旷视做的一个关于2D激光雷达和相机的联合标定算法,在看这个标定算法之前,你可以先看下关于相机的内参标定原理该方法基于 ROS 的单线激光和相机外参数自动标定代码。标定原理如下图所示,相机通过二维码估计标定板平面在相机坐标系下的平面方程,由于激光点云落在平面上,将点云通过激光坐标系到相机坐标系的外参数 TclT_{cl}Tcl​ 转换到相机坐标系,构建点到平面的距离作为误差,使用非线性

2021-04-13 18:43:06 87

原创 python2 中使用pip2 install package_name的时候报错:AttributeError: ‘int‘ object has no attribute ‘endswith‘

1 错误说明1、在python2的环境下使用pip2 install安装库包的时候报错:AttributeError: 'int' object has no attribute 'endswith'2、具体报错信息如下(base) shl@zhihui-mint:~/tools$ pip2 install pyquaternionException:Traceback (most recent call last): File "/usr/lib/python2.7/dist-packag

2021-04-13 16:06:17 56

原创 Linux桌面环境与命令行环境切换快捷键,以及linux 图形界面 X Server 关闭 启动

1 Linux桌面环境与命令行环境切换快捷键1、从linux桌面环境切换到命令行终端Ctrl+Alt+F1~F6:进入虚拟终端或虚拟控制台,其中F1~F6对应与6个不同的虚拟终端。进入终端输入用户名和密码即可登录使用!我一般使用的是Ctrl+Alt+F4进入终端!一般我们需要关闭桌面的X Server的时候会切换到虚拟终端中,如果你在linux中安装NVIDIA的驱动,那你可能就遇到果这种情况!2、从虚拟终端返回到图形界面Alt+F7: 由虚拟终端返回到图形化界面2 linux 图形界

2021-04-07 14:36:36 81

原创 进入docker容器之后,找不到rosbag命令(ros已经安装)

1 进入docker容器之后找不到rosbag命令1、首先我启动一个docker container,然后我又开启一个这个容器的终端:docker container exec -it e7f67e328609 /bin/bash(base) shl@zhihui-mint:~/shl_res/4_SLAM/sensor_calib$ docker container psCONTAINER ID IMAGE

2021-04-07 14:28:07 43

原创 linux下使用ffmpeg命令录屏桌面

1 获取自己的屏幕分辨率之所以要获取屏幕的分辨率,是因为录屏需要选择录制的范围!1、在linux中可以直接使用xrandr命令查看屏幕当前分辨率(参考)xrandrbase) shl@zhihui-mint:~$ xrandrScreen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767DVI-D-0 disconnected (normal left inverted right x axis y axis)HDMI

2021-04-01 17:20:19 96

深度学习笔试100题.pdf

深度学习笔试题目,用于练习。深度学习笔试题目,用于练习.深度学习笔试题目,用于练习 .深度学习笔试题目,用于练习.重要的事情多说几遍,你懂得

2019-07-16

速腾robosense16线激光雷达驱动

速腾robosense16线激光雷达驱动

2021-05-07

LD06单线激光雷达驱动 catkin_single_laser.zip

catkin_single_laser.zip

2021-05-07

pointcloud_projection_test_data.zip

pointcloud_projection_test_data.zip

2021-04-19

chessboard_images.zip

chessboard_images.zip

2021-04-17

算法图解pdf

算法图解,这本书很好的讲解了常见的数据机构,例如数组、链表、散列表,图、广度优先搜索、动态规划、贪心算法、K近邻算法等,以图解的形式去解释这些算法,使其看着不是那么的晦涩难懂,很适合入门,其中算法的实现是用Python原因实现的

2018-05-04

机器学习实战代码

机器学习实战代码

2018-03-08

随海亮的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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