判断 能效贴 是否倾斜

判断 能效贴 是否倾斜_第1张图片
上部分是能效贴 下部分是 一维码

思路:
根据“依据国家标识 …” 这一行字样 判定

将字段分割成前段 和后段
提取矩形 得到两个矩形的中心
判定坐标是否相等(或者差值 是否在阈值之内)!

halcon 代码:

list_files ('C:/Users/77200/Desktop/ImageC', 'files', Files)
for Index := 0 to |Files|-1 by 1
read_image (BcB30hu006l00b9k14jdy1, Files[Index])
gen_rectangle1 (ROI_0, 120, 0, 1200, 1150)
reduce_domain (BcB30hu006l00b9k14jdy1, ROI_0, ImageReduced)

decompose3 (ImageReduced, Image1, G, Image3)
 mean_image (G, ImageMean,55,55)
 
* median_image (G, ImageMedian, 'circle', 1, 'continued')

dyn_threshold ( G, ImageMean,RegionDynThresh,3, 'light')
dilation_circle (RegionDynThresh, RegionDilation, 5.5)

* closing_circle (RegionDilation, RegionClosing, 1)
* opening_circle (RegionDilation, RegionOpening, 7)
* connection (RegionDilation, ConnectedRegions)
* fill_up_shape (ConnectedRegions, RegionFillUp, 'area', 15000, 30000)
* opening_rectangle1 (RegionDilation, RegionOpening, 1,5)

connection (RegionDilation, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions, 'area', 'and', 5000, 12000)

count_obj (SelectedRegions, Number)

smallest_rectangle1 (SelectedRegions, Row11, Column11, Row21, Column21)

gen_rectangle1 (Rectangle, Row11[Number-2], Column11[Number-2], Row21[Number-2], Column21[Number-2])
area_center (Rectangle, Area, r1, c1)

gen_rectangle1 (Rectangle1, Row11[Number-1], Column11[Number-1], Row21[Number-1], Column21[Number-1])
area_center (Rectangle1, Area1, r2, c2)

endfor

你可能感兴趣的:(Halcon)