转战Halcon日记【2】-- 灰度化和二值化

上一篇博客,我们学习了用halcon怎么去读图,以及获取一些图片的相关信息,这一篇我来记录如何灰度化和二值化相关操作

转战Halcon日记【1】-- 图片读取 - gammalog - 博客园 (cnblogs.com)

灰度化

*读取图像
read_image (Part548, 'C:/Users/59436/Desktop/捕获.PNG') *获取RBG三个通道的图片
*第一个参数图片变量
*第二个到最后的参数分别是R通道的图片、G通道的图片,B通道的图片
decompose3(Part548, Image1, Image2, Image3)

*将三个单通道的图片整合成34通道的图片
*第一个到第三个参数分别是三个通道的土拍你
*第4个参数是得到的新的3通道的图片 compose3(Image1, Image2, Image3, MultiChannelImage)

*RGB图像变成单通道的图像
*第一个参数RGB的图片
*第二个参数是用于保存单通道图像的变量名称 rgb1_to_gray(MultiChannelImage, GrayImage)

*将RGB颜色空间图片转变成HSV空间的图片 trans_from_rgb(Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3,
'hsv')

截图来看看效果

 

 

二值化

*读取图像
read_image(Image, 'printer_chip/printer_chip_01')

*全局二值化图像(一般二值化单通道的图像)
*第一个参数是需要二值化的图像
*第二个参数是得到的二值化后的图像
*第三个和第四个参数分别是二值化数据的范围的最小值和最大值,通俗来说就是大于最小值和小于最大的值的数,我们让它变白,不在这个区间的数值就变黑
threshold(Image, Region, 128, 255)

*自动阈值二值化图像
*第一个参数还是图片,第二参数是二值化之后的图像
*第三个参数'max_separability'表示自动通过灰度直方图找到一个最佳的阈值将图片非为前景和背景
*第四个参数'dark',表示比阈值大的变成背景,比阈值小的就是前景  当这个参数是'light'的时候就反过来
*第五个参数是自动计算出来的阈值
binary_threshold(Image, Region, 'max_separability', 'dark', UsedThreshold)

*动态阈值
*动态阈值之前一般会经过一个中值滤波(这个以后再来记录)
mean_image(Image, ImageMean, 27, 27)
*第一个参数是原始,第二个参数是中值滤波之后的图片,第三个参数动态阈值之后的图片
*第四个参数是offset,当原图和中值滤波之后的图像的差大于15时,当第五个是light时,大于15的值变成前景
dyn_threshold(Image, ImageMean, RegionDynThresh, 15, 'light')

 

 

 

 截图来看看效果

 

posted @ 2022-06-23 16:51  gammalog  阅读(1505)  评论(0编辑  收藏  举报