污点检测
dev_close_window ()
dev_update_off ()
read_image (Image,'E:/OneDrive/油污/2.bmp')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
dev_set_draw ('margin')
dev_set_line_width (2)
dev_set_colored(12)
optimize_rft_speed (Width, Height, 'standard')
Sigma1 := 10.0
Sigma2 := 2.0
gen_gauss_filter (GsFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)
gen_gauss_filter (GsFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)
sub_image (GsFilter1, GsFilter2, Filter, 1, 0)
for index := 1 to 2 by 1
read_image (Image, 'E:/OneDrive/油污/'+index+'.bmp')
rgb1_to_gray (Image, Image)
invert_image(Image, ImageInvert)
rft_generic (ImageInvert, ImageFFT, 'to_freq', 'sqrt', 'complex', Width)
convol_fft (ImageFFT, Filter, ImageConvol)
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
gen_rectangle1(Rectangle,30,25,450,610)
reduce_domain(ImageFiltered, Rectangle, ROI)
median_image(ROI, ImageMedian, 'circle', 20, 'mirrored')
smooth_image (ROI, ImageSmooth, 'gauss', 8)
threshold (ImageSmooth, Regions, -0.0016783, -0.0006434)
connection(Regions, ConnectedRegions)
dilation_circle (ConnectedRegions, RegionDilation, 5)
select_shape (RegionDilation, SelectedRegions, 'area', 'and', 800, 99999)
gen_contour_region_xld (SelectedRegions, Contours, 'border')
fit_circle_contour_xld (Contours, 'atukey', -1, 2, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_ellipse_contour_xld (ContEllipse, Row, Column,0, Radius+5, Radius+5, 0, rad(360), 'positive', 1.0)
dev_display (Image)
dev_display(ContEllipse)
stop()
endfor


浙公网安备 33010602011771号