图像处理与识别
文章平均质量分 59
老马过河hhh
懂一点物理的码农。CSDN很少上,评论不回,私信也很少回。
展开
-
OpenCV在Visual Studio开发环境的搭建
将OpenCV文件安装(解压缩)到特定文件夹将头文件路径、库文件路径、库名称填写到工程设置里,设置DLL路径 其中, Include Path、Libs Path 在 Configuration Properties->VC++ Directories设置,建议使用$(OPENCV_DIR)环境变量 库名称在Linker->Input->Additional Dependencies里,要原创 2015-07-06 12:13:13 · 991 阅读 · 0 评论 -
在OpenCV中使用RANSAC
使用OpenCV中的RANSAC算法OpenCV中的solvePnPRansac函数和findHomography函数都具有RANSAC特性,该特性使算法对少量的错误数据鲁棒。这两个函数利用RANSACPointSetRegistrator类实现RANSAC算法,但这个类并没有对外开放,因此只能通过阅读OpenCV源代码学习RANSAC算法的实现和使用。原创 2017-12-12 01:59:09 · 11257 阅读 · 3 评论 -
拟合与估计问题中的鲁棒方法
RANSAC 是一种包裹算法 具体C++实现 OpenCV有SolvePnP getHomogenous 内部使用了这一方法此外还有改进的[PROSAC]方法,将点初始集匹配的结果作为排序的依据,使得在采样时根据匹配结果由高到低的得分进行排序,这样最有可能得到最佳参数的采样会较早出现,提高了速度。M估计最小中位数方法O. Chum and J. Matas, “Matching with PR原创 2017-12-11 14:37:59 · 4406 阅读 · 0 评论 -
基于最大稳定区域的图像分割算法
为了分割出图像中含有不同颜色的区域,文献1提出了一种基于最大稳定区域的算法: 对于灰度图,以不同大小的阈值tt进行二值化,统计连通区域的形状,搜索关于 tt “最稳定”(关于不同 tt 面积变换最小)的区域。搜索采用基数排序。 对于彩色图像,将像素上下左右相邻视为图的节点,相邻两像素的色差度量视为边权值,以不同大小的阈值tt对边进行分割,则可将整幅图像分割为多个连通图。统计最稳定方法同上。色差度翻译 2017-02-12 15:11:25 · 3077 阅读 · 0 评论 -
Matlab中处理多个图像的索引下标
在Matlan中,彩色图像一般使用M×N×3M \times N \times 3数组存储 为了将多个图像(视频帧列)存储在一起 这样是不行的for i=1:n seqs = [squs img];end这样会导致多个图像的合并较好的方法是使用cellfor k=1:n seqs = {squs img};endimg = seqs{k};另外也可以使用高维数组seqs =原创 2017-02-11 22:43:22 · 2182 阅读 · 0 评论 -
视频稳像笔记
算法原理视频稳像(Video Stabilization),又称电子增稳,是指利用相关的算法,对视频设备采集的原始视频序列进行处理,去除其中的抖动。视频稳像的目的,一方面是为了让人眼观感舒适,有利于人工观测、判别等,另一方面也作为诸多其他后续处理的预处理阶段,如检测、跟踪和压缩。经典的稳像算法一般包含3个步骤: 1. 全局运动估计 全局运动指视频中背景的运动。全局运动估计要获得准确的运动原创 2017-02-08 13:01:07 · 5785 阅读 · 3 评论 -
Basler Pylon工业相机SDK的使用
Pylon库有C++ .Net等各种封装版本,一般用C++版本,功能全面效率高。 基于GenAPI通用相机抽象接口使用的是Node结构,以字符串形式访问相机参数,比较通用但效率低,使用不方便。 Pylon高层用C++封装,形成本地相机对象如何管理多个相机,最靠谱的方法是按相机ID标定顺序,需要读一个配置文件,比如XML或JSON 然而一开始不知道ID,需要先列举出来原创 2016-05-31 14:07:49 · 20529 阅读 · 4 评论 -
OpenCV小技巧
快速对点序列进行运算formatFileStorageBackgroundSubtract原创 2017-02-09 15:22:15 · 549 阅读 · 0 评论 -
图像识别和跟踪中常用特征点
HoG (Histogram of Oriented Gradient)方向梯度直方图Haar 边缘特征、线性特征、中心对角线特征,组合成特征模板LBP(Local Binary Pattern) 局部二值模式以下主要用于跟踪: 1. Harris 角点检测 利用矩阵的特征值 R=detM−(trM)2R=detM-(trM)^2 2. SIFT 3. SURF 4. SUSAN 圆形原创 2017-02-08 13:27:34 · 4680 阅读 · 0 评论 -
Matlab Computer Vision System 例程笔记
形态学礼帽运算 vision.MorphologicalTopHat('Neighborhood', strel('square',18)); 竟然可以用来分离订书钉之间的间隙 vision.BlobAnalysis 可以在二值图像中统计团区域的数量blob挺好 如何进行大小的优化呢?原创 2017-02-08 15:52:57 · 1760 阅读 · 0 评论 -
OpenCV中局部贴图的方法
为了用OpenCV实现这种效果应先使用ROI功能圈定对应区域创建局部Mat图像头,使两图片尺寸相同。 然后用addWeighted函数按0 1加权覆盖 cv::Mat roiImage;cv::Rect rect(0, 0, intrImage.cols, intrImage.rows); //位置roiImage=srcImage(rect);cv::addWeighted(roiIm原创 2016-10-16 13:09:24 · 4810 阅读 · 0 评论 -
图像中2D形状的表示方法总结
寻找恰当地方法表示任意物体的形状,是图像识别中的关键问题之一,二者之间有着密切的联系。对于表示方法的基本要求是关于平移、旋转、缩放具有不变性。 该问题有以下几个难点:描述子需要有足够强的能力以区分不同目标物体,但又能合并对于同一个物体的三类变换描述子应能描述任意形状,以便被应用于通用视觉任务应对输入数据中的噪声具有鲁棒性常用方法如下: 1. 简单滑窗块匹配 对光照变化敏感,对变换不具有原创 2016-11-04 23:57:51 · 1613 阅读 · 0 评论 -
Matplot使用笔记
最简单的模板一次性使用各种控件图单窗口绘制):from numpy import *import matplotlib.pyplot as pltplt.subplot(111)x = linspace(0,5,100)y =sin(x) + xplt.plot(x, y,'r-')plt.bar(x[::10],y[::10],0.3,align='center', alpha=0.8原创 2015-11-23 01:23:09 · 1112 阅读 · 0 评论 -
ffmpeg的使用笔记
常用的视频压缩编码格式(MPG MP4 AVI)都有商业专利,开源软件如OpenCV一般不提供。开源视频转换工具如VirtualDub等也是调用操作系统事先安装的包。而FFMpeg库是我们可以方便使用的开源编码-解码工具。windows版本的FFmpeg的可执行程序为ffmpeg.exe ffplay.exe ffprobe.exe三个文件,分别用于编码转换、视频播放、读取视频文件信息,其中ffmp原创 2015-08-01 16:51:51 · 734 阅读 · 0 评论 -
使用pillow进行图像处理
PIL库很久没有更新,取而代之的是pillow库 pillow库提供的imshow函数是文件形式,比较难用,一般使用matplot库中的pyplot.inshow()函数,该函数提供了对于pillow.Image对象的直接支持。此外,matplot.pyplot.imread库自身也提供了PNG图像加载功能。若已安装pillow库,则其会自动调用以加载其他格式。返回的是标准numpy array。原创 2015-11-03 16:58:43 · 4640 阅读 · 0 评论 -
OpenCV中Mat数据结构的像素级访问
OpenCV 访问Mat数据顺序访问随机访问原创 2015-10-03 00:19:24 · 868 阅读 · 0 评论 -
Structure From Motion 笔记
整个过程分为 1. 对多张图片提取特征点(SIFT SURF) 2. 匹配特征点,使用RANSAC算法消除干扰 3. 对于可匹配特征点使用矩阵优化求解库(ceres-solver Osi-Clp SoPlex GLPK)求解摄像机矩阵和位置矩阵(Fundamental Matrix & Essential Matrix),推算出每个摄像机位置和特征点位置以上过程由OpenMVG库完成。原创 2015-10-03 00:06:06 · 4359 阅读 · 1 评论 -
对于PointNet的源码阅读
PointNet 是发表在CVPR2016的一种直接面向点云的深度学习框架。可用于对点云进行物体识别/分割。 PointNet在多种测试集中表现出良好效果。已经被momenta.ai等自动驾驶公司用于激光雷达点云处理,可见其算法确有实际价值。 PointNet的源代码基于Tensorflow,源码目录中的sem_seg对于语义识别代码 ;而part_seg文件夹内对应分割代码。详情可参见h...原创 2018-07-03 00:56:10 · 2619 阅读 · 1 评论