read_image(Image, 'D:/图片/视觉检测图片/13.jpg')
rgb1_to_gray(Image, GrayImage)
get_image_size(GrayImage, Width, Height)
dev_close_window()
dev_open_window(0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display(GrayImage)
**********************大圆
scale_image(GrayImage, ImageScaled, 3, 5)
threshold(ImageScaled, Region, 70, 255)
opening_circle(Region, RegionOpening, 3.5)
connection(RegionOpening, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 12000, 99999)
shape_trans(SelectedRegions, RegionTrans, 'outer_circle')
smallest_circle(RegionTrans, Row, Column, Radius)
gen_circle(Circle, Row+20, Column+10, Radius+20)
************************************小圆
dev_display(GrayImage)
threshold(GrayImage, Region1, 3, 17)
opening_circle(Region1, RegionOpening1, 25.5)
connection(RegionOpening1, ConnectedRegions1)
select_shape(ConnectedRegions1, SelectedRegions1, 'area', 'and', 30000, 99999)
shape_trans(SelectedRegions1, RegionTrans1, 'outer_circle')
smallest_circle(RegionTrans1, Row1, Column1, Radius1)
gen_circle(Circle1, Row1+5, Column1+20, Radius1)
difference(Circle, Circle1, RegionDifference)
**************************环形拉直
Widthpolar:=1440
Heightpolar:=round(Radius-Radius1)
*取形拉直角度未rad90-rad360
polar_trans_image_ext(GrayImage, PolarTransImage1, Row+20, Column+10, rad(90), rad(360), Radius-100, Radius+100, Width, Height, 'nearest_neighbor')
polar_trans_image_ext(GrayImage, PolarTransImage2, Row1, Column1, rad(0), rad(90), Radius1, Radius1+100, Width, Height, 'nearest_neighbor')
*图片倒转,
mirror_image(PolarTransImage1, ImageMirror1, 'row')
*这个不反转,因为是参数是column
mirror_image(ImageMirror1, ImageMirror, 'column')
dev_close_window()
dev_open_window(0, 0, 1000, 200, 'black', WindowHandle1)
dev_display(ImageMirror1)
invert_image(ImageMirror, ImageInvert)
*增强,白的变亮,黑的变黑
emphasize(ImageInvert, ImageEmphasize, 20, 20, 5)
threshold(ImageEmphasize, Region2, 0, 95)
connection(Region2, ConnectedRegions2)
select_shape(ConnectedRegions2, SelectedRegions2, 'area', 'and', 200, 99999)
sort_region(SelectedRegions2, SortedRegions, 'first_point', 'true', 'row')
concat_obj(SortedRegions, SortedRegions, ObjectsConcat)
count_obj(ObjectsConcat, Number)
smallest_rectangle1(SortedRegions, Row11, Column11, Row2, Column2)
*获取OCR句柄
read_ocr_class_mlp('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
*读取多个OCR字体
do_ocr_multi_class_mlp(SortedRegions, ImageEmphasize, OCRHandle, Class, Confidence)
*设置输出字体大小
set_display_font(WindowHandle1,16 , 'mono', 'true', 'false')
for Index :=1 to Number by 1
*dev_disp_text(Class, 'window', Row11[1]-8, Column11[Index], 'green', [], [])
disp_message(WindowHandle1, Class, 'Image', Row11[1]-200, Column11, 'yellow', 'true')
endfor