引子在前一篇文章《opencv-python实际演练(二)军棋自动裁判(1)棋子图像采集设备DIY》介绍了棋子图像采集设备的制作过程,在取得棋子图像后发现提取目标区域的效果还不够好,有时不能正确地找出目标区域。本文试图找出影响目标区域提取的关键因素,为棋子图像采集设备的改进做出理论上的指导。提取过程的实例分析Canny 边缘检查结果如下: 直观上看,这个外边缘很完整,接下来查找外轮廓 contou
引子文章《opencv-python实际演练(二)军棋自动裁判(1)棋子图像采集设备DIY》介绍了棋子图像采集仪的制作过程。文章《opencv-python实际演练(二)军棋自动裁判(3)棋子图像采集设备的改进》对图像采集仪进行了改进。现在该项目的硬件部分已经准备完毕,接下来要做的就是对采集到的棋子图像进行OCR。如果能够顺利地识别出棋子上的文字,判断两个棋子的棋力大小就比较容易了。棋子文字识别的
文章目录1 前言2 准备工作2.1 约定围棋局面的数据结构2.2 显示一个围棋局面2.3 计算黑白双方的棋子和围空3 处理流程3.1 图像预处理3.2 识别并定位棋盘3.3 透视矫正3.4 定位棋盘格子3.5 识别棋子及其颜色4 源码文件4.1 统计棋子和围空数量的脚本文件4.2 视觉识别的脚本文件 1 前言学习一种技能,最好的方式就是与实际应用相结合,也就是人们常说的学以致用。很多的Pytho
转载 2024-02-27 22:33:59
937阅读
最近在做一个围棋棋盘棋子识别项目,这是该项目第二篇,第一篇见:1、基于python及图像识别的围棋棋盘棋子识别1——定位棋盘位置,基于python及图像识别的围棋棋盘棋子识别2——定位棋子位置及识别棋子颜色1、将棋盘分割成19x19的小方格2、根据像素占比识别是否是黑色棋子3、根据像素占比识别是否是白色棋子4、将棋盘棋子位置通过列表表示这一篇主要实现定位棋子位置及识别棋子颜色。围棋棋盘原图如下:经过上一章节处理,已经将棋盘位置找到,如下图:现在根据新图,进行棋子位置的定位1、将棋盘分割成1
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、使用方法转载地址 前言前几天需要开发一款自动化测试工具,需要用到图像识别 但从未接触过图像算法相关知识,无奈只能找轮子 功夫不负有心人,找到大神分享的一遍文章 现分享给大家一、使用方法请先在你的电脑上,安装opencv程序,文章末尾有下载地址 我使用的版本是2.4.13 在创建好项目时,请去opencv的安装目录中,
转载 2023-06-19 15:50:33
140阅读
基于vs2015+opencv3.3的简易的车牌定位直接上代码#include<opencv2\opencv.hpp> #include<iostream> using namespace cv; using namespace std; int areas; //该函数用来验证是否是我们想要的区域,车牌定位原理其实就是在图片上寻找矩形,我们可以用长宽比例以及面积来验证是否
转载 2024-04-16 14:33:10
104阅读
一、预期目标如下图,要识别图中的国旗,然后框选出来,并且返回国旗的中心位置,效果如下: 彩色图像大小: (400,264) 目标中心位置: (225, 218)二、准备工作 1、将下面的图像另存为在本地,命名为 findflag.jpg 2、新建Python文件 findflag.py,与图像保存在同一目录下。三、开始编写代码1、读取与显示图像#include <stdio.h> #i
转载 2023-10-16 01:23:43
43阅读
opencv是一个很强大的机器视觉库,利用它我们可以开发出丰富多彩的使用项目。近日,我在研究一个图中物体定位系统。本程序用的是OpenCV2.4.9,附带OpenCV3.0。程序中的原图为我随手拍的一张图片图中有三个物体,都是蓝色的,我首先取原图的蓝色通道变为灰度图灰度图经过中值滤波后可以得到去噪后的图片根据原图的蓝色通道和红色通道的大概取值范围,我们可得到比较满意的二值图为了去掉物体中少量的黑色
 当今,由于数字图像处理和计算机视觉技术的迅速发展,越来越多的研究者采用摄像机作为全自主用移动机器人的感知传感器。这主要是因为原来的超声或红外传感器感知信息量有限,鲁棒性差,而视觉系统则可以弥补这些缺点。而现实世界是三维的,而投射于摄像镜头(CCD/CMOS)上的图像则是二维的,视觉处理的最终目的就是要从感知到的二维图像中提取有关的三维世界信息。简单说来就是对机器人周边的环境进行光学处理
-
oo
原创 2023-05-17 13:59:58
75阅读
    最近方向定下来是双目立体视觉,主要是做重建这块的研究。大致过程是图像获取->摄像机标定->特征提取->匹配->三维重建,当然开始可以进行图像预处理,矫正,后期可以进行点云的进一步处理,如渲染表面使其更接近于现实物体。  图像获取相对来说比较简单,用相机拍摄目标物(大型场景或特定小型的室内物体)。但有两点需要注意:  1、双目重建所需的图像一般为两张,角度相差不应过大
