crystal.hdev
dev_close_window ()
dev_update_window ('off')
* ****
* step: acquire image
* ****
read_image (Image, 'crystal')
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowID)
set_display_font (WindowID, 12, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Image)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: segment image
* ****
* -> using a local threshold
*均值滤波
mean_image (Image, ImageMean, 21, 21)
*本地阈值对图像分割
dyn_threshold (Image, ImageMean, RegionDynThresh, 8, 'dark')
* -> extract connected components
*分割连通域
connection (RegionDynThresh, ConnectedRegions)
dev_display (ConnectedRegions)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: process regions
* ****
*求区域最大边界,如果一个大区域包含了一个小区域,得到大区域的边界
shape_trans (ConnectedRegions, ConvexRegions, 'convex')
*面积筛选区域
select_shape (ConvexRegions, LargeRegions, 'area', 'and', 600, 2000)
*用灰度值的熵选择区域(暂时不理解)
select_gray (LargeRegions, Image, Crystals, 'entropy', 'and', 1, 5.6)
dev_display (Image)
dev_display (Crystals)