[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

三角函数超入门(13) 用长度来度量角度(弧度制)

如下图,我们把角度看作是扇形的圆心角来思考,如何用长度来度量角度。圆心角的大小与其所对应的弧度成正比,所以可以用弧长来表示角度。在图8-10-1中,θ1:θ2=L1:L2,如果L2是K1的2倍,则圆心角θ2也是圆心角θ1的2倍。也就是说,角度比等于弧长比。但是,弧长本身是随扇形大小即半径不同而产生差异。这样,圆心角的度数就可以用弧长和半径的比例来表示。如图8-10-2,同一圆心角的两个扇形互为相似...

三角函数超入门(12) 改变振幅、移动中心

我们知道,振幅就是振动中心到最高点或者最低点的长度。如果改变一个函数图象的振幅、移动它的中心,图象会变成什么样呢?例子: 比较函数y=2sinθ和函数y=sinθ的图象。如下图,y坐标表示图象的高低。把y=sinθ的图象的高度沿着y轴上下伸长两倍,就得到了y=2sinθ的图象。仔细观察这两个图象,就会发现有无系数2不会改变函数的周期。例子2: y=1/2*cosθ和y=-1/2*cosθ通常,函数...

三角函数超入门(11) 三角函数的图形(正切)

由正切一定义,得tanθ=y/x,令x=1,则tangθ=y,所以tanθ的值就是纵坐标y。下面来看看正切函数的图象。-90°到90°的区间内,直接把左图的y值平移到右图,图象呈光滑曲线。tanθ的图象的一个非常显著特点是:不连续性。当θ=±90°,±270°,±450°...时,图象是一段一段断开的,终边都落在y轴上。整条曲线处于无限接近某条纵线的状态,但永远不会和那条纵线相交。通常,一条曲线无...

三角函数超入门(10) 三角函数的图形(余弦)

如下图所示,cosθ=x/r, 即x=cosθ。我们习惯把纵轴变成y, 于是函数可以写成y=cosθ。我们把图7-2-2(cosθ)与上一篇的图7-1-3(sinθ)仔细比较一下。(勇哥为了方便大家观察,引用如下)可以看到,cosθ就是sinθ从90°开始的部分。所以这cosθ和sinθ的图象完全一样。两者的周期都是360°。我们可以说:cosθ的图象是sinθ的图象向左平移90°得到的。也可以反...

三角函数超入门(9) 三角函数的图形(正弦)

所谓函数: 指的是变量与自变量的关系 其中,变量是随着自变量的变化而变化的,自变量决定变量例如,y=2x2+1当x取值1,2,3,4 时,y都有一个对应的值。y就是变量,x就是自变量。我们称 y是x的函数。y=sinθ的图象我们令r=1,则无论θ的终边在什么位置上, sinθ=y/1=y。也就是,θ终边上的点纵坐标y就是sinθ的数值。如图7-1-1所示,在平面坐标内,以原点为圆心,半径为1的...

三角函数超入门(8) 角度转换

利用终边位置的对称性就可以使得对任何角都能进行sin、cos的互换。例如:(1)sin(-35°)(2)cos230°(3)tan(-220°)(4)sin(-220°)解:sin和cos的互换如下图:之前学的直角三角形中和为90的两个角的三角比如何互相转换的。sinθ=cos(90-θ) 如上图中两边都是a/ccosθ=sin(90-θ) 如上图中两边...

三角函数超入门(7)三角比扩展到三角函数

如果把角θ看作以原点为中心的像钟表指针一样旋转射线的旋转角的话,三角比就扩展到了三角函数。在射线上取一点P(x,y),OP的长为r(r>0),这样,就可以定义角θ的各类三角函数。在三角函数中表示旋转了多少度时,-60°和300°虽然终边相同,但它们是两个不同的角。但是在几何学里,60°和300°却是相同的角。接下来看看θ变化时,三角函数值是如何变化的。首先,当θ=360°和θ=0°时终边位置...

视觉进阶:检测漏焊board.hdev

通过本例程学习,掌握了read_image读取多幅图像,channels_to_image算子的使用。本例程的算法思路是通过求取各个通道求取暗的和亮的部分,然后各个通道使用union1进行联合,得到的联合后的暗图像和明亮图像,然后求取明暗图像的交集。后续经过基本的选择处理,得到漏焊的焊点。get_system ('clip_region', Information) set_sy...

视觉进阶:阈值分割函数总结

(1) fast threshold(mage: Region: MinGray, MaxGray, Minsize:) ①算子描述: 全局阈值,此算子与threshold类似,只是多了一个輸入参数MinSize :提取对象的最小尺寸(2) gray histo(Regions, Image : : : AbsoluteHisto, Relativ...

视觉进阶:select shape proto算子的应用

(1)函数原型: select shape proto(Regions, Pattern, SelectedRegions , Feature, Min, Max)(2)函数功能: 依据某种相互关系筛选区域。(3) Feature参数的选项: 1)distance center:判断Regions中每个region的中心(area ce...

视觉进阶:聚类及halcon实现

(1)聚类的简介: 聚类是一种无监督学习方法,试图将数据集中的样品划分为若干个通常不相交的子集。(2)聚类的两个基本问题: ①性能度量: 用于度量聚类结果的好坏,即相同簇样本尽可能相似,不同簇样本尽可能不同。性能度星可分为两类,一,外部指标,将聚类结果与外部指标相比较,二,内部指标,直接考察聚类结果。 ②距离计算:...

视觉进阶: 学习KNN(三)KNN+HOG实现手写数字识别

在学习KNN(二)KNN算法手写数字识别的OpenCV实现我们直接将像素值作为特征,实现了KNN算法的手写数字识别问题,并得到了较好的准确率,但是就像其他机器学习算法一样,KNN的对象同样是特征,所以我们可以用一种特征提取算法配合KNN实现手写数字识别的任务。下面用HOG原理及OpenCV实现中介绍的HOG算法提取特征,作为KNN的的输入,最后与像素值特征的结果进行对比。在数据方面还是使用之前生成...

视觉进阶: 学习KNN(二)KNN算法手写数字识别的OpenCV实现

在OpenCV的安装文件路径/opencv/sources/samples/data/digits.png下,有这样一张图:图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字,每个数字块大小为20*20。为了后续方便处理,我们先写一段小程序把这5000个图截取出来:#include <opencv2/opencv.hpp> #in...

视觉进阶: 学习KNN(一) 图像分类与KNN原理

简介KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的K个实例,然后统计k个实例中所属类别计数最多的那个类,就是A的类别。从上面一句话中可以看出,KNN的原理非常简单粗暴,而且是一种“在线”的学习方式,即每一次分类都需要遍历所有的训练样本,此外KNN算法还有几个要素:K,距离,分类决策规则。要素对于KNN而言有三个要素:1.K的选择:K值是KNN算...

视觉进阶: KNN算法及halcon例程

(1) KNN算法简介: KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的 K个实例,然后统计k个实例中所属类别计数最多的那个类,据他们的主要分类来决定新数据的类别。(2) KNN算法的三个要点: ①K的选择: K值是KNN算法中为数不多的参数之一, K值的选择也直接影响着模型的...

halcon形态学分析整盘入料的物料的取料中心点位置与方向

勇哥的这个项目是整盘物料机器人视觉取料。由于该项目有两个相机,一个是整盘入料相机,用于判断物料有无和粗定位。另外还有一个下相机,用于精定位后物料入转盘机。本篇说的就是整盘入料相机的粗定位算法。这里勇哥使用的是halcon的形态学算法,相比找边的方式来说,其意义是速度快,能满足视觉一键换型的需要。read_image(backImg, 'C:/Users/hackpig/Desktop/蓝牙...

halcon中求rectangle2矩形的四个顶点坐标

(1)实现功能: halcon中调用smallest_rectangle2()函数获得仿射外接矩形(旋转外接矩形),返回的是矩形的中心坐标、角度和长短轴长度,但是在有些时候需要使用的是仿射外接矩形的四个顶点坐标。 本文实现的功能是通过矩形的中心坐标、角度和长短轴长度获得四个顶点的坐标。(2)实现代码: smallest_rectangle2 (ObjectSelec...

视觉进阶: 寻找出边缘突出的部分

如下图,想取得这根条状物的突出来的“刺”。寻找图中边缘突出的部分,解决思路:1、阈值分割,找出黑色部分2、生成一个小矩形作为StructElement,进行opening操作,即可找到如下图的部分3、与阈值分割后的进行difference操作,即可找到突出部分,后面再进行求取突出的最边缘部分。上代码:read_image (Image, 'C:/Users/gongyong/Desktop...

Basler相机Sdk采图的演示例程(C#)

勇哥说的这个话题的起因是追求极速的拍图速度。机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取。halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的。下面程序运行后,500w的CCD拍图的时间(不算显示时间)达到惊人的32毫秒,如果用halcon接口,最快的我见过是180毫秒。using Basler.Pylon;...

halcon与C#混编的入门贴

这篇主要是C#和Halcon的混合编程,写给新手们看的。halcon源程序:dev_open_window(0, 0, 512, 512, 'black', WindowHandle)read_image (Image, 'C:/Users/Administrator/Desktop/猫.jpg')dev_display(Image)get_image_size(I...

halcon17支持1394的相机吗?

halcon17支持1394的相机吗?勇哥可以告诉你:不支持!!想不到吧!勇哥手里的一款point grey的1394接口的相机就发现在halcon17怎么也找不到。我记得以前的win7 64位系统下是找得到的,现在换成了win10 64位就找不到了。其实不是系统的原因,而是,之前用的是halcon10,现在用了hacon17才发现找不到相机了。解决办法是,到halcon的网站上下载对应的接口。下...

C#和halcon的混编程序出现序内存泄露、句柄持续增加、视觉程序运行越来越慢等问题的处理

这个话题非常重要。勇哥苦于手中的项目遇到这样的问题。这些问题表现是:(1)视觉程序内存占用会越来越大。这种内存变大通常是缓慢变大,几天不关机持续运行的话,大到几个G也不稀罕。通常,急速内存变大要容易找到问题些,最怕的是缓慢变大。(2) 视觉程序会越运行越慢,会影响设备的PPM。通常工厂里的电脑一辈子不会关机,你可别指望他们会每班给你重启软件一次。(3)程序句柄越来越多,大至几万都有可能。这是一种什...

halcon差异运算去掉背景图像

如果是下相机对位,有时候会碰到相机拍到复杂背景,造成需要处理的工件被背景干扰的问题。这时候有一个办法是去掉背景。一般来讲,每次拍到的背景应该是一样的,只是每次拍到的工件不一样。勇哥直接上图片与演示代码,最后介绍一下相关的算子。(图1 背景图像)(图2 含有背景图像的电芯)下面是代码处理的结果。(图3 电池本体之外的背景全部镂空的效果)(图4 含有膨胀区域的处理结果)read_image(b...

二维点的旋转 续二(Matlab演示代码)

勇哥继续讨论二维点旋转这个话题。这一次使用Matlab的旋转矩阵来实现图像旋转。我们把旋转原理再补充说明一下,之前我们说的是绕原点旋转,现在继续引入饶任意点旋转的原理:以坐标原点为中心旋转的原理:点p0p0绕坐标原点逆时针方向旋转θθ角度得到点p1p1.以任意图形中心点为坐标原点旋转原理:Matlab编程实现(1)Matlab自带函数实现图像任意角度旋转旋转函数介绍:B=imrotate(A,an...

经典算法——绘制空心圆续(二)

实际应用中,往往需要三点确定一个圆。例如,在机器人视觉标定中,为了能不用手工创建工具坐标,就可以通过三点定圆的方式算出工具坐标的中心在哪里。我们知道,如果三点不共线的情况下是可以产生一个圆的,有关的公式推导见下面的贴子。三点确定一个圆的算法(C#代码)这里勇哥提供公式的实现代码:private Tuple<PointF, double> drawCircle3P(PointF pt1,...

二维点的旋转 续一(halcon演示代码)

继续上一篇,勇哥用halcon来实现上述的旋转矩阵效果。halcon的矩阵运算流程如下:① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.0]);② 在初始化矩阵的基础上,使用hom_mat2d_translate(平移)、hom_mat2d_rotate(旋转)、hom_mat2d_scale(缩放)等生成仿射变换矩阵;...

二维点的旋转(C#演示代码)

勇哥先来谈谈点绕原点旋转如下图, 在2维坐标上,有一点p(x, y) , 直线opの长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a) s...

经典算法——绘制空心圆续(一)

话题见下文:经典算法——绘制空心圆勇哥这里写下其实践的内容。首先,画圆公式为: 原点为圆心,半径为r(r>0)的圆的标准方程为x2+y2=r2下面的代码中ox,oy是原点的位置, radius是圆的r。g是画布句柄。private void drawCircle2(Graphics g, int radius, int ox, int oy) {...

经典算法——绘制空心圆

在TurboC中,可以使用各种现成的函数绘制各种各样有趣漂亮的图形,而在VC中则比较难以实现。但是,我们可以用“*”当作点,连点成线,用来绘制各种线条或者图形。这就得看算法了,所谓算法就是解决问题的方法。这里呢,我们就一起来看看,在Visual C++6.0中,如何利用“*”绘制一个空心圆。大家有什么好的建议或者意见,都可以在我的评论栏里给我留言,希望我们相互学习,共同进步。第一步:建立坐标系根据...

三点确定一个圆的算法(C++代码)

三点确定一个圆的计算方法最近在写的一个软件需要根据三个坐标点来计算一个圆。因此花了点时间推导了相关的公式。这个推导不算太难,放在这里主要是做个备忘。我们设一个圆的圆心坐标为 ,半径为 r 。那么这个圆的方程可以写为:在这个圆上随便取三个点,设这三个点的坐标分别是 那么有:公式(1)(2)相减,(1)(3)相减之后经过化简可以得到:有唯一解的条件是系数行列式不为 0 :简单变变型也就是:这样写几何含...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864