第十四课 颜色识别1
1、 HSV:H色度、S饱和度、V亮度
2、 学习机器视觉要掌握这些内容。
3、 HSV弱点:受光照影响非常大!
4、 不同的H值对于不同的颜色。
5、 demo - 应用范围 - 颜色检测 - color_simple:
核心函数:
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, ‘hsv’)
reduce_domain (Hue, HighSaturation, HueHighSaturation)
思路:
①:RGB→HSV
②:在S分量中划区域
③:在H分量中截出该区域,继续操作。因为H分量是色度,相当于灰度图。
步骤:
分解成RGB → 转HSV → 在S分量中选区域 → 在H分量中用阈值再次选择区域 → 断开连通域 → 利用特征直方图选区域 → 闭运算 → 在图像中扣除H分量中找的内容(reduce_domain())
ps:用特征直方图选的时候都要断开连通域
* color_simple.hdev: segment yellow cable in HSV color space
dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
for i := 1 to 2 by 1
read_image (Image, 'cable' + i)
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
threshold (Saturation, HighSaturation, 100, 255)
reduce_domain (Hue, HighSaturation, HueHighSaturation)
threshold (HueHighSaturation, Yellow, 20, 50)
connection (Yellow, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0)
closing_circle (SelectedRegions, Yellow, 3.5)
reduce_domain (Image, Yellow, ImageReduced)
dev_display (HueHighSaturation)
dev_display (ImageReduced)
stop ()
endfor
6、 demo - 应用范围 - 颜色检测 - color_fuses
第十四课 颜色识别2
对于图片内容不多、颜色差别大的大色块的图片可以直接在H分量中选择区域!(H分量和S分量差别也不大)
但是对于H分量和S分量差别大的,还是先在S中选,在到H中。
S分量中轮廓清楚些。
看个例子。
第十六课 MLP训练
1、 MLP(MultiLayer Perception)多层感知机,也叫人工神经网络ANN(Annual Neural Network)。
2、 MLP训练的例程只要看 demo-应用-颜色检测-color_pieces
3、 特征训练、特征学习。一个物品有多种特征,不只是识别颜色,所以灰度图一样可以训练。还有其他纹理、概率等特征。
4、 在使用draw_region()函数前,一定要加dev_set_color()函数。
5、 *表注释。
6、 三部曲:创建分类器,添加样本,训练。
7、 糖豆程序中:
create_class_mlp(3, 7, 5, 'softmax', 'normalization', 3, 42, MLPHandle) //3代表3个特征变量的数量,7代表隐层节点数量,5代表输出的5个分类
add_samples_image_class_mlp(Image, Classes, MLPHandle) //将
disp_message(WindowHandle, '开始训练模型', 'window', 12, 12, 'black', 'true')
train_class_mlp(MLPHandle, 400,0.5, 0.01, Error, ErrorLog) //训练
classify_image_class_mlp(Image, ClassRegions, MLPHandle, 0.5) //利用训练完的模型来运行
第十九课 HALCON自定义算子封装
1、封装本地函数和库函数的时候,一定先要全部选中!
本地函数:关闭后重新打开就没有了
2、封装本地函数:
先把写好的函数全部选中 - 函数 - 创建函数
一般设置 - 名称 - 类型:本地函数类型
参数 - 输入参数 + 控制参数
参数文档 - image + regions + lujing(看图)
多通道可选 正确:返回值总是一个多通道的图像
3、 封装库函数:
步骤基本同上,在一般设置里的类型中选择库函数,并选好路径。我就保存在桌面上试一下。
封装好后,打开 函数 - 管理函数 - 添加路径或文件
添加后就能查看了
4、 点击该图标(单步跳入函数),可以进入封装函数内查看