Halcon 使用二维像素分类对图像进行分割

发布于:2024-10-15 ⋅ 阅读:(113) ⋅ 点赞:(0)

算子

histo_2dim 计算双通道灰度值图像的直方图

histo_2dim(Regions, ImageCol, ImageRow : Histo2Dim : : )
	Regions (输入对象):在此区域内计算直方图。这些区域是从图像中分割出来的一部分或多部分,通常是感兴趣区域(ROI, Regions Of Interest)。
	ImageCol (输入对象):多通道图像的第一个通道。这个通道的数据将被用于计算直方图的第一维。
	ImageRow (输入对象):多通道图像的第二个通道。这个通道的数据将被用于计算直方图的第二维。
	Histo2Dim (输出对象):计算得出的二维直方图。输出是一个整数类型的图像,其中的每个像素值代表了对应灰度级组合出现的频率

class_2dim_sup 使用二维像素分类对图像进行分割

class_2dim_sup(ImageCol, ImageRow, FeatureSpace : RegionClass2Dim : : )
	ImageCol (输入对象):输入图像(第一通道)。这是一个单通道图像,通常为灰度图像,其数据将用于分类的第一维特征。
	ImageRow (输入对象):输入图像(第二通道)。这是另一个单通道图像,其数据将用于分类的第二维特征。
	FeatureSpace (输入对象):定义特征空间的区域。这是指在哪个区域范围内进行特征分类。通常,这是从原始图像中分割出的感兴趣区域(ROI)。
	RegionClass2Dim (输出对象):分类后的区域。这是根据输入的两个通道图像在定义的特征空间内进行分类后得到的区域。

示例

在这里插入图片描述

* Segment an image using two-dimensional pixel classification.
* 
* For interactive mode set this variable to 1
Interactive := 1
* 读取照片
read_image (Image, 'ic')
dev_close_window ()
* 获取图片大小
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'white', WindowID)
* Convert a three-channel image into three images
* 产生R,G,B三种颜色通道
decompose3 (Image, Red, Green, Blue)
dev_display (Red)
dev_set_color ('red')
if (Interactive)
    * 绘制区域
    draw_region (Pattern, WindowID)
else
    *产生矩形
    gen_rectangle1 (Pattern, 362, 276, 371, 298)
endif
* Calculate the histogram of two-channel gray value images
* 计算两种颜色的通道灰度值图像的直方图(如果是红色则填写绿色和蓝色)
histo_2dim (Pattern, Red, Blue, Histo2Dim)
threshold (Histo2Dim, Features, 1, 255)
* Close a region with a circular structuring element
closing_circle (Features, FeaturesClosed, 11.5)
dev_set_draw ('fill')
dev_set_part (0, 0, 511, 511)
dev_display (Red)
* 使用二维像素分类对图像进行分割(如果是红色则填写绿色和蓝色)
class_2dim_sup (Red, Blue, FeaturesClosed, RegionClass2Dim)

网站公告

今日签到

点亮在社区的每一天
去签到