自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huangkangying的专栏

Computer Vision

  • 博客(260)
  • 资源 (13)
  • 收藏
  • 关注

原创 ubuntu 16.04: cannot find -lvtkproj4

Run below command in bash:sudo ln -s /usr/lib/x86_64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/libvtkproj4.so

2021-09-23 19:21:42 326

原创 双目视觉(1) -- 坐标系变换

Stereo vision summary相机坐标系与像素坐标系之间的关系通过内参矩阵z(uv1)=K(XYZ)z\begin{pmatrix}u\\ v\\ 1\end{pmatrix}= K \begin{pmatrix}X\\ Y\\ Z\\\end{pmatrix}z⎝⎛​uv1​⎠⎞​=K⎝⎛​XYZ​⎠⎞​其中KKK为内参矩阵,(X,Y,Z)T(X, Y, Z)^T(X,Y,Z)T为相机坐标系下的点,(u,v,1)T(u,v,1)^T(u,v,1)T为像素坐标系下的

2020-12-16 19:39:35 2107

原创 浅谈FreeRTOS中vTaskSuspendAll()/xTaskResumeAll()临界区问题

在阅读FreeRTOS的源代码的时候,我无意中发现vTaskSuspendAll()这个函数居然没有进行临界区的保护,一开始我以为是个bug, 但仔细看一下注释,似乎这个问题已经被反馈给了作者,而作者是有意为之,这样做并没有任何问题。但其最终的原因是什么呢?我们先来看下FreeRTOS中vTaskSuspendAll()函数的具体实现:void vTaskSuspendAll( void ){ /* A critical section is not required as the varia

2020-11-24 21:47:26 8733 3

原创 Ubuntu 16.04为普通用户增加ttyACM读写权限

sudo echo KERNEL=="ttyACM*", OWNER="root", GROUP="users", MODE="0666" > /etc/udev/rules.d/my_usb_dev.rulessudo service udev restart

2020-11-24 20:45:43 1224

原创 USB2.0 Chirp J, Chirp K and SE0 state

J态, K态,SE0低速设备与高速设备的J/K态是相反的。下面主要介绍全速和高速设备。J态:DP = ‘1’, DM = ‘0’K态:DP= ‘0’, DM = ‘1’SE0 (Single-ended 0): DP = ‘0’, DM = ‘0’低速设备(Low speed)的空闲状态(Idle)是K态全速设备(Full speed)的空闲状态(Idle)是J态高速设备(High speed)的空闲状态(Idle)是SE0USB全速,高速切换 (Chirp Handshake)对于F

2020-10-09 17:52:21 2825

转载 USB OTG 学习笔记

https://www.cnblogs.com/cainiaoaixuexi/p/3994453.html仅仅看了半天SPEC写的笔记,有些乱,等调试完毕再次整理,思路不是很成熟,推测成分较多,可能有不对的地方,欢迎拍砖交流指正。1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Device,为连接时候的USB Device,设备的USB Hos...

2020-09-17 20:43:39 608

原创 YUV与RGB定点转换公式

ITU-R BT.601标准Video RangeFull RangeITU-R BT.709标准Video RangeFull Range

2020-09-11 19:09:54 780

原创 浅析相机FOV

最近试了很多sensor, 每次在选镜头时都对其提到的FOV参数一头雾水。不同的sensor要配不同的镜头,而不同的镜头由于焦距的不同,FOV也不一样。这其中有什么联系呢?FOV又分为HFOV(水平), VFOV( 垂直), DFOV(对角)。大部分镜头规格书上只提供一个FOV数值,具体如何对应上呢?要搞清上面的这些问题,首先需要把基本概念搞清楚。什么是FOV?FOV的全称是Field of View (视场角)。如Fig.1所示,如果成像平面的宽度(W)固定, FOV的大小直接由Focal Leng

2020-09-03 21:45:47 34415 5

原创 巧用awk快速拷贝ldd库文件依赖

写一个SHELL脚本,自动拷贝依赖的动态库。touch test.shdep=$( ldd $1 | awk '{if (match($3,"so")){print $3}}' ) cp -L -n $dep $2 -n: don’t overwrite, 不覆盖原有文件-L: follow symbolic link in source, 如果是软链接,则拷贝源链接文件这里awk会使用默认的空格分割符对ldd输出的每一行进行分割,如果分割出的第3个参数中含有"so",则将其赋值给d

2020-05-14 21:58:07 996

原创 解决ubuntu sudo更改LD_LIBRARY_PATH的问题

问题描述在ubuntu下面运行某个可执行文件遇到can't find xxx lib的时候,可以通过export LD_LIBRARY_PATH=xxx来解决,但如果这个可执行文件需要sudo权限时,以上的方法会失效。如何才能修改sudo下面的链接库地址呢?解决办法sudo env LD_LIBRARY_PATH=lib_path ./app_namelib_path: 需要链接的库的地址app_name: 需要运行的程序名称...

2020-05-14 20:41:53 4100 1

转载 JPEG算法解密

JPEG算法解密byjinchao图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本文件的话足够保存一部92万字的鸿篇巨著《红楼梦》,现如今互联网上绝大部分图片都使用了JPEG压缩技术,也就是大家使用的jpg文件,通常JPEG文件相对于原始图像,能够得到1/8...

2020-04-09 14:10:23 414

原创 Ubuntu 16.04: matlab has encountered an internal problem

在Ubuntu16.04下安装Matlab R2015b。安装完成后出现:Matlab has encountered an internal problem。点击详细信息后出现一堆dump log信息,大概意思是说libc库出现segmentation fault。程序crush了。解决办法:sudo apt-get install matlab-support出现对话框会...

2020-04-01 15:28:46 666

原创 USB系列(4) ULPI协议简介

什么是ULPI协议?ULPI协议的全称是UTMI+Low Pin Interface。从名字上就可以看出ULPI是UTMI的Low Pin版本。UTMI(USB2.0 Transceiver Macrocell Interface)是一种用于USB controller和USB PHY通信的协议。相对于ULPI,UTMI有更多的控制信号,支持8bit/16bit 数据接口。UTMI 接口信号...

2020-02-12 16:19:19 20246 2

原创 USB系列(3) Windows USB枚举过程

枚举是决定何种设备连接到总线的过程,同时也决定了何种参数需要配置给这种设备,这些参数包括:功率,端点数量,产品分类等等。在写USB firmware的时候要对枚举过程中Host的response了然于胸,而不仅限于USB spec中的通用描述。不同的OS在USB枚举过程的具体操作会有一些差异,下面主要介绍的是Windows操作系统在USB设备枚举过程中Host的具作操作步骤:Host/Hub...

2020-02-04 15:56:18 1136

原创 Ubuntu 16.04安装Vim8

安装Vim8步骤:增加PPAsudo add-apt-repository ppa:jonathonf/vim更新apt, 安装Vimsudo apt updatesudo apt install vim卸载步骤:sudo apt install ppa-purge && sudo ppa-purge ppa:jonathonf/vim...

2020-01-19 18:23:37 1564

原创 USB系列(2)协议简介

USB通信的层次结构Frame 从时间的维度看,USB通信是由一系列的帧组成的Transaction 每一帧又可以分成不同的TransactionIN/Read/Upstream Transaction 输入(Host)事务OUT/Write/Downstream Transaction 输出(Host)事务Control Transaction 控制事务Packet 每一次...

2019-12-16 22:52:13 1656

原创 USB系列(1) NRZI及Bit Stuffing

什么是NRZI?NRZI的全称是Non-Return-to-Zero, Inverted, 翻译成中文是翻转不归零码。什么意思呢,先看spec截图:不归零的意思是编码方式相对于归零码(正电平,负电平,0电平)而言,还是只有两种电平,不用每次编码完都回到0电平。翻转是指当出现逻辑0时,电平翻转,因此不需要负电平来表示0。总结一下编码方式:0变1不变为什么要用NRZI?没有归0步骤...

2019-12-15 21:13:15 1780

转载 示波器x1档与x10档的区别

原文链接:https://www.cnblogs.com/hcr1995/p/9913633.html示波器探头有X1和X10档,当测量一个信号时应该如何选择?1.先我们看它们的区别?X1档,表示信号没有经过衰减进入示波器X10档,表示信号衰减10倍进入示波器(当示波器也设置为X10档,直接读数即可,当示波器设置为X1档,示波器上读数应扩大10倍才为真实值)我们来看一下示...

2019-12-05 22:39:12 6400

原创 C语言陷阱之Enum

问题先看代码:typedef enum { xxx_inv = -1, xxx_0 = 0, xxx_1 = 1, xxx_max = 64,} enum_t;enum_t idx;for (idx = 0; idx < 256; idx++) { // do something with idx func(idx);}上面的代码有问题吗?如果你觉得没有...

2019-09-29 18:40:59 536

原创 __attribute__((packed,aligned(4)))及其相关定义的对比

使用C语言操作硬件寄存器的精髓在于结构体指针的灵活应用,而结构体的定义一般又需要对数据成员在内存中如何存放有精准的把握。这时候就需要一些属性关键字来修饰所定义的结构体,使结构体中的成员变量按我们想要的规则存放。对于gcc而言,__attribute__就是这样一个关键字。在读一些C语言开源代码的时候会经常看到一些复杂的struct定义之后跟着__attribute__的选项用来指定struct的...

2019-09-23 11:28:50 6386 3

转载 arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

https://www.veryarm.com/296.html命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch- 体系架构,如ARM,MIPS vendor- 工具链提供商 os- 目标操作系统 eabi- 嵌入式应用二进制接口(Embedded Application Binary Interface)根...

2019-06-27 10:18:55 365

原创 ARM MMU入门简介

最近用到ARM MMU相关的东西,发现下面这篇博客写得不错:https://blog.csdn.net/gameit/article/details/13169515

2019-06-09 16:44:14 1043

原创 关于-fPIC, -fpic, -fpie, -fPIE的一点理解

最近在编译动态库文件,用到-fPIC编译选项。查了下GNU的手册:-fpicGenerate position-independent code (PIC) suitable for use in a shared library, if supported for the target machine. Such code accesses all constant addresses th...

2019-05-24 18:16:48 49541 1

原创 NDK gnustl_static编译问题

当使用较新的NDK编译带OpenCV的工程时会遇到编译问题。android undefined reference to 'std::basic_ostream<char, std::char_traits<char> >有两种解决办法:(1)在你的gradle中加入如下代码,这只对NDK 18rc以下的版本有效 externalNativeBu...

2019-05-09 21:59:53 7552 1

原创 'Insufficient permissions' error on `adb shell` command on 16.04

最近在ubuntu16.04上调试Android设备,出现’Insufficient permissions’ error。查了一下,需要修改udev rules.$ sudo touch /etc/udev/rules.d/51-android.rules用vim打开并加入如下代码:SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"...

2019-05-07 18:35:59 131

原创 ncnn编译android版找不到CMAKE_C_COMPILER

在ubuntu 16.04下编译android出错,提示cmake版本过低以及找不到CMAKE_C_COMPILER。最简单有效的解决办法:直接用Android Sdk里面的cmake.$ sudo mv /usr/bin/cmake /usr/bin/cmake.bak$ sudo ln -s /home/xxx/Android/Sdk/cmake/3.6.4111459/bin...

2019-04-24 21:13:35 979

原创 ubuntu16.04 vnc server最简安装方式

由于ubuntu 16.04采用unity图形化界面,安装其它的vnc server需要安装很多的依赖库,甚至有的需要改成gnome或xfce桌面。这样的改动风险很大,有时会导致以前的很多程序不能正常使用。x11vnc依赖很小,不需要改变unity桌面环境。下面的shell可以一键布署,简单好用。############################################ Ste...

2019-04-11 22:53:58 5418

原创 TypeError: softmax() got an unexpected keyword argument 'axis'

这个错误是由于tensorflow与keras的版本不兼容导致的:有两种解决办法:1. 更改tf和keras的版本:It works with keras=2.0.8, tensorflow=1.3.0 without upgrading/degrading2. 直接改源码,找到报错的地方,修改return tf.nn.softmax(x, axis=axis)改成:...

2019-04-09 17:03:41 306

原创 ORB SLAM2 代码分析(2)

Tracking详解GrabImageRGBD:Covert color RGB to Gray构造Frame调用Track()构造FrameFrame类一共有5个构造函数:默认构造Frame::Frame();拷贝构造Frame::Frame(const Frame&amp; frame);用于双目的构造函数Frame::Frame(const cv:...

2019-03-13 22:10:54 195

原创 ORB SLAM2 代码分析(1)

简介ORB-SLAM只支持单目相机,ORB-SLAM2在ORB-SLAM的基础上加入了RGBD和双目相机的支持。相对于ORB-SLAM, ORB-SLAM2的主要贡献如下:这是一个同时支持单目,双目,RGBD的开源SLAM系统通过BA对RGBD进行优化,效果优于ICP通过使用近/远距离的双目观测及单目观测,使得双目slam效果优于目前的state-of-the-art支持localiz...

2019-03-05 19:18:23 466

转载 回环检测

https://zhuanlan.zhihu.com/p/45573552在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累积误差。如下图所示,我们的位姿约束都是与上一帧建立的,第五帧的位姿误差中便已经积累了前面四个约束中的误差。但此时,如果我们发现第五帧位姿不一定要由第四帧推出来,还可以由...

2019-03-01 16:26:01 5672

原创 TLC59108 arduino驱动示例

以下程序可以直接跑在arduino UNO开发板上:#include &lt;Wire.h&gt;#define HW_RESET_PIN 8void test_i2c(){ Wire.beginTransmission(0x48); Wire.write(0x00); Wire.write(0x01); byte x = Wire.endTransmi...

2019-02-28 17:47:41 895

转载 一步步看懂g2o代码

https://mp.weixin.qq.com/s?__biz=MzIxOTczOTM4NA==&amp;mid=2247486858&amp;idx=1&amp;sn=ce458d5eb6b1ad11b065d71899e31a04&amp;chksm=97d7e81da0a0610b1e3e12415b6de1501329920c3074ab5b48e759edbb33d264a73f1a9...

2019-02-21 19:06:31 2838 2

原创 OpenCV Cross Compile

Steps:Clone latest openCV source from github: git clone https://github.com/opencv/opencv.git Create a build directory: mkdir ./opencv/platforms/linux/arm_build Run cmake inside the build directory...

2018-12-09 20:22:38 1262

转载 How to use vimdiff to solve conflict?

Below is the sample procedure to use vimdiff for resolve merge conflicts. Based on this linkStep 1: Run following commands in your terminalgit config merge.tool vimdiffgit config merge.conflicts...

2018-11-23 10:42:36 251

原创 Tensorflow compile error fixes:

Error: unexpected keyword argument ‘keepdims’Fix: I got the same error, and I found that according to the TensorFlow docs, the option has to be keep_dims instead of keepdims in the latest version, a...

2018-11-19 22:38:35 191

原创 pip3 don't work under ubuntu 16.04

pip3 don’t work under ubuntu 16.04Uninstall python3-pipsudo apt-get purge python3-pipClean everything

2018-11-05 19:58:25 126

原创 Tmux configuration

Below is my tmux configuration:# fix vim color issue under tmuxset -g default-terminal "screen-256color"# enable mouse, press 'shift' when using mouse's middle keyset -g mouse on# use vim shor...

2018-08-24 21:15:15 247

转载 Ubuntu 16.04 安装OpenGL

链接:https://www.jianshu.com/p/e4a90503d4a6配置步骤 使用 apt 安装 OpenGL 和开发包 sudo apt-get install build-essential libgl1-mesa-devsudo apt-get install freeglut3-devsudo apt-get install libglew-dev lib...

2018-08-24 17:20:13 38867 4

转载 GNU Screen快捷键

Screen常用快捷键如下C-a ? -&amp;gt; 显示所有键绑定信息C-a c -&amp;gt; 创建一个新的运行shell的窗口并切换到该窗口 C-a n -&amp;gt; Next,切换到下一个 window C-a p -&amp;gt; Previous,切换到前一个 window C-a 0..9 -&amp;gt; 切换到第 0..9 个 window Ctrl+a [Space] -&amp;gt; 由...

2018-08-22 16:36:27 748

USB UVC + ACM Descriptor

UVC+ttyACM的设备描述符, UVC设备支持I420格式,两种设备在Win/Linux下都为免驱设备

2020-11-24

Ubuntu16.04 Kernel 4.15升级包

Ubuntu 16.04对Kernel升级包,下载后直接运行start.sh,傻瓜式安装,升级后可支持新的Intel 8700的graphic.

2019-10-31

tlc59108.zip

使用TLC59108可以驱动LED, 也可以用来驱动VCSEL激光器,该示例基于Arduino工程,可以直接运行。

2019-05-17

YouCompleteMe configuration file

The configuration file of YouCompleteMe Vim plugin. Please put it under you project folder.

2017-12-20

YouCompleteMe Windows下编译通过插件(可直接放在vundle下使用)

Windows下编译通过的YCM: python2.7, VS2015, 可直接放在vundle下使用。

2017-12-20

Windows C++ UART Library Demo (VS2015)

Windows C++ UART Library Demo 示例代码,亲测可用。文件中带VS2015工程,可以直接编译使用。

2017-06-22

USBasp 驱动安装程序(傻瓜式)

USBasp驱动安装程序,支持Win10 x64. 如果想要使用Arduino,请安装libusbK (v3.0.7.0)

2017-06-02

OpenCv ippicv 文件

OpenCv ippicv 文件, 解压后放在3rdparty文件夹下面即可

2017-04-07

Intel I-219V 网卡驱动

Intel I-219V 网卡驱动 源代码 Ubuntu 16.04编译通过

2017-04-07

EDD 4.0 (BIOS Enhanced Disk Spec 4.0)

BIOS Enhanced Disk Spec 4.0

2014-12-18

EDD 1.1 (Enhanced Disk Drive Spec 1.1)

BIOS Enhanced Disk Spec 1.1

2014-12-18

深入理解计算机系统(computer systems)(第2版)

深入理解计算机系统(computer systems)(第2版), PDF格式

2013-01-11

pci local bus specification2.2 & 3.0

pci local bus specification 2.2 & 3.0

2009-10-31

空空如也

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

TA关注的人

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