计算机视觉
文章平均质量分 72
沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
2019年电赛B题视觉源码
在锡月平台上移植好的源程序# -*- coding:utf-8 -*-# 创建时间:2019年8月8日# 功能:模式一:二维码/条形码识别+拐点圆柱识别# 模式二:靶子识别定位import numpy as npimport imutilsimport timeimport cv2import V_Display as vdimport V_UCom as co...原创 2019-08-12 09:38:52 · 2324 阅读 · 12 评论 -
电赛无人机特征匹配(二):ORB算法+BFM算法+D-P轮廓检测算法
ORB算法同样存在运算量较大的问题,在特征值较多的时候并不实用,以下时未移植的源码:# coding:utf-8# 创建时间:2019年7月28日# 功能:二维码特征匹配;# ORB算法;BFM算法;D-P轮廓检测算法import cv2import matplotlib.pyplot as pltimport numpycap = cv2.VideoCapture('.....原创 2019-07-28 15:10:30 · 776 阅读 · 0 评论 -
电赛无人机特征匹配(一):Harris角点特征检测+D-P算法轮廓处理
Harris角点特征检测的运算量有些大,如果是二维码之类特征值比较多的情况,实际根本用不了,运算一帧数据需要2-3秒;如果减少特征值或者先进行滤波,将会滤去较多细节特征值,造成无法识别不同的二维码一下是未移植的源码# coding:utf-8# 创建时间:2019年7月27日# Harris角点特征检测;# 以角点的个数作为判别依据# 修改:以检测到先进行轮廓检测降低运算量...原创 2019-07-28 15:07:18 · 693 阅读 · 0 评论 -
18年电赛无人机——调试HSV
需要提前调试HSV值将目标方框从复杂背景中抠出来,一下是调参的源码# -*- coding : utf-8 -*-# 创建时间:2019年7月20# 功能:调试出最佳的识别黑色兴趣区域的参数值import cv2import numpy as np# cap = cv2.VideoCapture(0) # 获取摄像头图像# cap = cv2.VideoCapture('.....原创 2019-07-28 12:15:38 · 1304 阅读 · 0 评论 -
18年电赛无人机视觉部分——双目测距+目标物识别改进版本
以下是移植好的锡月无人机视觉源码,使用双目测距,单目面积法估计下一篇给出# -*- coding:utf-8 -*-# 创建时间:2019年7月24日# 功能: 应用之前处理好的数据转换成深度图;# 点击深度图上的点可以打印距离值# 修改: 2019年7月25日# 模块化;去除点击打印功能;异常值处理;# 强制类型转换;更改默认坐标位置---&...原创 2019-07-28 12:13:22 · 2445 阅读 · 2 评论 -
整理:opencv颜色灰度值、HSV和HSL
前言: 在opencv很多函数中都需要设定灰度值参数,但是我们很多时候并不知道我们的灰度值是多少,我整理了两种方法如下1. 查颜色表,第一表查看颜色对应的灰度值的大概表示,用第二幅图估计颜色的灰度值的大致大小,虽有些粗略,但是挺实用最左边值是255,最右边的值是0(原图很清晰,传上来就不行了……)2.常见颜色HSV值,其中V是Value,即灰度值。如下表,最后两行就是灰度值的表...原创 2019-08-01 11:52:11 · 7110 阅读 · 0 评论 -
解决opencv:AttributeError: ‘NoneType‘ object has no attribute ‘copy‘
情况一: 路径中有中文,更改即可情况二:可以运行代码,在运行结束时显示AttributeError: 'NoneType' object has no attribute 'copy'因为如果是视频处理,视频最后一帧的结果是None,不信可以自己print观察,所以None再copy当然会出错注:其他有博客说用深拷贝,我认为不行;本身就是不行让在父对象上的处理影响子对象,深...原创 2019-08-01 11:20:40 · 23312 阅读 · 7 评论 -
电赛机器视觉——稀疏光流追踪角点
光流概念:光流(Optical flow or optic flow)是关于视域中的物体运动检测中的概念。用来描述相对于观察者的运动所造成的观测目标、表面或边缘的运动。光流法在样型识别、计算机视觉以及其他影像处理领域中非常有用,可用于运动检测、物件切割、碰撞时间与物体膨胀的计算、运动补偿编码,或者通过物体表面与边缘进行立体的测量等等。卢卡库-卡纳的法求稀疏光流:在计算机视觉中,...原创 2019-08-05 11:55:04 · 578 阅读 · 0 评论 -
电赛机器视觉——KNN目标检测
KNN作为背景分割器进行目标检测,但是背景变化较大是效果非常差import cv2import numpy as npknn = cv2.createBackgroundSubtractorKNN(detectShadows = True)es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (20,12))camera = cv2.V...原创 2019-08-04 22:15:07 · 912 阅读 · 0 评论 -
电赛无人机特征匹配(三):FLANN算法匹配检测+图像金字塔+D-P轮廓算法;
FLANN相比较与ORB和Harris,速度快十倍以上,在嵌入式视觉硬件上最实用,以下是未移植的源码# -*- coding:utf-8 -*-# 创建时间:2019年7月28日# 功能:识别待匹配的二维码# FLANN算法匹配检测;图像金字塔;D-P轮廓算法;# 注:安装opencv-contrib-python 3.4.2.17以下版本import cv2# FLANN算...原创 2019-07-28 15:13:32 · 1039 阅读 · 0 评论 -
18年电赛无人机视觉部分——单目摄像头+目标物识别改进版
双目测距在上一篇博客,极其不稳定,改成根据目标物面积估计的方法比较稳定,但精度较差,以下是未移植的# -*- coding:utf-8 -*-# 创建时间:2019年7月28日# 功能:识别待匹配的二维码# FLANN算法匹配检测;图像金字塔;D-P轮廓算法;# 注:安装opencv-contrib-python 3.4.2.17以下版本import cv2# FLANN算法...原创 2019-07-28 15:18:10 · 1996 阅读 · 0 评论 -
电赛机器视觉——测试调整HSV工具代码
使用HSV值定位识别特定物体的方法虽然很low,不过在比赛中特别好用,坑的地方就是我可以很容易判断出我目标物体HSV值的范围,但是比赛场地会有很多其他干扰物,非常容易误识别,所以必须再次调整进行处理,缩小目标HSV值的范围,达到最佳效果,我总结了一篇:https://blog.csdn.net/qq_41895747/article/details/98043823以下是我比赛时用的调整测...原创 2019-08-12 09:36:00 · 701 阅读 · 2 评论 -
电赛机器视觉——19年电赛判断摩尔纹角点
19年电赛可以铺设摩尔纹,由于这题定位实在困难,所以采用判断铺设摩尔纹的角点作为无人机位置辅助定位的一种方式,虽然有点讨巧,但是方法不错。以下是源码# -*- coding:utf-8 -*-# 创建时间:2019年8月8日# 水平直线和竖直直线交点定位出角点法import cv2import numpy as np# 导入图像# cap = cv2.VideoCaptu...原创 2019-08-12 09:28:59 · 934 阅读 · 0 评论 -
电赛机器视觉——19年电赛识别黑色杆判断无人机转弯视觉部分
2019年电赛需要视觉识别黑色杆判断无人机转弯,这个非常关键,我使用的是霍夫直线检测,记住需要设定mask二值化处理,场边的支撑物也是银白色的竖直杆子,若不注意百分百误识别挂掉!# 寻找竖直黑色直线并标记# 输入参数:image输入图像矩阵# 输出参数:黑色直线x轴坐标def black_line(image): # cv2.imshow('line_image', image...原创 2019-08-12 09:22:36 · 2017 阅读 · 4 评论 -
电赛机器视觉——基于HSV识别条形码
2019年电赛需要用到二维码条形码和二维码定位,我设计了基于形态学算法、基于pyzbar算法、基于HSV值判断、基于zxing算法四种方法,以下是基于HSV识别的部分。2019年电赛的条形码是黄色异物,可以使用特定颜色追踪的方法进行处理,缺点是测评现场的窗帘、地面砖都是类似黄色,需要微调闸值准确提取出黄色异物!!一下是我封装好的函数# 基于条形码的黄色值进行识别# 输入参数:im...原创 2019-08-12 09:17:54 · 768 阅读 · 0 评论 -
电赛机器视觉——基于pyzbar识别定位二维码和条形码
2019年电赛需要用到二维码条形码和二维码定位,我设计了基于形态学算法、基于pyzbar算法、基于HSV值判断、基于zxing算法四种方法,以下是基于pyzbar方法的源代码。# -*- coding:utf-8 -*-# 创建时间:2019年8月7日# 功能:使用pyzbar库识别二维码# 注:条形码和二维码通用import cv2import pyzbar.pyzbar a...原创 2019-08-12 09:13:34 · 1430 阅读 · 6 评论 -
电赛机器视觉——基于形态学算法定位二维码和条形码
2019年电赛需要用到二维码条形码和二维码定位,我设计了基于形态学算法、基于pyzbar算法、基于HSV值判断、基于zxing算法四种方法,以下是基于形态学方法的源代码。# -*- coding:utf-8 -*-# 创建时间:2019年8月7日# 条形码识别定位;基于形态学进行操作# 注:条形码和二维码通用import cv2import numpy as np# 识别出...原创 2019-08-12 09:11:40 · 828 阅读 · 2 评论 -
电赛无人机特征匹配(四):FLANN算法匹配检测+图像畸变处理
单纯原始的FLANN算法如下,会有图像畸变难处理、特征值过多没有闸值限制等问题,如下:# -*- coding:utf-8 -*-# 创建时间:2019年7月28日# FLANN算法匹配检测;# 修改:模块化封装# 注:安装opencv-contrib-python 3.4.2.17以下版本import cv2# FLANN算法特征匹配检测# 输入参数:查询图像train_...原创 2019-07-28 16:36:53 · 1012 阅读 · 0 评论 -
电赛机器视觉——均值漂移目标跟踪
meanshift、camshift、Kalman三种常用都尝试了,还是meanshift效果更理想,未移植的源码如下;# 创建时间:2019年8月1日# meanshift均值漂移目标跟踪import numpy as npimport cv2# meanshift兴趣区域跟踪# 输入参数:img目标区域图像矩阵;frame:训练图像矩阵# 输出参数:中心点坐标cx,xy...原创 2019-08-01 20:11:19 · 650 阅读 · 0 评论 -
电赛机器视觉——混合高斯目标检测
算法原理:用GMM对背景建模的基本思想是把每一个像素点所呈现的颜色用K个高斯分布的叠加来表示,通常K取3-5之间。将像素点所呈现的颜色X认为是随机变量,则在每时刻t=1,…,T所得到视频帧图像的像素值只是随机变量X的采样值(观值)。在进行前景检测前,先对背景进行训练,对每一帧图像中每个背景采用一个混合高斯模型进行模拟,背景一旦提取出来,前景的检测就简单了,检查像素是否与背景的高斯模型匹配...原创 2019-08-04 21:48:29 · 449 阅读 · 0 评论 -
电赛机器视觉——帧差异运动目标检测
如果只有一个目标物,根据每帧之间的差异识别出目标运动物体,效果比较好import cv2import numpy as npcamera = cv2.VideoCapture(0)es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (10, 10))kernel = np.ones((5, 5), np.uint8)backgro...原创 2019-08-04 21:15:19 · 529 阅读 · 0 评论 -
电赛机器视觉——激光点定位
这些阈值是通过设置的步长thresholdStep 逐渐递增的,知道达到设置好的最大阈值maxThreshold参数。所以第一个阈值是minthreshold,第二个阈值是minthreshold+thresholdStep ,第三个阈值是minthreshold+2×thresholdStep ,以此类推。计算这些二值图中的斑点的中心,并且将相互之间距离小于设置的minDistBetweenBlobs 的斑点合并成一个。让我们调用这些斑点。计算这些合并后的斑点的中心和半径,并返回。原创 2019-08-03 20:51:15 · 2276 阅读 · 0 评论 -
Python&OpenCV——使用不同的色彩空间表示图像
绝大多数情况下,图像都是以RGB色彩组成的,即red,green,blue,其他常见的格式有BRG,HSV(色相hue、饱和度saturation、明度value)和HLS(色相hue、亮度lightness、饱和度saturation),在opencv当中可以使用cvtColor进行转换,特别注意:在opencv当中彩色图像是以BGR进行保存的,而不是我们所想的RGB!所以在转换的时候需要特别注...原创 2019-03-24 19:34:51 · 661 阅读 · 0 评论 -
机器学习——OpenCV实现K-NN
k-NN是最简单的机器学习算法之一,简单而言k-NN算法认为一个数据点很可能与它近邻点同属于一类,sklearn实现k-NN算法后面再复习一下,这次先学习OpenCV当中cv2.ml.KNearest_create()实现k-NN。步骤:得到一些训练数据 指定K值,创建对象 找到想要分类的新数据点的k个最近邻的点 使用多数投票来分配新数据点的类标签 画出结果图特别注意:OpenC...原创 2019-02-26 21:57:43 · 612 阅读 · 0 评论 -
opencv面向对象设计初探
之前学习opencv一直是面向过程编程,这样不好opencv面向对象有编程有套路,看一个启动外部摄像头的例子# 使用managers.CaptureManager提取视频流import numpyimport cv2import time# 增加要导入的包、构造函数和属性值class CaptureManager(object): def __init__(self...原创 2019-02-20 22:16:31 · 324 阅读 · 0 评论 -
opencv——最简单的视频读取
学习opencv,C++的资料一堆,python的资料较少慢慢复习,先复习一个最简单的视频处理import cv2cap = cv2.VideoCapture('duanfa.avi')while cap.isOpened(): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GR...原创 2019-02-20 22:03:38 · 258 阅读 · 0 评论 -
解决OpenCV安装Non-zero exit code (1)的错误
环境:pycharm报错: 看command output!换做安装opencv-python,完美解决!原创 2019-02-25 22:28:44 · 2648 阅读 · 0 评论 -
机器学习——对分类器和对回归器的评分
构建一个机器学习系统最重要的一部分就是找到一个方法来评估模型预测的质量,大部分的评估模型都在scikit-leaning中的metrics中。使用准确率、精确率和召回率对分类器进行评分:accuracy_score:准确率。是指在测试数据集中,那些预测正确的数据点的数量除以整个测试数据集的大小,是最基本的评分函数。 precision_score:精确率。例如在分别猫和狗的问题中,精确率...原创 2019-02-25 22:10:24 · 1113 阅读 · 0 评论 -
Opencv——模块介绍
大一暑假学过opencv,当时用的是C++,学习也并不深入,到现在大半年过去之后,很多细节都模糊了,决定用python将其复习一遍,温故而知新。这里必须吐槽一下配置C++ opencv环境实在是太麻烦了,当时按照毛星云老师的教程来的,配置过程bug不断,用python配置则十分方便,pip一下就好解压文件夹后可以,并不明白每个文件夹的意思和用处,这里学习一下sourse:存放源码 ...原创 2019-02-20 11:28:21 · 336 阅读 · 0 评论 -
opencv&Python——多种边缘检测
原教程bug挺多,此处感谢https://blog.csdn.net/qq_34877350/article/details/78583787话不多说,上代码comeo.py# 使用managers.CaptureManager提取视频流import numpyimport cv2import timeimport filtersfrom managers import W...原创 2019-02-21 22:16:13 · 620 阅读 · 1 评论 -
Python&OpenCV——角点检测
OpenCV主要提供了两种角点检测:Harris角点检测:Harris角点检测是一种直接基于灰度图的角点提取算法,稳定性高,尤其对L型角点(也就是直角)检测精度高。缺点也是明显的,就是运算速度慢。用cv2.cornerHarris进行处理 Shi-Tomasi角点检测:Shi-Tomsi算法是Harris算法的加强版,性能当然也有相应的提高。用cv2.goodFeaturesToTrack进...原创 2019-03-24 20:09:43 · 3673 阅读 · 6 评论 -
python&opencv——面向对象的摄像头视频处理模版
# 功能:面向对象的摄像头模版# 创建时间:2019年7月18日import cv2import numpy as np# 导入图像cap = cv2.VideoCapture(0)# 设置摄像头分辨率cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)while cap...原创 2019-07-18 21:20:24 · 305 阅读 · 0 评论 -
电赛机器视觉—— 一字型激光定位
走过的坑:概率霍夫变换识别出的直线容易被分割 二值化容易造成闸值受光照强度等因素影响较大,所以用边缘检测 膨胀处理未移植源码:# 创建时间:2019年8月3日# 直线中心点检测# 二值化会受到不同光线的影响import cv2import numpy as np# 一字型激光定位# 输入参数:img输入图像矩阵;# 输出参数:result处理后的图像矩阵;cx,c...原创 2019-08-03 18:09:51 · 910 阅读 · 2 评论 -
电赛机器视觉——十字激光中心定位
十字激光中心定位,主要用的算法:高斯滤波 fastNlMeansDenoising全局降噪 图像膨胀 概率霍夫算法 图像填充未移植的源码:# 创建时间:2019年8月2日# 功能:激光中心十字检测,计算中心点坐标import cv2import mathimport numpy as np# 激光十字检测计算直线参数函数def calculate_li...原创 2019-08-03 11:51:39 · 2083 阅读 · 0 评论 -
电赛机器视觉——构建颜色直方图编码
构建颜色直方图编码在调节特定HSV值或者BRG值的目标识别追踪的时候很有用,以下为源码:# -*- coding: utf-8 -*-# 创建时间:2019年7月30日# 直方图均衡化测试import cv2import numpy as npfrom matplotlib import pyplot as pltfrom time import clockimport sy...原创 2019-07-30 19:20:31 · 329 阅读 · 0 评论 -
电赛机器视觉——字母识别、常见形状识别
使用轮廓匹配在嵌入式平台上运行很流畅,如果用常用的特征匹配算法在电脑上运行效果很好,但是在嵌入式平台上运行非常卡顿,不实用,以下是我移植好的源码# -*- coding:utf-8 -*- # 创建时间:2019年7月29日# 轮廓匹配识别字母、常见简单轮廓等import numpy as npimport imutilsimport timeimport cv2import...原创 2019-07-30 16:15:32 · 2397 阅读 · 0 评论 -
电赛无人机特征匹配(五):轮廓匹配算法
之前几篇介绍特征匹配算法,除了FLANN单应性匹配的效率比较理想之外,其他的如ORB,Harris运算量都很大,在树莓派上难以实现,用轮廓匹配算法符合嵌入式平台的实际要求以下是未移植的源码:# 创建时间:2019年7月29日# 轮廓匹配识别字母、常见简单轮廓等import cv2import numpy as np# 不同特征的形状匹配# 输入参数:model_img:目...原创 2019-07-29 23:38:52 · 910 阅读 · 0 评论 -
解决opencv:error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) &&VDepth::contai
error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper<struct cv::Set<3,4,-1>,struct cv::Set<1,-1,...原创 2019-07-29 23:19:26 · 21862 阅读 · 3 评论 -
解决error: (-210:Unsupported format or combination of formats) [Start]FindContours supports only CV_8U
原程序:# -*- coding:utf-8 -*-# 创建时间:2019年7月29日# 使用轮廓匹配识别出目标物import cv2import numpy as np# 不同特征的形状匹配# 输入参数:model_img:目标图像矩阵;train_frame:待检测的图像矩阵# 输出参数:matching_value:匹配值,越小表示匹配度越高def contour...原创 2019-07-29 22:53:40 · 21727 阅读 · 2 评论 -
电赛机器视觉——二维码定位
二维码定位在无人机赛题中极有可能出现,一下为源码:# coding:utf8# 创建时间:2019年7月29日# 识别二维码并打印二维码的扫描结果的网址import cv2import pyzbar.pyzbar as pyzbar# 创建字典二维码数据集# 注:二维码格式应为int类型code_dic ={ "https://blog.csdn.net/sunn...原创 2019-07-29 17:39:56 · 1698 阅读 · 2 评论