- 博客(62)
- 资源 (2)
- 收藏
- 关注
原创 Automatic panorama stitching of multiple unordered images
SummaryThis paper deals with the problem of automatic panoramic image stitching of multiple groups of disordered images. 1D problem (single axis rotation) is studied. Previous approaches have used human input or constraints on image sequences to build ma
2022-05-09 14:56:53
876
1
原创 Camera and image--pinhole imaging model and coordinate system--coordinate system conversion
The process of three-dimensional reconstruction using image sequences is equivalent to a process of restoring two-dimensional images composed of many pixels to three-dimensional space. By understanding the entire projection process, it is easy to understan
2022-05-09 14:54:25
618
原创 Visual Odometry and Depth Calculation--Epipolar Geometry--Direct Method--PnP
A. Epipolar geometry and triangulationThe epipolar geometry mainly adopts the feature point method, such as SIFT, SURF and ORB, etc. to obtain the feature points corresponding to two frames of images. As shown in Figure 1, let the first image be and th
2022-05-09 14:52:07
854
原创 基于深度学习的深度图与位姿估计
深度学习目前已经进入快速发展的时期。在深度学习之前,计算机视觉领域都是采用手工的方式提取图像特征,这些特征都比较明显。深度学习主要代表就是神经网络,尤其是卷积神经网络在数字图像处理中表现出了优越的性能。这主要是因为神经网络可以提取图像中的深层次特征,通过神经网络端到端的学习可以使神经网络自动去学习计算机需要关注的特征。基于深度学习的深度估计以及相机自我运动估计,是使用卷积神经网络进行端到端的学习。深度估计与相机自我运动估计通常分为两个不同的网络进行端到端的学习。其中深度估计的网络采用典型的编解码结构,网
2021-11-09 20:39:41
4897
原创 视觉里程计与深度计算--对极几何--直接法--PnP
A. 对极几何与三角测量对极几何主要采用特征点法,如SIFT、SURF和ORB等获取两帧图像对应的特征点。如图1所示,设第一幅图像为 第二幅图像为 。图1 对极几何与三角测量示意图三维空间中的一点 在两幅不同视角图像下的投影分别为, 。以相机开机时拍摄第一帧图像时的相机坐标系预定义为世界坐标系,则两幅图像的投影方程式分别为: (2-13) (2-14)由...
2021-11-09 20:32:38
2759
原创 相机与图像--小孔成像模型与坐标系--坐标系转换
利用图像序列进行三维重建的过程,相当于把一张张由很多像素组成的二维图像还原到三维空间中的一个过程。通过了解整个投影的过程,就可以很容易理解如何利用图像进行三维重建,以及三维重建中的关键步骤是什么。该小节主要讲述单目相机的投影过程。A. 小孔成像模型与坐标系相机拍摄图像的过程可以简化成小孔成像的一种形式,利用这种形式可以很容易得到相机模型的数学表达式。通过相机的成像方式及其数学表达式,可以看出三维场景和图像中每一个像素之间的映射关系。通过这种映射关系,就可以将图像中的像素还原到三维空间中。若把一系列.
2021-11-09 19:59:46
10922
2
原创 一些图片按照一定帧率拼接成视频
整个程序比较简单,设置好图片路径,视频输出路径,图片数量和图片尺寸就可以了import cv2import os#图片路径im_dir = './road_29/'#输出视频路径video_dir = './road_29.avi'#帧率fps = 30#图片数num = 240#图片尺寸img_size = (2432,705)#fourcc = cv2.cv.CV_FOURCC('M','J','P','G')#opencv2.4fourcc = cv2.VideoW
2020-08-15 10:00:54
351
原创 将.mhd的冠脉切片转化成3D的形式
需要安装vtk工具import vtkdef show(fileName): colors = vtk.vtkNamedColors() # colors.SetColor("SkinColor", [255, 125, 64, 255]) colors.SetColor("SkinColor", [204, 0, 0, 255]) colors.SetColor("BkgColor", [51, 77, 102, 255]) # Create the
2020-08-15 09:58:17
263
原创 Ubuntu16.04 快速删除文件夹以及其下文件夹中指定类型的文件
以删除.png格式为例find ./ -name "*.png" | xargs rm
2020-05-27 18:56:23
2936
原创 Ubuntu16.04安装高版本cmake
在Ubuntu16.04默认安装的cmake版本为3.5.x,可通过一下命令,查看版本。cmake --version有时需要安装高版本的cmake。1.卸载旧版本apt-get autoremove cmake2.以安装3.12.3版本为例$ sudo apt-get install build-essential$ wget http://www.cmake.o...
2020-01-08 14:42:01
187
原创 ubunt16.04 CUDA9 编译orb_slam2一些问题记录
主要需要注意的是opencv以及Eigen的版本问题源码安装opencv3.2的时候,会出很多问题,可以按照下面的博客进行源码的安装https://blog.youkuaiyun.com/qq_40755643/article/details/96437720eigen的版本过高会报好多的警告,让人很讨厌,需要把Eigen的版本降到Eigen3.2.1以下,下面是官方的链接http://eig...
2020-01-08 10:13:15
324
转载 Ubuntu16.04 源码安装Opencv3.2.0
https://blog.youkuaiyun.com/qq_40755643/article/details/964377201.下载opencv3.2.0安装包,进入官网:http://opencv.org/releases.html,选择 3.2.0 版本的 source , 下载 opencv-3.2.0.zip。2.安装opencv需要的一些库,能安装的尽量都安装上:sudo ...
2020-01-07 21:46:12
282
原创 Ubuntu16.04卸载opencv3.2.0并源码安装opencv4.0.1与opencv_contrib4.0.1
1.卸载原有opencvcd opencv-3.2.0/buildsudo make uninstallsudo rm -r /usr/local/include/opencv2sudo rm -r /usr/local/include/opencvsudo rm -r /usr/include/opencvsudo rm -r /usr/include/opencv2sud...
2019-12-16 16:11:00
727
原创 Ubuntu16.04卸载cuda8.0安装CUDA10.1与cudnn7.6.5(deb格式)
之前电脑有安装cuda8,如果是第一次安装cuda,需要关闭第三方显卡驱动,参照https://blog.youkuaiyun.com/TFZ941214/article/details/103022779准备cuda与cudnn的文件cuda下载地址http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers...
2019-12-15 19:26:19
1100
原创 Ubuntu16.04安装CUDA8.0与cudnn5.1(deb格式)
版本是这样的cuda历史版本下载地址(https://developer.nvidia.com/cuda-toolkit-archive)cudnn下载地址(https://developer.nvidia.com/rdp/cudnn-archive)Step 1 关闭第三方显卡驱动(关闭显卡驱动之前CUDA8.0与cudnn5.1的包都要准备好,关闭完显卡驱动,重启电脑后,字体会...
2019-11-12 10:12:35
950
原创 openCV编程基础27--数字验证码识别
OpenCV+Tesserct-OCROpenCV预处理Tesserct-OCR验证码识别import cv2 as cvimport numpy as npfrom PIL import Imageimport pytesseract as tessdef recognize_text(): gray = cv.cvtColor(src, cv.COLOR_BGR2...
2019-09-09 20:02:50
358
原创 openCV编程基础26--人脸检测
人脸检测需要使用人脸检测分类器,由于opencv的安装是用pip安装的,所以缺少人脸检测分类器,可在以下链接下载。https://github.com/opencv/opencv下载完成后解压,将文件夹,随便放在一个地方,记住haarcascade_frontalface_alt_tree.xml的地址检测图相中的人脸import cv2 as cvimport numpy...
2019-09-09 19:06:34
254
原创 openCV编程基础25--分水岭分割算法
基于距离的分水岭分割流程输入图像>灰度>二值>距离变换>寻找种子>生成Marker>分水岭变换>输出图像import cv2 as cvimport numpy as np# 分水岭算法def watershed_image(): print(src.shape) blurred = cv.pyrMeanShiftFilt...
2019-09-09 16:06:01
358
原创 openCV编程基础24--其他形态学操作
其它形态学操作顶帽:原图像与开操作之间的差值图像黑帽:闭操作图像与源图像的差值图像形态学梯度:基本梯度>基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有被称为基本梯度。内部梯度>是用原图像减去腐蚀之后的图像得到差值图像,称为图像的内部梯度外部梯度>图像膨胀之后再减去原来的图像得到的差值图像...
2019-09-09 15:24:46
235
原创 openCV编程基础23--开操作闭操作
开操作(Open)闭操作(Close)图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。主要是应用在二值图像分析中,灰度图像亦可。开操作=腐蚀+膨胀,输入图像+结构元素闭操作=膨胀+腐蚀,输入图像+结构元素开闭操作作用去除小的干扰块-开操作填充闭合区域-闭操作水平或者垂直线提取import cv2 as cvimport numpy as np# 图像的开闭操...
2019-09-08 20:41:38
528
原创 openCV编程基础22--腐蚀与膨胀
主要功能:对彩色/灰度/二值图像进行腐蚀与膨胀运算腐蚀的作用对象大小减少一个像素(3*3)平滑对象边缘弱化或者分割图像之间的半岛型连接膨胀的作用对象大小增加一个像素(3*3)平滑对象边缘减少或者填充对象之间的距离import cv2 as cvimport numpy as np# 腐蚀def erode_demo(image): print(i...
2019-09-08 13:13:57
264
原创 openCV编程基础21--对象测量
主要功能:1.找目标的轮廓2.计算轮廓的面积3.计算轮廓外接矩形并把绘制出来4.计算长宽比5.计算轮廓的几何矩6.找轮廓的中心位置并绘制出来7.多边形拟合import cv2 as cvimport numpy as np# 对象测量# 计算每个轮廓的弧长和面积 单位是像素# 多边形拟合def measure_object(image): g...
2019-09-06 16:05:41
489
原创 openCV编程基础20--轮廓发现
功能:检测轮廓,填充轮廓import cv2 as cvimport numpy as np#轮廓发现def contous_image(image): dst = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) ret, binary = cv.t...
2019-09-05 16:34:37
174
原创 openCV编程基础19--圆检测
功能:实现圆的检测import cv2 as cvimport numpy as np# 圆检测def detect_circles_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 100) cimage = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) circles...
2019-09-05 16:11:12
305
4
原创 openCV编程基础18--直线检测
功能:实现图片中的直线检测import cv2 as cvimport numpy as np#霍夫直线检测def line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lin...
2019-09-05 15:40:55
410
转载 视觉SLAM编程基础1.3--visualizeGeometry
主要功能:各种角度之间的等价转化及可视化visualizeGeometry.cpp#include <iostream>#include <iomanip>using namespace std;#include <Eigen/Core>#include <Eigen/Geometry>using namespace Eig...
2019-09-04 21:03:30
956
2
转载 视觉SLAM编程基础1.2--eigenGeometry
主要功能:各种旋转和平移的表示旋转矩阵/旋转向量/变换矩阵构成欧拉角/四元数以及它们之间的相互复制,计算,转换等eigenGeometry.cpp#include <iostream>#include <cmath>using namespace std;#include <Eigen/Core>// Eigen 几何模块#...
2019-09-04 20:55:25
266
转载 视觉SLAM编程基础1.1--useEigen
主要功能:Eigen库的基本类型使用定义矩阵初始化等定义动态矩阵矩阵与向量相乘矩阵的转置/各元素和/迹/数乘/逆/行列式实对称阵 特征值解方程eigenMatrix.cpp#include <iostream>using namespace std;#include <ctime>// Eigen 部分#include <Eigen/...
2019-09-04 17:18:06
210
原创 openCV编程基础17--Canny边缘提取
功能:实现图像边缘提取import cv2 as cvimport numpy as npdef edge_image(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) xgrad = cv.Sobel(gray...
2019-09-04 16:43:40
247
原创 openCV编程基础16--图像梯度
功能:1.一阶梯度与Soble算子2.二阶梯度与拉普拉斯算子3.图像通过卷积锐化图像import cv2 as cvimport numpy as np#图像梯度:索贝尔算子def sobel_image(image): grad_x = cv.Sobel(image, cv.CV_32F, 1, 0)#x方向导数 grad_y = cv.Sobel(i...
2019-09-04 16:25:14
292
原创 openCV编程基础15--图像金字塔
功能:实现图像尺度变化import cv2 as cvimport numpy as np#图像金字塔# reduce = 高斯模糊 + 降采样# expand = 扩大 + 卷积# 通过高斯金字塔可以构建拉普拉斯金字塔#高斯金字塔def pyramid_demo(image): level = 3 temp = image.copy() py...
2019-09-04 14:55:44
318
原创 openCV编程基础14--超大图像二值化
功能:对超大图进行二值化import cv2 as cvimport numpy as np#超大图像二值化,采用分割加局部阈值的方法#由于图像比较大cv.imshow显示不全,我们把图保存,用图像查看器来看def big_image_binary(image): print(image.shape) cw = 256 ch = 256 h, ...
2019-09-03 16:03:27
249
原创 openCV编程基础13--图像二值化
功能:不同方法实现图像二值化import cv2 as cvimport numpy as np#全局阈值OSTU方法def threshold_demo(image): gary = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gary, 0, 255, cv.THRESH_...
2019-09-03 15:21:25
384
原创 openCV编程基础12--模板匹配
功能:利用三种不同的度量方式,寻找匹配import cv2 as cvimport numpy as npdef template_demo(): tpl = cv.imread('F:004.jpg') target = cv.imread('F:001.jpg') cv.imshow('template image',tpl) cv.imsho...
2019-09-01 11:37:57
311
原创 openCV编程基础11--直方图反向投影
功能:1.可以寻找与直方图一致的区域,类似于模板import cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt#直方图反向投影(可以寻找与直方图一致的区域,类似于模板)def back_projection_demo(): sample = cv.imread('F:003.png') ...
2019-08-28 15:43:21
229
原创 openCV编程基础10--直方图应用
主要功能:1.直方图均衡化(调整图像对比度)/(对灰度图而言的)/全局/局部的直方图均衡化,是图像对比度增强的一个手段2.直方图比较,计算两张图片直方图的相关性,可以用于判断两张图片是否是很相似的import cv2 as cvimport numpy as np# 全局的直方图均衡化(对灰度图而言的),是图像对比度增强的一个手段def equalHist_demo(ima...
2019-08-27 12:55:33
348
原创 单应性矩阵
一.二维中的单应性矩阵单应性矩阵与射影矩阵基本是一回事,都有8个自由度,摄影矩阵是从二维平面的操作。单应性矩阵可以看成从二维的操作到三维操作的一个过度。 单应性变换又称为射影变换或者透视变换,有很多的叫法。 单应性矩阵就是个3*3的矩阵。 单应性矩阵(H)可以描述两个图片之间的变换,可以进行图片的拼接或者 这里H是单应性矩阵,可以从一个图像把每一个像素变换到另一个图像平面,这...
2019-08-23 18:22:37
3776
3
原创 多张无序图像自动全景拼接
摘要本文涉及多组无序图像全自动全景图像拼接的问题。 研究了1D问题(单轴旋转)。 先前的方法已经使用人工输入或对图像序列的限制来建立匹配图像。 在本文中,我们将拼接作为一个多图像匹配问题,并使用不变的局部特征来找到所有图像之间的匹配。我们的方法对输入图像的排序,方向,比例和照明不敏感。 它对于不属于全景图的噪声图像也是无用的,并且可以识别无序图像数据集中的多个全景图。关键词:无序图像、多组...
2019-08-23 14:35:09
4343
7
原创 齐次坐标系
在原有的坐标上增加一个维度:新增的维度并不会增加自由度:可以将加法变成乘法,完成平移操作可以判断点是否在线上/是否在面上可以两个点定义一条直线/两条直线定义一个点可以完成平移和缩放可以完成旋转和平移...
2019-08-10 11:35:24
250
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人