机器视觉工具集
文章平均质量分 59
JAMES费
我在AI机器人时代之海边捡贝壳。中国石油大学机械工程硕士,清华出版社签约作者
展开
-
入门机器视觉的正确打开方式——徒手撸一个python+opencv实现的机器视觉简易调试工具(下)
基于以上思考,可以把我们的调试工具设计成一个类似流水线一样的解读执行过程,就是我们先根据场景特点确定上下游的处理模块,把它们做成一个草图,然后我们的主程序负责把它按流程图执行,并且可以随时打开流水线的某个处理盒子,对参数进行方便的调节。在当今AI时代,关于视觉识别似乎已被深度学习所统治,而深度学习是个黑箱,无法看到里面运行的机制,并且它是一个疯狂的吞大数据的野兽,且运行需要极高的CPU或GPU的配置,对于初学者,尤其是手上没有高配置的机器的人,进入视觉识别设置了一道高高的门栏。原创 2024-06-28 13:19:08 · 1488 阅读 · 0 评论 -
入门机器视觉的正确打开方式——徒手撸一个python+opencv实现的机器视觉简易调试工具(上)
对于初学者来说,入门机器视觉可能会感到无从下手,市面上虽然有许多成熟的机器视觉软件,但它们往往价格昂贵,且功能复杂,不够灵活。幸运的是,Python语言以其简洁易懂的特性,结合OpenCV这一强大的计算机视觉库,为初学者提供了一个低成本、高效率的学习平台。原创 2024-06-17 10:30:52 · 1576 阅读 · 0 评论 -
python机器视觉实用工具集NO.18——查找手绘棋盘直线交叉点
在计算机视觉中,检测图像中的直线交叉点是一个常见的任务。本篇博客将介绍一种使用Python的机器视觉实用工具集来查找手绘棋盘直线交叉点的方法。这个工具集使用了OpenCV库和NumPy库。# 遍历每条直线else:# 遍历已合并的直线# 判断两条直线是否可合并break# 如果不能合并,则将直线添加到已合并的直线列表中# 遍历每条直线# 遍历每条直线的组合# 判断两条直线是否相交= 0:return img。原创 2024-01-05 11:31:17 · 485 阅读 · 1 评论 -
机器视觉实用工具集NO.18——使用YOLO8实时检测物体,性能爆棚
安装了pytorch框架以后,就可以玩一些开源的深度学习框架了,比如YOLO8,是基于pytorch框架的,关于如何安装pytorch框架,可以参考上篇文章链接《pytorch深度学习框架CUDA版本环境安装记录》经过一番改造,用YOLO8做了一个实时在线视频物体检测的程序,结果显示,yolo8的实时性非常不错,可以用于机器人等实时的场景。后续可以用YOLO8开发一些好玩的东西了,尽请期待!关注!原创 2023-04-27 12:13:22 · 1862 阅读 · 0 评论 -
机器视觉实用工具集NO.17——利用Lucas Kanade光流,实现固定场景下物体运动跟踪工具
目录前言原理python源码实现前言在固定场景下(视频场景变化不大,并且没有太复杂的运动物体,或者遮挡出现,所监控的物体速度较为缓慢),对物体进行位置或移动监测的一个简单的办法是利用Lucas Kanade光流,实现对稀疏点的跟踪,本章将实现这样的功能,效果如下:框选感兴趣的物体:形成合理的待跟踪点:实现跟踪点的轨迹:原理实现以上物体跟踪效果的流程如下:1、首先实现摄像头的图像采集,转换成灰度图2、构建框选功能,使得可以手动框选感兴趣的区域3、根据感兴趣的区域,生成光流跟踪点阵4原创 2022-04-14 08:56:16 · 3273 阅读 · 0 评论 -
机器视觉实用工具集NO.16——指定监控区域运动物体闯入检测工具
目录前言原理Python实现源码前言在安防领域,很常见的一个机器视觉检测任务是区域闯入报警侦测,实现此功能,并不是非常困难,可以利用光流法对视频固定区域内的图像(相邻帧的)特征点变化情况进行判断,本文利用了opencv中的calcOpticalFlowFarneback稠密光流函数为核心,实现了在监控视频可调四边形区域内,实现了运动物体侦测,并报警。效果:如下图,当四边形内有运动物体闯入或变化时,选区变成红色报警:区域正常为绿色:区域报警:原理本文实现的区域运动物体检测实现流程是:1、光原创 2022-04-10 13:36:53 · 3084 阅读 · 1 评论 -
机器视觉实用工具集NO.15——利用图像放射变换做类似文件扫描仪效果工具
前言手机文本扫描工具(类似扫描王)是日常经常用到的一个工具,一般过程是先拍一下所要扫描的文件(证件、纸张),然后在手机软件上调整文件的扫描区域,一般是拖动四个角点调整,调整完后,扫描软件就会把扫描区域里面的文件提取出来,成为一个较为规则的矩形。本篇来简单实现这样一个功能,效果如下:鼠标移动四个顶点,程序可以把长方形的文件截取出来,并进行了变形校正,简单达到了扫描效果(左图):原理原理很简单,就是利用本工具集的“机器视觉实用工具集NO.1——根据任意矩形(四点坐标)截取指定区域图像”https:/原创 2022-04-02 18:05:33 · 2909 阅读 · 0 评论 -
机器视觉实用工具集NO.14——查找简单物体个数并抠出物体的工具
前言在碰到具有背景和物体边缘较为明显,即前景物体具有较为明显的轮廓时,我们可以利用【边缘查找】–》【膨胀】–》【轮廓查找】–》【去重轮廓】这个图像处理流程,快速完成物体数量的查找及提取物体区域的机器视觉任务,简单而直观,不失为一种实用方法原理原图如下,背景和物体具有较为明显的边缘:我们可以通过canny算法快速找到边缘信息:找到边缘后,为了确保物体的边缘是联通的,我们要进行形态学操作(膨胀使得边缘联通):如此就可以利用边缘查找(cv2.findContours)API进行查找轮廓,并利用该原创 2022-03-27 17:29:00 · 2585 阅读 · 0 评论 -
机器视觉实用工具集NO.13——利用直方图平衡及色阶构建图像去雾、增亮等预处理操作工具
前言有时候,拍摄的图片会由于环境光、相机曝光度等原因造成图像有层类似雾的灰度或者是颜色失真等现象,图像直方图表现为在某个阈值区间有较多像素聚集,可以通过opencv的equalizeHist函数对图像某个或多个通道进行均衡,有时候会有图像增强的效果,或者通过手动调节参数,类似photoshop的色阶操作,对图像进行增亮、去雾及其它增强操作。效果处理前图像有点偏黄直方均衡后接近了本来的颜色(但同时天空有点失真):光线不足情况下,容易变灰:一顿手动色阶调节之后,可以调到接近本色:pyth原创 2022-03-23 23:36:26 · 1862 阅读 · 0 评论 -
机器视觉实用工具集NO.12——玩转卷积核,图像滤波工具
图像卷积运算的直观展现,图像通过3*3典型和任意自定义卷积运算,可以加深卷积印象。原创 2022-03-19 18:31:47 · 3401 阅读 · 0 评论 -
机器视觉实用工具集NO.11——利用二维码实现免棋盘格标定的相机坐标转换简易工具
目录前言点击视频帧上的点获取坐标python代码实现前言在机器人视觉抓取任务时,基础是要实现相机像素坐标对应于桌面的世界坐标的转换,很多网友用的方法是利用棋盘格的标定实现相机坐标与世界坐标的转换。本质上其实就是通过多个点在世界坐标和像素坐标的对应关系,即:[像素坐标]=【运动矩阵】【世界坐标】,求出【运动矩阵】,【运动矩阵】里有旋转和平移相机外参组成的矩阵和焦距畸变等内参组成的矩阵。为实际应用方便起见,可以通过贴四个二维码作为已知世界坐标的四个点,并通过二维码识别算法,获取四个二维码的像素坐标,从而可以原创 2022-03-14 23:38:09 · 2458 阅读 · 0 评论 -
机器视觉实用工具集NO.10——使用深度学习模型(yolo3)实现物体检测工具
目录前言opencv+YOLO3实现物体检测python源码前言OpenCV 3.3版本之后提供了对主流深度学习主干网络框架的加载支持。opencv给我们提供了一个应用成熟深度学习模型的便捷工具。YOLO是一个优秀的物体及人体检测深度神经网络模型,可以通过opencv快速部署检测应用。opencv+YOLO3实现物体检测YOLO3里面训练好的能够检测的物体有80种,涵盖了人、鸟、车、沙发等日常动物、物品。且相对来说,实时性比较高。opencv+yolo3部署一个物体检测应用比较间接,100多行代原创 2022-03-08 21:36:01 · 3160 阅读 · 0 评论 -
机器视觉实用工具集NO.9——寻找简单三角形、圆形、多边形工具实现
目录前言API参数介绍查找近似等边形查找圆形、椭圆查找矩形python代码前言图像中获取到联通的区域后,如果区域的形状特征特别明显,可以根据联通区域的形状特征(圆度、凹度、凸度)等利用opencv自带的api(SimpleBlobDetector斑点检测)进行快速查找。API参数介绍cv2.SimpleBlobDetector斑点查找函数,里面可以通过输入调整参数进行形状特征查找。可以通过:查找近似等边形设置圆度参数(minInertiaRatio),进行查找近似等边形状的图形,如下:查原创 2022-03-03 08:44:46 · 2787 阅读 · 0 评论 -
机器视觉实用工具集NO.8——看图像直方图的增强工具,任意框选图像感兴趣区域、归一、加窗口等
目录前言python代码实现前言直方图是一种分析图像有用方法,可以从直方图里看出其像素统计特征,且具有图像平移、旋转、缩放不变性等众多优点,可以帮助我们在分析图像过程中提供有用信息,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。本章提供一个带界面的图像直方图分析工具,不仅可以统计绘制整个图像的直方图、RGB各通道,还可以通过鼠标在图像上面框选感兴趣的区域,绘制该区域的像素信息分布,有利于了解局部信息。并且做了一些归一化、平滑、窗口过滤等增强功能比较简单,直接无私上源码,希望可以帮助到原创 2022-02-22 17:02:11 · 717 阅读 · 0 评论 -
机器视觉实用工具集NO.7——轮廓查找深化应用,利用轮廓外接矩特征快速识别目标物体
目录1.前言2.对图像查找轮廓后的处理流程3.应用最小外接矩形状过滤算法效果4.python代码实现1.前言在固定场景物体查找(如分拣)等机器视觉任务中,查找物体轮廓是一步常用且关键的流程。一幅图像(或者视觉帧)经过去噪、颜色查找、形态操作、阈值化等一些列图像处理后,过滤掉了背景、小噪点,剩下了主要的前景信息(如下图):由于摄像头往往存在安装误差,图像往往存在放射变形,因此,采用常规的霍夫圆、廓矩检测往往准确率不高,现在提出一种简单粗暴的方法,结合轮廓查找的外接矩形,实现对具有显著形状特征的感兴趣前原创 2022-02-15 17:00:48 · 1951 阅读 · 0 评论 -
机器视觉实用工具集NO.6——图像变换应用,利用apriltag二维码+透视变换实现水平面相机像素/世界坐标转换
二维码扫码已经是人们日常生活的一部分,二维码识别已经是事实证明的成熟有效的技术。可以说,二维码是联系现实世界(物理空间)与虚拟世界(像素空间)的很好的媒介。在机器视觉定位桌面物体任务时,可以利用二维码技术结合透视变换,实现像素坐标与物理世界平面的关系映射,快速实现像素坐标转桌面坐标。站在巨人肩膀上可以看得更远,我们可以利用apriltag二维码系统,通过其python 库和API进行定位识别,而透视变换可以利用opencv库warpPerspective函数进行坐标转换。简单的步骤如下:1.制作ap原创 2022-02-08 22:26:39 · 4419 阅读 · 0 评论 -
机器视觉实用工具集NO.5——带有窗口的阈值分割(附源码)
在图像处理中,会遇到有多个背景的情况,如果只用opencv原生的固定阈值分割,比较难过滤阈值之上或者阈值之下的背景图像信息,于是动手进行了简单的改进,增加了一个阈值,可以通过调整最大最小两个阈值的范围,找到一个合适的“窗口”,有利于将图像中感兴趣的像素“过滤出来”,在图像处理实际任务中可以起到一定的效果,但是由于python语言自身的原因,逐个处理像素特别是视频的处理,带窗口的阈值分割处理速度比较慢,网友推荐使用的一个faster库,可以对for循环进行加速,试用后,效果非常不错,达到了处理视频图像的性能要原创 2022-02-04 13:33:24 · 1798 阅读 · 0 评论 -
机器视觉实用工具集NO.4——颜色查找可视化工具,在HSV、LAB、RGB三个颜色空间轻松进行颜色查找
查找颜色是机器视觉任务中非常重要的的一个功能,其难点不是算法,而是在不同的灯光等环境条件下,选择合适的参数,参数的调整依赖于人的经验,而用一个合适的工具可以帮助对各颜色空间分布不了解的初学者快速实现目标颜色的参数。根据经验,利用HSV,和LAB模式可以得到较好的环境适应性。1、原图2、HSV空间查找棋子(或感兴趣)颜色HSV空间查找,提供一种经验值,可以迅速定位感兴趣颜色的目标值,然后结合手动调节,可以精确找到感兴趣的颜色。可以专家模式查找:也可以手动模式查找,个人推荐,在专原创 2022-02-01 19:07:55 · 3810 阅读 · 2 评论 -
机器视觉实用工具集NO.3——限定最大长、宽的图像等比例缩小
小摄像头像素大,图像缩小是常用的一个功能,尤其是涉及到要界面显示,图像太大会占满屏幕,需要进行缩小,而缩小最好不能有变形,以下函数可以指定最大长、宽,进行图像等比例缩小,如果原始图像未超过最大长和宽,则不缩小:import cv2 import numpy as npdef resizeoutput(output,maxw=600,maxh=500): """ output:输入的图像 maxw:如果超过maxw宽度就执行缩小 maxh:如果超过maxh长度就执行缩原创 2022-02-01 18:28:47 · 1699 阅读 · 0 评论 -
机器视觉实用工具集NO.2——图像的90度旋转和翻转
1、图像的90度旋转:def rota90(inputimage, isclockwise=False): """ 图像旋转90度: isclockwise=True,顺时针 isclockwise=False,逆时针 """ if type(inputimage)==type(np.array([])): if len(inputimage.shape)==3: if isclockwise:原创 2022-01-24 13:49:24 · 2784 阅读 · 0 评论 -
机器视觉实用工具集NO.1——根据任意矩形(四点坐标)截取指定区域图像
接下来会将日常工作中使用到的图像处理工具,以易用函数的形式发布于CSDN博文中以下这个实用的工具或函数,作用是知道图像中某一感兴趣矩形区域,顺时针的四点坐标,如图:图1 任意角度矩形区域获取上图中已知矩形区域的图像,python代码如下:ddef CutImgeByBox(output,box): """ 根据任意内接矩形,四点(顺时针)box[[x1,y2],[x2,y2],[x3,y3],[x4,y4]],从输入图像中,截取图像 """ if typ原创 2022-01-24 11:12:36 · 3115 阅读 · 0 评论