分类器——高斯混合模型/Gaussian-Mixture-Models(GMM)之图像分割
图像分割之高斯混合模型
使用GMM的步骤如下:
首先,GMM由create_class_gmm创建。
然后,通过add_sample_class_gmm添加训练向量,然后可以使用write_samples_class_gmm将它们写入磁盘。
通过train_class_gmm确定分类器中心参数(如上定义)。
此外,它们可以与write_class_gmm一起保存,以便以后分类。
**********************************************************************************************************
如下实例,将树莓的红色和绿色分割出来
*分类器使用2种不同的颜色进行训练。
*与其他分类器相比,未经训练的颜色很容易被拒绝。
dev_update_off ()
dev_close_window ()
dev_open_window (0, 0, 735, 485, 'black', WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_colored (6)
dev_set_line_width (3)
read_image (Image, 'test')
dev_display (Image)
Color := ['indian red','cornflower blue','white','black','yellow']
*创建包含2个类的训练样本的区域
draw_circle(WindowHandle, Row, Column, Radius)
gen_circle(Red, Row, Column, Radius)
draw_circle(WindowHandle, Row, Column, Radius)
gen_circle(Green, Row, Column, Radius)
concat_obj(Green,Red,Classes)
Message := 'Training regions for the color classifier'
disp_message (WindowHandle, Message, 'window', 12, 12, 'cyan', 'false')
disp_continue_message (WindowHandle, 'cyan', 'false')
stop ()
*创建分类器和添加分类器样本
create_class_gmm (3, 2, [1,10], 'full', 'none', 2, 42, GMMHandle)
add_samples_image_class_gmm (Image, Classes, GMMHandle, 2.0)
dev_display (Image)
Message := '训练中 ...'
disp_message (WindowHandle, Message, 'window', 12, 12, 'cyan', 'false')
*训练分类器
train_class_gmm (GMMHandle, 500, 1e-4, 'uniform', 1e-4, Centers, Iter)
Message := Message + ' 完成.'
Message[1] := '分割/分类图像'
disp_message (WindowHandle, Message, 'window', 12, 12, 'cyan', 'false')
*分割/分类图像
classify_image_class_gmm (Image, ClassRegions, GMMHandle, 0.0001)
region_to_mean (ClassRegions, Image, ImageClass)
dev_display (ImageClass)
Message[1] := Message[1] + ' 完成.'
disp_message (WindowHandle, Message, 'window', 12, 12, 'cyan', 'false')
原图
分割后图像
1.create_class_gmm — Create a Gaussian Mixture Model for classification 创建一个高斯混合模型分类器
create_class_gmm( : : NumDim, NumClasses, NumCenters, CovarType, Preprocessing, NumComponents, RandSeed : GMMHandle)
*NumDim 数据维数,如2D图像数据为2
*NumClasses 分类器分类种数
*NumCenters 每个类中心数量设置
2.region_to_mean — Paint regions with their average gray value. 使用区域的平均灰度值绘制区域。
------------------------------------
承接
**视觉检测软件开发及调试
**工业软件开发
**上位机软件开发
wechat:luoran2024
qq:565934058
email:taoyuansu@qq.com
海量教育资源及影视资源下载
微信公众号:EFun科技
------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!