在OpenCV的安装文件路径/opencv/sources/samples/data/digits.png下,有这样一张图:图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字,每个数字块大小为20*20。为了后续方便处理,我们先写一段小程序把这5000个图截取出来:#include <opencv2/opencv.hpp>
#include <iostream>
using&nb
简介KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的K个实例,然后统计k个实例中所属类别计数最多的那个类,就是A的类别。从上面一句话中可以看出,KNN的原理非常简单粗暴,而且是一种“在线”的学习方式,即每一次分类都需要遍历所有的训练样本,此外KNN算法还有几个要素:K,距离,分类决策规则。要素对于KNN而言有三个要素:1.K的选择:K值是KNN算法中为数不多的超参数之一,K值的选择也直接影响着模型的性能。如果我们把k值设置的比较小,那么意味着我
(1) KNN算法简介: KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的 K个实例,然后统计k个实例中所属类别计数最多的那个类,据他们的主要分类来决定新数据的类别。(2) KNN算法的三个要点: ①K的选择: &nbs
勇哥的这个项目是整盘物料机器人视觉取料。由于该项目有两个相机,一个是整盘入料相机,用于判断物料有无和粗定位。另外还有一个下相机,用于精定位后物料入转盘机。本篇说的就是整盘入料相机的粗定位算法。这里勇哥使用的是halcon的形态学算法,相比找边的方式来说,其意义是速度快,能满足视觉一键换型的需要。read_image(backImg, 'C:/Users/hackpig/Desktop/蓝牙撕膜机黑料盘问题/20191106_141224_PS_1_OK.tif.bmp'
(1)实现功能: halcon中调用smallest_rectangle2()函数获得仿射外接矩形(旋转外接矩形),返回的是矩形的中心坐标、角度和长短轴长度,但是在有些时候需要使用的是仿射外接矩形的四个顶点坐标。 本文实现的功能是通过矩形的中心坐标、角度和长短轴长度获得四个顶点的坐标。(2)实现代码: smallest_rectangle2 (O
如下图,想取得这根条状物的突出来的“刺”。寻找图中边缘突出的部分,解决思路:1、阈值分割,找出黑色部分2、生成一个小矩形作为StructElement,进行opening操作,即可找到如下图的部分3、与阈值分割后的进行difference操作,即可找到突出部分,后面再进行求取突出的最边缘部分。上代码:read_image (Image, 'C:/Users/gongyong/Desktop/第八讲图2.bmp')
decompose3 (Image
勇哥项目中有下面这个拍照函数GrabOneImage()。在其它十几台设备上面运行没发现有什么问题,但是最近发现有一台设备上长时间运行不到半小时,程序就报告崩溃。错误原因是内存不足。 public bool GrabOneImage(bool isDebug)
{
 
这款Basler相机1000W像素。GigE 接口,不用独立供电。它的故障现象为:halcon连续采图,有10帧的速度,但是单次采图有580毫秒。这种情况按经验一般怀疑下面的问题:(1)网卡驱动版本(2) 网卡驱动的设置项 (3) 网线的问题由于连续拍照帧速正常,因此问题3可以排除。对于问题1,问题2,勇哥检查了网卡的驱动与设置,确认了驱动程序版本与设置与另外的机器一样。所以也可以排除了。这个版本的网卡驱动的设置项,并没有“巨帧”之类的项目。都是默认设置,好多台设备的同款
第四个要掌握的定理是正弦定理,它指的是:在任意一个平面三角形中,各边和它所对角的正弦值的比相等且等于外接圆的直径根据正弦定理,图4-6-2会有几个比较有意思的特点:只要BC边不变,其它两条边无论怎么变,∠A一定是30°任意一对边和其角的正弦比值一定等于这个圆的直径20勇哥用CAD验证了一下第一点。也验证了第二点。CAD的计算结果:三角形的外切圆的直径是57.75注意:由于CAD的测量时存在结果精度与测量捕捉精度两种精度问题,因此对于其结果我们只用看近似值好了,不可能完全一样的。下面的结果证明了定
勇哥说的这个话题的起因是追求极速的拍图速度。机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取。halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的。下面程序运行后,500w的CCD拍图的时间(不算显示时间)达到惊人的32毫秒,如果用halcon接口,最快的我见过是180毫秒。using Basler.Pylon;
using HalconDotNet;
using System;