污点检测

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

 

posted on 2016-06-23 17:02  FabSun  阅读(417)  评论(0)    收藏  举报

导航