×

置顶 本站原创软件与资源

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

勇哥,很想停止 勇哥,很想停止 发表于2020-04-10 浏览32951 评论3
下面的清单算是对勇哥的工业自动化职业生涯中有关机器视觉方面的总结。它是勇哥看到过的一些项目,以及对应的知识点的盘点。勇哥缺少工匠精神,许多认识不深入,浮于表面,大叔级别的人了对待学习还是有点浮燥,造成许多知识点勇哥也是一知半解,希望借着这个贴子内容的梳理、和相关的实验的开展,不断的提升自己的知识深度,最重要一点是形成一种有规划的学习模式,节省时间提升效率。本贴的内容做为大纲,实际的实验内容勇哥会不断更新贴子出来。所以就将本贴置顶吧。(一) 单相机标定(1)halcon的标定助手 &nb
勇哥的免费视频教程清单

置顶 本站开源软件与资源

勇哥的免费视频教程清单

勇哥,很想停止 勇哥,很想停止 发表于2021-02-01 浏览22197 评论1
“少有人走的路”www.skcircle.com《勇哥的机器视觉》免费视觉教学系列免费视频勇哥会不定期更新,希望观赏后各位能给出宝贵意见。视频中所用图片素材以及源码等资料,在本站QQ群(98596273)中发布。视频也在B站发布,播放地址为:https://space.bilibili.com/1150123755?from=search&seid=5789841158140412090你也可以订阅本站微信公众号《勇哥的机器视觉》接收最新视频的更新消息。免费视频教程清单:————————
固定相机拍照,机器人定位取料的原理解释

机器人/手眼标定

固定相机拍照,机器人定位取料的原理解释

勇哥,很想停止 勇哥,很想停止 发表于2023-06-09 浏览10624 评论2
如图1。我们假设矩形就是电池。则这个电池是作为模板电池,其摆放的位置、机器人吸嘴过来取的位置都是做为模板位置。B1是模板特征点。本例子我们以电池左边与顶边的相交点做为特征点,且以顶线做为特征点的U。                             (图1)图2中,电池故意旋转一定角度放置。此时的B2点为当前电池的特征点。此时当前电池的特征点

哲学与人生

人这一辈子最重要的是什么?

勇哥,很想停止 勇哥,很想停止 发表于2023-05-26 浏览2170 评论0

三岁那年,我紧握着手中的棒棒糖,坚定的认为那最重要

五岁那年,我花了整整一个下午逮住那只蜻蜓,那一刻,它好像是

最重要的

七岁那年,我看着同桌手中的奖状,带着羡慕和一点点嫉妒,觉得那也许是最重要的。

九岁那年,仰躺在树荫下,阳光斑驳的洒在脸上,一个悠闲的暑假于我而言是如此重要

十三岁那年,我意识到,重点高中的录取通知书对我的人生很重要

C# 让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

C#/.net框架

C# 让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

勇哥,很想停止 勇哥,很想停止 发表于2023-03-31 浏览3534 评论0

让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

这个需求是有必要的。

勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。

虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。

但是好歹是实现的要求,而且不用重写一些方法。

效果如下:

勇哥谈下去除List的重复元素的问题

C#/.net框架

勇哥谈下去除List的重复元素的问题

勇哥,很想停止 勇哥,很想停止 发表于2023-03-26 浏览2262 评论1

勇哥注:

去除List的重复元素的问题是比较常见的需求,C#有标准的做法,以后不要自己写了。

    public class Student
    {
        public string Name { get; private set; }
        public int Id { get; private set; }
        public string Hobby { get; private set; }
        public Student(string name, int id, string hobby)
        {
            this.Name = name;
            this.Id = id;
            this.Hobby = hobby;
        }
        /// <summary>
        /// 方便输出,重写ToString方法
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return string.Format("{0}\t{1}\t{2}", this.Name, this.Id, this.Hobby);
        }
    }

    public class Compare : IEqualityComparer<Student>
    {
        public bool Equals(Student x, Student y)
        {
            return x.Id == y.Id;//可以自定义去重规则,此处将Id相同的就作为重复记录,不管学生的爱好是什么
        }
        public int GetHashCode(Student obj)
        {
            return obj.Id.GetHashCode();
        }
    }