转载 2024-04-06 12:10:52
88阅读
Vitis HLS 图像处理平台搭建在 2019.2 以上的版本中AMD-Xilinx去除了对 OpenCV 的库函数的直接支持,需要我们手动搭建一个OpenCV的环境(主要是仿真环境),这一步虽然对综合不影响,但是对于算法的功能验证还是不方便,所以这一步对于使用OpenCV进行图像处理还是很重要的一步。今天这一步主要分成几部:第一步,安装所需要的文件(开源)第二步,设置好环境变量第三步,本地编译
目标跟踪就是识别移动目标的过程,并且跨帧跟踪这些目标,为了跟踪视屏中的目标,首先要做的就是识别出可能包含目标的区域。目前有很多视频目标跟踪的方法:当跟踪所有移动目标时,帧之间的差异很重要当跟踪移动的手时,基于皮肤颜色的均值漂移方法最好当跟踪对象知道的时候,模板匹配更好1.基本的运动检测import cv2 import numpy as np camera = cv2.VideoCapture(
转载 2024-02-26 12:27:16
559阅读
备注:OpenCV版本 2.4.10在数据的挖掘和分析中,最基本和首要的任务是对数据进行分类,解决这个问题的常用方法是机器学习技术。通过使用已知实例集合中所有样本的属性值作为机器学习算法的训练集,导出一个分类机制后,再使用这个分类机制判别一个新实例的属性,并且可以通过不间断的学习,持续丰富和优化该分类机制,使机器具有像大脑一样的思考能力。常用的分类方法有决策树分类、贝叶斯分类等。然而这些方法存在的
转载 2024-08-02 12:01:06
35阅读
好久没写了,最近在做一个教授给的任务,任务要求就是使用华硕的Xtion pro 这个设备(和微软的Kinect差不多)来识别一个一个的小机器人的位置和角度。做之前什么都不知道,上网查了好多资料,但是中文的资料较少,所以写点东西出来一是给自己记录,而是方便以后研究这个东西的童鞋。首先介绍一下思路:Aruco是一个做显示增强技术的库,但是我只要它的识别坐标和角度的功能OPENNI2 相当于是个驱动
相机标定规范及opencv实现 一、标定规范: 对于张正友相机标定的标定规范,版本也有很多,我这里只写一下我个人使用的方法和遇到的问题以及解决办法。 1. 标定的棋盘格一定要选黑白间隔的,而且不要有边框,就白色底色上话黑白格就可以,如果有边框的棋盘格,可能会检测不到角点。 2. 拍摄棋盘格的时候,要保证棋盘格大概占据视野范围的三分之二,最少不能少于
转载 2024-04-01 00:00:17
77阅读
1. 知识点算术操作;像素算术操作。2. NumPy算术操作 和 OpenCV像素运算2.1 加法2.1.0 cv.add 函数cv.add(src1,src2[,dst[,mask[,dtype]]])2.1.1 代码测试读取图片butterfly和lena;获取两张图片[0,100]位置的像素值;使用加法、np.add、cv.add进行算术操作。import cv2 as cv import
转载 2024-08-17 10:28:50
115阅读
最近在做双目测距,觉得有必要记录点东西属于立体视觉这一块,我觉得应该有很多人踩过这个坑了,但网上的资料依旧是云里雾里的,要么是理论讲一大堆,最后发现还不知道怎么做,要么就是直接代码一贴,让你懵逼。 所以今天我想做的,是尽量给大家一个明确的阐述,并且能够上手做出来。一、 标定    首先我们要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这里顺带提
作者:ziguangzeng 在上一节提到了Lucas-Kanade光流跟踪算法,是一种准确,成熟,比较容易实现的物体跟踪算法,对画面中固定点会进行准确快速的跟踪。但是在视频中如何对移动物体进行跟踪以及跟踪点的选择,则是另一个需要解决的问题。下面我们来详细了解一下。cvAbsDiff来计算出,我们可以通过定位这个区域来设置需要跟踪的点。这个运动的区域我们可以通过OpenCV
前言定位二维码不仅仅是为了识别二维码;还可以通过二维码对图像进行水平纠正以及相邻区域定位定位二维码,不仅需要图像处理相关知识,还需要分析二维码的特性,本文先从二维码的特性讲起。 1 二维码特性二维码在设计之初就考虑到了识别问题,所以二维码有一些特征是非常明显的。二维码有三个“回“”字形图案,这一点非常明显。中间的一个点位于图案的左上角,如果图像偏转,也可以根据二维码来纠正。思考题:为什
转载 2024-04-25 12:30:35
21阅读
  • 1
  • 2
  • 3
  • 4
  • 5