(一) 开多个窗口,显示不同的内容
这种需要一般来讲主要用于演示或者调试的需要。
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('D:/资料/', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
read_image (Image, ImageFiles[0])
get_image_size(Image, Width, Height)
dev_close_window()
dev_open_window(0, 0, Height*2.4, Width*2.4, 'black', WindowHandle1)
dev_open_window_fit_size(0, 750, Height*2.4, Width*2.4, -1, -1, WindowHandle2)
list_files ('D:/资料/', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[Index])
shock_filter(Image, SharpenedImage, 0.5, 10, 'canny', 3)
sobel_amp(SharpenedImage, EdgeAmplitude, 'sum_abs', 3)
hysteresis_threshold(EdgeAmplitude, RegionHysteresis, 30, 60, 210)
fill_up(RegionHysteresis, RegionFillUp)
dev_set_window(WindowHandle1)
dev_display(Image)
dev_set_window(WindowHandle2)
dev_display(RegionFillUp)
stop()
endfor
这样就可以方便的两个窗口观察本体与特征了。
dev_open_window_fit_size算子的解释如下:
*打开具有给定最小和最大范围的新图形窗口,以便保留给定图像大小的宽高比
*WidthLimit设置为-1,则使用以下默认值:[500,800]。
*HeightLimit设置为-1,则使用以下默认值:[400,600]。
*如果根据窗口宽高限制无法创建窗口,则忽略最小窗口大小的限制
dev_open_window_fit_size (0, 0, Width, Height, -1, -1, WindowHandle2)
如果取值-1,-1相当于
dev_open_window_fit_size (0, 0, Width, Height,[500,800],[400,600], WindowHandle2)
(二) region的几个算子
region排序
sort_region(region, SortedRegions, 'first_point', 'true', 'row')
第三个参数可以填
‘first_point’:按照第一个点排序:一个区域的第一行的最前面的点
‘last_point’:按照最后一个点排序:一个区域的最后一行最后一列的那个点
‘upper_left’:外接矩形的左上角
‘upper_right’:外接矩形的右上角
‘lower_left’:外接矩形的左下角
‘lower_right’:外接矩形的右下角
填写上述参数,但不管怎样区域的选择,总是无法满足从左到右,从上到下的顺序,这时可以填写 ‘character’ 解决。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

