Halcon常用算子

判断是否为空

read_image (Image, 'printer_chip/printer_chip_01')
create_bar_code_model ([], [], BarCodeHandle)
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
gen_empty_region (EmptyRegion)
test_equal_region (EmptyRegion, SymbolRegions, IsEqual)
if (IsEqual==1)
    *没有识别到条码
endif
*每次在二维码那里识别不到就出现了问题,现在用这个方法可以先和空Region比对下,IsEqual==1就是没有识别到.

通用部分

crop_domain ( Image : ImagePart : : ) 
crop_domain裁剪图片,得到一个新的图片,可以对这个新的图片进行提取有用的信息。那怎么将这个有用的信息显示在原来的图片。reduce_domain 与crop_domain 配合使用的效果非常好
*保存原始图像
write_image (Image, 'bmp', 0, 'C:/Users/Way.li/Desktop/11.bmp')
*获取窗体句柄
dev_get_window (WindowHandle1)
*保存窗体中显示的图像,显示的结果和现在窗体中一致
dump_window (WindowHandle1, 'bmp', 'C:/22.bmp')
中值滤波
median_image (ImageNoise, ImageMedian, 'square', 3, 'mirrored')
图像增强对比度,请图片变的更清析
*可以让图片变亮或变暗,Mult参数会让图片亮暗差异更明显,1是原始状态
scale_image (Image, ImageScaled, 2, 0)
*图像增强,让亮的更亮,暗的更暗.
emphasize (ImageScaled, ImageEmphasize, 7, 7,3)
*增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰
illuminate (ImageEmphasize, ImageIlluminate, 101, 101,0.1)
*目的是去除图像噪声在恒定的图像块中,同时保留图像边缘。
anisotropic_diffusion (ImageReduced, ImageAniso, 'weickert', 10, 1, 3)
*边缘检测
sobel_amp (ImageReduced, EdgeAmplitude1, 'sum_abs', 3)
*使用regiongrowing算子寻找颜色相近的区域,可以很快找出想要的区域
regiongrowing (GrayImage, Regions, 6, 6,10, 5000)
HDevWindowStack.SetActive(hv_WindowHandle); 
*将窗体设定为活动窗体

    HDevWindowStack.SetActive(hv_WindowHandle); *将各个像素存储为图像区域.可以是自己画的一个点也可以区域组中的一个区域(好像是剪切功能)
gen_region_points (Region, 100, 200)
*补集,取反
complement (Region, RegionComplement)
*交集。两个Region相交的区域
intersection (RegionComplement, RegionComplement, RegionIntersection)

*差集

difference (TMP_Region, ROI_0, RegionDifference) *TMP_Region减去ROI_0剩下的

* 合集  将张图中的Region合为一个region
union1 (RegionIntersection, RegionUnion)
*将两张图中的Region合为一个region
union2 (RegionUnion, RegionUnion, RegionUnion1)


*将三通道图像转换为三个图像
decompose3 (Image, Image1, Image2, Image3)
*将图像从RGB颜色图像转换为HSV颜色空间
trans_from_rgb (Image1, Image1, Image1, ImageResult1, ImageResult2, ImageResult3, 'hsv')

Xld与Region互转,以及画中心点.

*将Region转Xld
gen_contour_region_xld (RegionDifference, Contours, 'border')
*将Xld转为Region
gen_region_contour_xld (Contours, Region, 'margin')
*求中心坐标
area_center (Region, Area, Row, Column)
*画出中心点
gen_cross_contour_xld (Cross, Row, Column, 56, 0.785398)

字符使用部分

gray_range_rect (Image, ImageResult, 7,7)

*矩形内的灰度值范围,就是用设定的宽高模板去设定周边的灰度值,下面是使用前后图片

二值化 

 skeleton (RegionJQ, Skeleton1)        *让Region细化,目前不晓得用在哪里

*设定显示颜色
dev_set_color ('red')
dev_set_colored (12)
*Region填充模式
dev_set_draw ('margin')
*区域显示的形状
dev_set_shape ('rectangle2')
*灰度图像成彩色显示的转换方式
dev_set_lut ('color3')
*显示线宽
dev_set_line_width (2)

数组添加元素 

Num := 10
Array := []
* 起点、终点、步长、
for i:=1 to Num by 1
    Array:=[Array,i]
    *相当于append添加元素
endfor


*continue 跳出本次循环
*break 跳出当前循环

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值