图像:
灰度图像:黑白色组成的图像,组成图像的每个像素的值用灰度值表示,范围为0-255;以128为界限 越偏向0越黑 越偏向255越白
彩色图像:彩色图像的每个像素是由三基色红,蓝,绿组成,每个色的范围0-255,三色又称为三通道
区域:
如果说图像是用灰度值描述像素点,区域就可以用0或1来描述像素点是否被选中,即我们常说的二值化,由被选中的像素点所组成的图像就叫区域,区域是个集合。
轮廓:
轮廓是halcon中的一个数据结构,前面介绍的图像二值化出来的区域是以像素为单位的,该区域边缘是锯齿状,精度以像素为单位,在工业中我们往往需要得到比像素精度还要高的边缘,这时就需要提取亚像素数据,亚像素数据可以通过亚像素阈值分割或亚像素边缘提取算子提取来得到,这些处理结果是可以用亚像素轮廓来表示的。
3.2图像创建相关函数
1. 获取图像的大小
算子:get_image_size(Image : : : Width, Height)
示例:get_image_size (Image, Width, Height)
Image(输入对象):输入的图像变量
Width(输出控制):输出获取的图像宽
Height(输出控制):输出获取的图像高
2. 获取图像的类型****
算子:get_image_type(Image : : : Type)
示例:get_image_type (Image, Type)
Image(输入对象):输入的图像变量
Type(输出对象):输出的图像类型
3.3图像读取储存相关函数
读取图片read_image****
算子:read_image( : Image : FileName : )
示例:read_image (Image, 'C:/Users/Administrator/Pictures/Camera Roll/100.jpeg')
Image(对象输出):输出读取的图片
'C:/Users/Administrator/Pictures/Camera Roll/100.jpeg'(控制参数输入):输入读取图片的路径
存储图片write_image
算子:write_image(Image : : Format, FillColor, FileName : )
示例:write_image (Image, 'jpeg', 0, '100')
Image(输入对象):输入图像对象
'jpeg'(输入控制参数1):输入存储图像的格式
0(输入控制参数2):是否填充颜色 0代表不填充
'100'(输入控制参数3):输入存储图像的文件名称
3.4图像转换相关函数
彩色图转为RGB三通道图像decompose3****
算子:decompose3(MultiChannelImage : Image1, Image2, Image3 : : )
示例:decompose3(Image, ImageR, ImageG, ImageB)
Image(输入对象):输入的图像变量
ImageR(输出对象):输出R红色通道图像
ImageG(输出对象):输出G绿色通道图像
ImageB(输出对象):输出B蓝色通道图像
RGB 三通道图像转为灰度图像方法一rgb3_to_gray****
算子:rgb3_to_gray(ImageRed, ImageGreen, ImageBlue : ImageGray : : )
示例:rgb3_to_gray(ImageR,ImageG,ImageB,GrayImage)
ImageR(输入对象):输入R红色通道图像
ImageG(输入对象):输入G绿色通道图像
ImageB(输入对象):输入B蓝色通道图像
GrayImage(输出对象):输出灰度图像
RGB 三通道图像转为灰度图像方法二rgb1_to_gray****
算子:rgb1_to_gray(RGBImage : GrayImage : : )
示例:rgb1_to_gray(Image, GrayImage)
Image(输入对象):输入彩色图像
GrayImage(输入对象):输出灰度图像
RGB 三通道图像转为HSV图像trans_from_rgb****
注: 1.H通道:H通道的像素值表示色调,取值范围0~360
2. S通道的像素值表示图像的饱和度。饱和度是指图片彩色的纯度——图像的混合颜色越少,其饱和度越高,直观看起来就越鲜艳鲜明、视觉效果越强烈;反之图像的混合颜色越多,其饱和度越低,视觉效果越弱。
3. V通道像素值表示图像的明亮程度,取值范围也是0~1,值越大表示越亮。
算子:trans_from_rgb(ImageRed, ImageGreen, ImageBlue : ImageResult1, ImageResult2, ImageResult3 : ColorSpace : )
示例:trans_from_rgb(ImageR, ImageG, ImageB, ImageResultH, ImageResultS, ImageResultV, 'hsv')
ImageR(输入对象):输入R红色通道图像
ImageG(输入对象):输入G绿色通道图像
ImageB(输入对象):输入B蓝色通道图像
ImageResultH(输出对象):输出H色调图像
ImageResultS(输出对象):输出S饱和度图像
ImageResultV(输出对象):输V明亮程度出图像
颜色反转invert_image 白变黑 黑变白****
算子:invert_image(Image : ImageInvert : : )
示例:invert_image (Image, ImageInvert)
Image(输入对象):输入灰度图像
ImageInvert(输出对象):输出反转后的灰度图像
3.5图像中的字体设定 字体颜色设定 显示样式设定 信息显示
图像中的字体设定set_display_font
算子:set_display_font( : : WindowHandle, Size, Font, Bold, Slant : )
示例:set_display_font (200000, 24, 'mono', 'true', 'false')
200000(输入参数1):输入窗口句柄
24(输入参数2):输入字体大小
'mono'(输入参数3):输入字体类型
'true'(输入参数4):是否选择粗体
'false'(输入参数5):是否选择斜体
图像中的字体颜色设定dev_set_color
算子:dev_set_color( : : ColorName : )
示例:dev_set_color ('green')
'green'(输入参数):设定颜色
图像中的显示样式设定dev_set_draw
算子:dev_set_draw( : : DrawMode : )
示例:dev_set_draw ('margin')
'margin'(输入参数):显示类型 填充or 不填充
图像中的信息显示设定
第一种disp_message
算子:disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )
示例:disp_message (200000, '第一种显示设定图像中的信息显示', 'Image', 10, 10, 'black', 'true')
200000(输入参数1):输入窗口句柄
'第一种显示设定图像中的信息显示'(输入参数2):输入显示内容
'Image'(输入参数3):输入在哪张图像上显示
10(输入参数4):输入显示信息位置的行坐标
10(输入参数5):输入显示信息位置的列坐标
'black'(输入参数6):输入显示字体的颜色
'true'(输入参数7):输入是否背景有框
第二种 1.设定显示位置 set_tposition 2.设定显示信息write_string
算子:set_tposition( : : WindowHandle, Row, Column : )
示例:set_tposition (200000, 100, 10)
200000(输入参数1):输入显示窗口句柄
10(输入参数2):输入显示信息位置的行坐标
10(输入参数3):输入显示信息位置的列坐标
算子:write_string( : : WindowHandle, String : )
示例:write_string (200000, '第二种显示设定图像中的信息显示')
200000(输入参数1):输入窗口句柄
'第二种显示设定图像中的信息显示'(输入参数2):输入需要显示的信息