Halcon 学习之图像分割之彩色分割
·
本人声明:在本博客以及后续的博客中,全部代码都以C++形式进行实现,使用的数据类型为 HImage,而不是单纯的使用算子或Hobject 数据类型;不对之处,请大家指正;也请大牛不吝赐教;
Halcon 中对彩色图像进行分割的算子为:
decompose3(MultiChannelImge: Image1 : Image2: Image3::)
该算子的作用是将图像分为三个单通道图像;
MultiChannleImage: 输入的要进行分割的多通道图像,一般为三通道;
Image1: 转换的第一个通道图像,对应 Red 红色;
Image2:转换的第二个通道图像,对应Green 绿色;
Image3:转换的第三个通道图像,对应 Blue 蓝色;
而在C++中对应的接口为:HImage HImage::Decompose3(HImage* Image2, HImage* Image3) const
其中,Image2,对应转换的第二个通道,即绿色通道;Image3,对应转换的第三个通道,即蓝色通道;
转换后的第一个通道,即红色通道,为返回值;
其C++实现代码如下所示:
HImage hImg2;
hImg2.ReadImage("01.jpg");
HImage r, g, b;
r = hImg2.Decompose3(&g, &b);
showImage(r, IDC_PIC2); // 将图片进行保存
r.WriteImage("jpg",0, "r.jpg");
g.WriteImage("jpg",0, "g.jpg");
b.WriteImage("jpg",0, "b.jpg");处理后的 R、G、B 图像如下图所示:
其中,从左到右依次为 R通道、G通道、B通道;使用OpenCV 进行验证,图像如下所示:
可以看出,两种方式提取的图像完全一样;
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)