机器视觉——物块分拣

2024-06-05 05:52
文章标签 机器 视觉 分拣 物块

本文主要是介绍机器视觉——物块分拣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天我们来讨论一下如何让机器能够从含不良产品的物品中选出优品。

假如这个为优品(OK):

这个为次品(NG):

那么我这里有一系列物品图片,分拣出好的和坏的,分辨标上OK、NG

先对所有文件做一次筛选,踢去非图片类的文件。

list_files ('./img/物块', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)

由于我们这么多图片,肯定是要放一个for循环,进行循环处理。

for Index := 0 to |ImageFiles| - 1 by 1...
endfor

像往常一样,我们先进行通道分解,将多通道分解成RGB单通道灰度图像。

decompose3(Image,R,G,B)

阈值分割

threshold (G, Regions, 0, 20)

连通域打散

connection(Regions,ConnectedRegions)

特征筛选

select_shape(ConnectedRegions,SelectedRegions,\'area','and',200000,300000)

因为用G图像分解

优品在灰度直方图里面没有的

而次品就很明显全红,这也是两种区别最大的地方

 次品选中区域的面积为

然后大部分面积都处于200000-300000之间。所以我们特征筛选范围为200000,300000。

将每一个选出来的区域放在SelectedRegions变量里面,然后统计数量

count_obj(SelectedRegions,Number)

因为只要面积范围选的对,那么Number就为1

所以只要Number为1就说明为次品,打印NG;否则打印OK

if(Number==1)*清空窗口dev_clear_window()*展示原图dev_display(Image)set_display_font(3600,28, '楷体', 'true', 'false')disp_message(3600,'NG',\'image',10,10,'red','false')endifif(Number!=1)*清空窗口dev_clear_window()*展示原图dev_display(Image)set_display_font(3600,28, '楷体', 'true', 'false')disp_message(3600,'OK',\'image',10,10,'green','false')endif

完整代码

list_files ('./img/物块', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])decompose3(Image,R,G,B)*第一次阈值分割(分骰子的主体部分)threshold (G, Regions, 0, 20)*连通域打散connection(Regions,ConnectedRegions)*特征筛选select_shape(ConnectedRegions,SelectedRegions,\'area','and',200000,300000)count_obj(SelectedRegions,Number)if(Number==1)*清空窗口dev_clear_window()*展示原图dev_display(Image)set_display_font(3600,28, '楷体', 'true', 'false')disp_message(3600,'NG',\'image',10,10,'red','false')endifif(Number!=1)*清空窗口dev_clear_window()*展示原图dev_display(Image)set_display_font(3600,28, '楷体', 'true', 'false')disp_message(3600,'OK',\'image',10,10,'green','false')endifstop()
endfor

最终成功案例

 

这篇关于机器视觉——物块分拣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032237

相关文章

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念,指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序,这个人机对弈游戏让他的声名鹊起,机器学习这个概念才进入大众的是视线。 在这个跳棋程序里,他编程了一种算法,这个程序与Arthur下了数万次跳棋,计算机逐渐学会了下在哪里有更大的可能会赢得比赛,哪里会输,通过这种方法,最

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.