机器视觉进阶(二)
文章平均质量分 86
工业机器视觉设计和实现
这个作者很懒,什么都没留下…
展开
-
机器视觉入门之路(四四,图像buffer,感兴趣区域(ROI))
前面只提到加载8位灰度bmp图像,以下是24位灰度图像的加载和24位rgb(红绿蓝三色)图像转灰度图像的加载,作以补充。因为你操作的是图像buffer(8位图像数组),所以,此处是把bmp加载到buffer中。string path = Environment.CurrentDirectory; realtimeImage.Image = Bitm...原创 2019-04-29 19:30:27 · 1051 阅读 · 0 评论 -
机器视觉线图像工具相关联想
早上起来看自己的机器视觉博客:忽然把线图像工具和墨子的墨盒联系了起来,墨盒里有个线线,染成黑色,绕在一个轱辘上,小时候,家里的桌椅板凳,门窗,房屋都是离不开木匠师傅手里这条线线的置办。再如,砌墙的线锤,这不就是线图像工具的最好应用吗?我们的祖先真的好神奇,好伟大!以前总是以为线图像工具是机器视觉先驱们的伟大发明,其实准确的说,他们是这种思想最早引入机器视觉,并付之行动的人。这又让我想起了现代计算机的来源,改良后的纺纱织布机(我还记得中学历史上,工业革命两项最伟大的发明,瓦特的蒸汽机和珍妮纺纱原创 2020-06-02 11:21:25 · 309 阅读 · 0 评论 -
简单工业机器视觉选型(相机镜头光源)
在工业机器视觉的选型中,目的决定一切,他是一切的来源针对做什么(目的),就有什么样的事物(产品)事物决定视野,镜头,相机等等等等1,目的,切割晶圆,切割通道2um(这会是什么样的高精度切割激光呢?)2,视野0.8mm*0.6mm(这会是什么样的相机呢?)3,视觉精度小于0.5um,重复精度小于1um(这会是什么样的镜头呢?)4,镜头工作距离,至少一个30mm厚度的光源,再有一些空隙,30mm吧5,选用什么样的光源呢?感谢部门有一个机器视觉实验室,好怀念,解决了我的很多问题,多原创 2020-05-18 09:54:44 · 1655 阅读 · 0 评论 -
机器视觉入门之路(四九---B,神奇的线图像的设计D(完整代码))
以下是DdaFindPtImprove函数的完整代码,完整代码,完美运行。 public PointF DdaFindPtImprove(ref byte[] buffer8, PointF Start, PointF End, int thresDelta, int Dir, Size wh, ref int Pos) { float x, y;...原创 2020-04-26 14:40:22 · 302 阅读 · 0 评论 -
拜耳色彩(basler相机sca750-60gc解析,仔细研究相机说明书成果c#)
今天拜耳与路遥相遇,是一种庆幸。下面是研究成果,做以记录。相机ccd矩阵排列,请百度(或者下载baslersca750-60gc相机pdf),下面只有解析算法: //basler bayercolor for (int jj = 0; jj < hh; jj++) for (int ii = 0; ii <...原创 2019-11-17 18:42:45 · 461 阅读 · 0 评论 -
机器视觉入门之路(六十,神奇的线图像第五变,找圆工具匹配识别实现)
先看一幅图:这本是一幅2448*2048(W*H)的图像,而我只截取了其下半截,这里边有近似圆的东西(岳云的铜锤),我们怎么找到它呢?是的,眼睛已经搞定,但是计算机还搞不定,我们如何让视觉与计算心照不宣?首先,使用我们的找圆工具学习(learning):a,截取感兴趣区域;b,使用找圆工具找到圆心和半径以及其他。第二幅图怎么变成黑白图了?是的,图像进行了二值化,大于灰度100,...原创 2019-04-28 11:08:40 · 1161 阅读 · 0 评论 -
机器视觉入门之路(五九,相对坐标系工具设计B,c#)
上一节完成了roibase3下层基础画类,接下来是中层操作类ROI_coord: public class ROI_coord { public RoiBase3 m_RoiBase; public E_HANDLES m_eHandle; public Cursor m_cur; public ROI_coord(...原创 2019-04-26 15:33:30 · 295 阅读 · 0 评论 -
机器视觉入门之路(五八,神奇的线图像的第四变,相对坐标系工具设计A,c#)
前面讲到了相对坐标系工具,但没有实现它,现在补齐。一个窗口,就有一个坐标系,但是,你动不了它,它始终是(0,0),所以有时,我们需要一个相对坐标系,可以拖动,也可以旋转,因为他能提供便利,所以我们就制作了他,特别要指出,当这个相对坐标系工具位于感兴趣区域中心(focus)时,而且与你期望的xy轴重叠时,你就会忘记了原来的那个(0,0)点。从某种意义上讲,相对坐标系不亚于相对论,我这样给你比喻,...原创 2019-04-26 10:37:52 · 331 阅读 · 0 评论 -
机器视觉入门之路(五七,写博客的快意节奏!---慢时光领悟)
这样设计下去,每一个正常的人都会疯掉!我们已经升了十四级,该告一段落了!其实这个过程叫做learning,learning是一个耗时,复杂,练习,寻找道,领悟道的一个过程,大多数情况是学不到,以失败告终,所以learning是一个艰难困苦的历程。那么我们的道是什么?就是线图像。我们学会了线图像变感兴趣区域(ROI),学会了变找线工具,学会了变找圆工具,其实还可以变相对坐标系工具(fixture),...原创 2019-04-11 13:06:23 · 335 阅读 · 0 评论 -
机器视觉入门之路(五六,找圆工具的设计B,c#)
在我们截取的感兴趣区域里,我们让找圆工具运行起来:1, mg_CircleCaliper gaugeCir;//增加变量声明2, gaugeCir = new mg_CircleCaliper();//form()中初始化 gaugeCir.m_cirRoi.m_RoiCircle.Init(100, 100, 50);3,在图像控件mousemove事件响应中...原创 2019-04-10 20:20:00 · 523 阅读 · 0 评论 -
机器视觉入门之路(五五,找圆工具的设计A,c#)
第二个封装类:鼠标对圆的三个操作 public class ROI_Cirle { public RoiBase2 m_RoiCircle; public E_HANDLES m_eHandle; public Cursor m_cur; public ROI_Cirle() { ...原创 2019-04-10 16:22:32 · 534 阅读 · 0 评论 -
机器视觉入门之路(五四,找圆工具的设计,神奇的线图像第三变)
在我们人类抽象世界里,随处都是直线和圆的影子。就拿最近的视觉世界镜头的标定板,有两种,方格子和圆,方格子是直线形成的,再譬如,手机板上用来定位的,很多使用“十”字,这也是两条交叉的直线。这或许是“无以规矩,不成方圆”的暗示吧。现在,我们的金箍棒又要增加新功能了,那就是变形,把找线工具(通格本)变形成一段弧线,这个描述不准确,应该称为文人墨客纸扇的扇面更恰当。更多的扇面,就可以围成一个圆。当你把...原创 2019-04-10 11:07:58 · 565 阅读 · 0 评论 -
机器视觉入门之路(五三,找线工具的设计C)
找线工具准备工作已经做完,在pictureBoxRoiImg控件显示出来:1, private mg_Caliper m_caliperforFindLine;//声明找线工具2, m_caliperforFindLine = new mg_Caliper();//在form()中初始化3,private void pictureBoxRoiImg_MouseMove(obje...原创 2019-04-09 12:47:14 · 552 阅读 · 2 评论 -
机器视觉入门之路(五二,找线工具的设计B)
class ROI改变仅一处。 public void DrawRectFrame(bool lbtn, PointF point) { if (lbtn) { switch (m_eHandle) { case E_HAN...原创 2019-04-09 12:01:56 · 378 阅读 · 0 评论 -
机器视觉入门之路(五一,找线工具的设计A)
继续我们昨天的工作,先把这个有中间分隔线(rccentreline)的矩形画出来,然后等间隔增加线图像,让他变成找线工具。对比“丁”字型线图像工具roibase类,有如下增加:1,增加了三条线声明:public mg_line otherLine1;//上---------- public mg_line otherLine2;//下---------- pu...原创 2019-04-09 10:28:41 · 485 阅读 · 0 评论 -
机器视觉入门之路(四九---A,神奇的线图像的设计D,c#)
因为线图像startline有了起点和终点,我们就可以用DDA法求出线上所有点,任意斜率直线通过四象限八区域查表法界定。我们只示范一个区域:函数为:public PointF DdaFindPtImprove(ref byte[] buffer8, PointF Start, PointF End, int thresDelta, int Dir,Size wh,ref int Pos)//th...原创 2019-04-07 21:58:06 · 1621 阅读 · 0 评论 -
机器视觉入门之路(四八,神奇的线图像的设计C,c#)
线图像RoiBase类比起感兴趣区域RoiBase1类要复杂一些,关键是直线的旋转带来的。我们要操作他,还要封装到 public class ROI//设计的线图像工具 { public RoiBase m_RoiBase; public E_HANDLES m_eHandle; public Cursor m_cur; ...原创 2019-04-07 20:55:20 · 379 阅读 · 0 评论 -
机器视觉入门之路(四七,神奇的线图像的设计B,c#)
其实前面讲的自动对焦的梯度和与线图像中的梯度和是不一样的(两者梯度也不一样),如果你囫囵吞枣,我就要称你“马虎哥”了。实质上,梯度和携带了方向,他不是角度方向,白(255)-黑(0)=255,是正值,方向是白到黑,相反,为负值,则是黑到白。自动对焦中使用绝对值更能体现清晰度,而线图像中梯度和出现最大值,则是白到黑的边界,如果这个最大值带有负号,则出现了黑到白的边界。好了,为了区分感兴趣区域(R...原创 2019-04-07 15:51:22 · 439 阅读 · 0 评论 -
机器视觉入门之路(四六,神奇的线图像的设计A,c#)
线图像的感知能力,与像素差相关,当有边缘穿过线图像时,或者说,当线图像穿过图像边缘时,就会有最大像素差出现,记下这个位置,并在图像上画个红色的叉叉标示出来,我们就会发现,线图像具有了感知力。关于线图像,我们要再增加几个概念。这是线图像能旋转,增加了灵活度导致的。线图像和我们图像的行重合时,线图像的位置坐标(x,y)是整数型的,像素值(颜色灰度)也是整数型的,像素差(颜色灰度差)也是整数型的...原创 2019-04-07 12:11:10 · 410 阅读 · 0 评论 -
机器视觉入门之路(五十,找线工具的设计,神奇的线图像第二变)
当你把线图像工具拖动到有边缘的地方,让rccentreline与边缘重合,而穿越点已经到位了,虽然线图像startline在上下移动,而穿越点就在边缘上定下来了,在你调试时,你可以求一下穿越点角度theta=arctg(gy/gx)与rccentreline的角度(k1*k2=-1),对比一下是否垂直?证实一下我们眼睛所看到的。另外,rccentreline拖动旋转后,startline也会变化,...原创 2019-04-08 15:11:10 · 1089 阅读 · 5 评论 -
机器视觉入门之路(四五,实现自动对焦,引出神奇的线图像,c#)
前面一篇,花费了很大力气的代码来实现显示一幅bmp图像和感兴趣区域(ROI)图像截取,它是值得的,因为你不能光说不练。借这个东风,自动对焦的代码如下: int[,] 差分图像x = new int[_RoiH, _RoiW];//感兴趣区域(ROI)的高度和宽度 int[,] 差分图像y = new int[_RoiH, _RoiW...原创 2019-04-06 08:58:44 · 1569 阅读 · 0 评论 -
机器视觉入门之路(四三,感兴趣区域(ROI)图像,神奇的线图像前奏,c#)
假定你有一定的C#编程基础。下面代码是显示一幅bmp图像(默认是8位灰度图像,即0-255灰度的黑白色)string path = Environment.CurrentDirectory;//获取debug路径BitmapcurBitmap = (Bitmap)Bitmap.FromFile(path + "\\contour2.bmp");//debug路径下有图像contour...原创 2019-04-04 16:16:00 · 2190 阅读 · 0 评论 -
机器视觉入门之路(四二,感兴趣自动对焦)
你想用激光在手机背面打印几个字“Megauging”,拿出手机,放到激光镜头下,若不是激光有红光定位,你就很难在想要的位置打上这几个字,放好,鼠标点击按钮“打标(Mark)”,哇,出光了,美观的几个字便跃然其上。其实手机的两条边可以形成一个坐标系,若我们能通过这个坐标系,定位打标(mark),精度会比红光定位要好,而且这些重复的定位啊!打标(mark)啊!让机器自动去做,想一想不错,想可以,做...原创 2019-04-04 10:38:38 · 1225 阅读 · 1 评论 -
机器视觉入门之路(零,可遇可求)
《视觉信息处理脑机制》中有句话,眼是人的前脑。而当下,那么计算机视觉(cv)便是人工智能(ai)的前脑。learning opencv中的learning是什么意思呢?我想,应该是两个意思,首先,学习这本书;另外,直接翻译,进行的学习,学以致用,用什么?模式识别呗!通俗一点讲,即就是匹配(Match),匹配需要特征(feature),这便是学习的灵魂。学习->特征->匹配识别,这不...原创 2019-04-03 22:54:38 · 506 阅读 · 0 评论 -
简单使用gige千兆网口basler工业相机
1,安装basler相机的驱动程序,选择安装pylonc.net2,创建c#程序,项目添加引用pylonc.net.dll动态库3,最简单使用gige千兆网口basler工业相机a,using PylonC.NET;b,//声明basler相机变量 PYLON_DEVICE_HANDLE hDev = null; PylonBuffer<Byte> imgBuf = null; PylonGrabResult_t grabResu...原创 2020-05-17 10:18:55 · 4317 阅读 · 2 评论