【Halcon】实现分离通道、创建矩形、获取灰度级、求最大最小均值、求大于某一灰度级的像素点数
read_image (Image, 'D:/image/123.jpg') rgb1_to_gray (Image, GrayImage) gen_rectangle1 (Rectangle, 100, 100, 200, 200) rectangle1_domain (GrayImage, ImageReduced, 100, 100, 200, 200) crop_domain (ImageReduced, ImagePart) get_region_points (ImagePart, Rows, Columns) get_grayval (ImagePart, Rows, Columns, Grayval) tuple_length (Grayval, Length) tuple_min (Grayval, Min) tuple_max (Grayval, Max) tuple_mean (Grayval, Mean) threshold(ImagePart, Region, 100, 255) region_features (Region, 'area', Value)
注:下述解释中用到的所有类 (x, y) 的形式,都是以数学坐标系为基础进行的,但是在Halcon中,Row表示行数(代表 y),Col表示列数(代表 x)
我们依次分析每个算子的作用:
1、read_image( : Image : FileName : )
根据 FileName 读取图片,然后输出到 Image 中。
2、rgb1_to_gray(RGBImage : GrayImage : : )
将RGB图像 RGBImage 转为灰度图输出到 GrayImage 中
3、gen_rectangle1( : Rectangle : Row1, Column1, Row2, Column2 : )
创建一个矩形,左上角坐标是(Column1, Row1),右下角坐标是(Column2 , Row2),并输出到 Rectangle
4、crop_domain(Image : ImagePart : : )
将输入的 Image 图像以独立图像的形式输出到 ImagePart,即上一步只是裁剪,但是其坐标还是针对于被裁剪的原图,到这一步时其坐标才是以独立图像进行(大白话就是,gen_rectangle1得到的左上角不是 0, 0,只有再使用 crop_domain 后其左上角才是 0, 0 )
5、get_region_points(Region : : : Rows, Columns)
获取输入图像 Region 的所有像素点坐标,并输出到 Rows,Columns 中
6、get_grayval(Image : : Row, Column : Grayval)
获取输入图像 Image 从 (0, 0)到(Column, Row)之间的所有像素点的灰度级,并输出到 Grayval 中。
7、tuple_length( : : Tuple : Length)
获取输入数组 Tuple 的长度赋值给 Length。
8、tuple_min( : : Tuple : Min)
获取输入数组 Tuple 的最小值赋值给 Min
9、tuple_max( : : Tuple : Max)
获取输入数组 Tuple 的最大值赋值给 Max
10、tuple_mean( : : Tuple : Mean)
获取输入数组 Tuple 的平均值赋值给 Mean
11、threshold(Image : Region : MinGray, MaxGray : )
将输入图像 Image 进行二值化,最小值为 MinGray,最大值为 MaxGray,最后输出到 Region 中。
12、region_features(Regions : : Features : Value)
将输入图像 Regions 根据所选特征 Features 进行计算,然后返回计算得到的特征数赋值给 Value。( Features 列表详情参考 HDevelop 帮助窗口)