![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
文章平均质量分 73
仟人斩
这个作者很懒,什么都没留下…
展开
-
积分图的SSE和AVX2优化
在图像处理中,积分图的应用在某些场合可以带来极高的效率优化,但是积分图本身的计算比较耗时,需要优化。积分图用double类型:void IntegralF64(Mat src, Mat &integal_out) { Mat tmp(src.size(), CV_64FC1, 0.0); tmp.ptr<double>(0)[0] = (double)src.ptr<uchar>(0)[0]; for (int i = 1; i < src.cols;原创 2022-04-05 22:20:21 · 1233 阅读 · 0 评论 -
RGB颜色空间转LAB,和OpenCV结果不一致原因分析与解决
最近看了RGB转LAB的原理,自己实现了一版。最初的版本单个像素的源码 float X, Y, Z, L, A, B; float T[3][3]; //Shift = 0; float Xscale = 0.95046; float Zscale = 1.08875; T[0][0] = 0.412453 / Xscale; //R T[0][1] = 0.357580 / Xscale; //G T[0][2] = 0.180423 / Xscale; //B T[1][0原创 2022-04-05 21:15:11 · 4794 阅读 · 0 评论 -
带微小缩放和旋转的模板匹配
问题提出:OpenCV并不像Halcon一样提供带有旋转和缩放的的模板匹配。本文对带旋转和缩放的模板匹配问题进行限定,只针对的目标缩放范围为95%到105%,旋转角度为-5度到5度的情况,尝试用opencv解决。问题分析:带有旋转和缩放,首先想到使用外轮廓进行Hu矩匹配,然后根据外轮廓周长比例和面积开方的比例确定缩放系数,根据轮廓最小包围旋转矩形的角度差确定旋转角度。这个思路要求目标外轮廓不...原创 2020-04-03 18:33:49 · 4941 阅读 · 0 评论 -
基于轮廓的模板匹配
一. 理论部分模板匹配的算法包括基于灰度的匹配,基于特征的匹配,基于组件的匹配,基于相关性的匹配以及局部变形匹配。基于灰度的匹配一般应用在没有缩放和旋转,颜色变化不大的场合。基于特征的匹配一般应用在具有缩放和旋转,颜色变化较大的场合。在模板各个组件有相对位移的情况下,使用基于组件的匹配算法。在图像模糊,目标定位不依赖于边缘的情况下一般使用基于相关性的匹配。目标有局部变形的情况使用局部变形匹配算法...原创 2020-03-23 08:40:15 · 6828 阅读 · 4 评论 -
基于灰度的模板匹配算法
一.理论部分基于灰度的图像匹配算法有:平均绝对差算法(MAD)、绝对误差和算法(SAD),误差平方和算法(SSD)、平均误差平方和算法(MSD)、归一化积相关算法(NCC)、序贯相似性算法(SSDA)。其基本思想是将模板在待匹配的图中滑动,每滑动一步,使用一个指标衡量相似性,然后选取相似性最大的位置作为最佳匹配。1.1 MAD(平均绝对差算法)MAD,是Leese在1971年提出的一种匹配算...原创 2020-03-16 16:44:58 · 4645 阅读 · 1 评论 -
使用滑动窗口的细长目标分割方法
原始素材需求描述从有反光的黑色或者白色背景中分割出红蓝绿色的单色的前景。问题分析背景有反光,前景也有反光,而且三维的前景还会在背景下留下影子。目标是圆柱型的,因此在有光的情况下,总会有一个角度会出现反光的情况。对于这种情况,做图像增强是不可能的,前景和背景都横跨了颜色空间的大部分。方法1:使用全局阈值的方法目标最明显的特征是颜色,所以使用hsv或者lab颜色空间,根据人为指定的前景区...原创 2019-07-22 15:07:19 · 3382 阅读 · 0 评论 -
超长板和并行板识别算法(仿真环境中获取到的图像)
背景本来想利用面阵相机进行传送带上超长目标(超长面阵视野)的识别,在做实验的过程中,虽然在传送带上贴靶标,也布置好待识别目标,但在传送带运动过程中采集到的视频数据却不能完成拼接,这主要的原因是传送带上靶标的固定方式。传送带是带有弹性的,贴上不带弹性的靶标后,由于相对滑动,靶标固定不牢固。如果在靶标外再贴一圈胶布,则由于传送带左右两侧弹性不一致,导致整个一圈靶标全部滑向弹性较小的一边,直到被两边的...原创 2019-05-07 09:40:26 · 369 阅读 · 0 评论 -
传送带视频流图像拼接算法改进
接上篇:https://blog.csdn.net/iamqianrenzhan/article/details/89648491原来的算法为了尽可能的减少拼接,所以,每块图像尽可能的大。但是由于每帧图像采集间隔和传送带运动速度不固定,有时会出现匹配靶标过少或循环而出现拼接不上或者拼接错误的情况。本文对原来算法进行改进,以期达到更好的稳定性。算法的思想如下:在处理速度满足的情况下,尽可能多的...原创 2019-05-07 08:54:46 · 865 阅读 · 0 评论 -
灰点工业网口相机多相机同时使用
最近对灰点的工业网口相机进行了调试,最终目标是要实现多相机的同时采集。使用工业网口相机第一步要安装相机的SDK:包含spinnaker软件包和pyhton扩展。这个软件包不好下载,可以去下载上传的版本,下载地址稍后上传。第二步是配置网卡地址:安装readme中的提示配置就可以,如果使用多个网口,需要配置到不同的网段。在Windows系统下成功实现了配置2个网段的网口分别采集2路相机,总...原创 2019-05-06 21:07:16 · 4945 阅读 · 4 评论 -
单目相机标定: 一个全自动化的使用opencv的标定程序
首先使用拍照工具拍摄一些JPG格式的标定图片。然后放到特定的文件夹下,我这里是image文件夹。在标定前,首先读取该文件夹下的图片文件,获取这些图片文件的文件名,以备将来opencv读取图片使用。这样做的好处是不用特意给拍摄的图片按照特定格式重新命名,大大减小了工作量。标定时,程序会检查这些图片是否能正常提取格点,如果不能,程序自动舍去,在标定时该幅图片不参与计算。标定完成后,程序会把原创 2018-02-06 01:30:51 · 5755 阅读 · 5 评论 -
pylonUSB3.0相机在Ubuntu16.04系统上使用opencv显示图像
〇.本文内容包括opencv在Ubuntu上的安装,qt在Ubuntu上的安装,basler相机在Ubuntu系统上的使用与开发环境配置。qt示例工程说明如何获取pylon相机图片并用opencv显示。 版本概览:Ubuntu16.04,opencv3.4.0,gcc5.4.0,qt5.10.1,pylon5.0.11。一.pylon相机的安装1.连接相机把basler相...原创 2018-03-01 15:28:35 · 4266 阅读 · 5 评论 -
ViSP库在windows系统和Ubuntu系统下的安装与vs2015和qt上的例程测试
一.ViSP库介绍:ViSP是Visual Servoing Platform的简称,它是一个用于快速开发视觉伺服应用的c++库。ViSP由位于Inria Rennes的Inria Lagadic团队开发和维护。 ViSP 官方网站: https://visp.inria.fr ViSP 维基百科: https://github.com/lagadic/visp/wiki ViSP...原创 2018-04-06 00:22:30 · 3226 阅读 · 4 评论 -
数字近景工业摄影测量中Schneider编码标志的自动生成程序
数字近景工业摄影测量中Schneider编码标志的自动生成程序数字近景工业摄影测量中Schneider编码标志的自动生成程序前言Schneider 编码方案介绍自动生成编码代码主函数调用的函数1:循环移位操作调用的函数2:创建目录函数生成图片展示4位编码8位编码12位编码(不是全部)程序下载程序工程目录截图下载地址:前言在数字近景摄影测...原创 2018-07-25 00:20:20 · 2459 阅读 · 5 评论 -
数字近景工业摄影测量中Schneider编码标志的识别
前言Schneider 编码方案介绍识别程序流程图识别代码展示主函数找最小编码子函数opencv图片插入中文函数识别效果下载地址前言在数字近景摄影测量中,最关键的图像间的匹配。但是由于工业测量现场复杂的背景和被测物体表面没有足够的特征,应用在双目视觉中基于关键点匹配的算法在效率、精度、准确率等方面,大多不能满足需求。于是在工业数字近景测量中需要人工设置的靶标点...原创 2018-07-26 15:11:57 · 3527 阅读 · 7 评论 -
线缆颜色顺序检测
问题描述从下图中得到线缆的颜色顺序问题分析1.光照条件变化时,同样颜色的线缆在图像中颜色深度会有变化,所以不能使用RGB颜色空间,应该使用符合人类颜色距离认知的颜色空间,比如HSV和LAB。2.所有的线缆都是并排的一起的,所以识别时可以只识别它们的边界线,任意相邻边界线的中间区域就是线缆。3.线缆只在竖直方向上摆放,为提高算法速度,可以只在高度方向上截取一段进行处理。算法流程图片预...原创 2018-10-30 10:24:23 · 3787 阅读 · 2 评论 -
线缆颜色顺序检测(续)
接上篇,https://blog.csdn.net/iamqianrenzhan/article/details/83537779原来的算法使用HSV颜色空间,对一些颜色不能区分,而且经过后续测试,对光照的变化的鲁棒性也没有CIELAB颜色空间好。算法流程预处理预处理流程和上一篇类似,只是转换的LAB颜色空间cvtColor(src_all, hsv, CV_BGR2Lab);边界识...原创 2018-10-30 12:03:08 · 2241 阅读 · 0 评论 -
使用FFmpeg库读取USB摄像头并解码
背景使用opencv的读取一个usb摄像头时,从视频流中取出每一帧数据需要200ms。一般打开笔记本电脑自带的摄像头取出一帧数据需要20ms。经过分析,排除了分辨率和压缩格式的原因,因为另外一个同样压缩格式更高分辨率的相机同样只需要20ms。分析opencv的源码,发现opencv默认使用的是FFmpeg的库,但opencv进行了封装,一些参数不能更改,具体的执行过程也不能看到。重新编译opn...原创 2018-12-05 12:56:48 · 10943 阅读 · 0 评论 -
基于opnecv的常用功能函数及其相关函数
文章目录标定板生成获取某一文件夹下的所有文件名opencv按照想要的缩放比例显示Matopencv读取摄像头并逐帧写入视频文件三点确定一个圆轮廓平滑操作相机标定函数标定板生成void gencaliboard(){ //单位转换 int dot_per_inch = 96; //我的电脑是96DPI(dot per inch) double cm_to_inch = 0.39...原创 2018-12-05 14:42:55 · 567 阅读 · 0 评论 -
使用面阵相机进行传送带视频流的拼接
注:根据实验室规定,本文所有用到的方法,只讲原理不贴代码,所有照片,必要的地方马赛克处理。背景在工业应用中,使用面阵相机识别传送带上的物体,当要识别的目标的最小包围矩形(不是最小包围旋转矩形)小于相机视野时,可以进行后续处理。但是当要识别的目标很大,比如超长的物体,如果还使用面阵相机,有两种办法,一种是硬件改进,另一种是软件改进。硬件改进就是在传送带运动方向均布多个面阵相机,通过同步触发同时采...原创 2019-04-28 23:49:12 · 2095 阅读 · 0 评论 -
二维码的特征定位和信息识别
二维码的特征定位和信息识别背景介绍视觉的方法可以用来估计位置和姿态。最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和、相机畸变矫正、轮廓提取、solvepnp来获取目标相对于相机的位姿。在实际使用中只要相机和目标一方是估计的,那就可以得到全局坐标。如果相机和靶标都在移动,那只能获取到相对坐标。但是受限于相机视角和景深,这样多个特征的识别虽然精度可以很高,但是范围原创 2018-01-20 21:53:44 · 45464 阅读 · 21 评论