同一个物体在不同光照强度下拍摄,某一处像素点的位置变化
对应光照强度分别是50、60…
结果展示
运行结果细节展示
代码
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('D:/光照强度50--130', ['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])
* Image Acquisition 01: Do something
rgb1_to_gray(Image, GrayImage)
dev_set_color('green')
gen_rectangle1(Rectangle, 954,3979,1025,4041)
reduce_domain(GrayImage, Rectangle, ImageReduced)
*假设就是这样一张图
dev_display(ImageReduced)
dev_set_draw('margin')
create_metrology_model(MetrologyHandle)
*固定好线的初始位置
*draw_line(3600, Row1, Column1, Row2, Column2)
Row1:=963
Column1:=3993
Row2:=997
Column2:=4016
gen_region_line(RegionLines, 963, 3993, 997, 4016)
set_metrology_model_image_size(MetrologyHandle, 640, 480)
linePara:=[Row1, Column1, Row2, Column2]
add_metrology_object_line_measure(MetrologyHandle, Row1, Column1, Row2, Column2, 40, 5, 1, 30, [], [], Index1)
get_metrology_object_model_contour(Contour, MetrologyHandle, 'all', 1.5)
get_metrology_object_measures(Contours, MetrologyHandle, 'all', 'all', Row, Column)
apply_metrology_model(ImageReduced, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row_begin', RowBegin)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column_begin', ColBegin)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row_end', RowEnd)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column_end', ColEnd)
get_metrology_object_measures(Contours1, MetrologyHandle, 'all', 'all', Row3, Column3)
dev_set_color('blue')
get_metrology_object_result_contour(Contour1, MetrologyHandle, 'all', 'all', 1.5)
RowRef := 0.5 * (RowBegin + RowEnd)
ColRef := 0.5 * (ColBegin + ColEnd)
dev_set_color('red')
*取的中点
gen_cross_contour_xld (RefPoints, RowRef, ColRef, 16, rad(45))
stop()
endfor
整体思路:先标记一个大概的区域,保证每一张图都是在这个位置。
然后画一条线,这个位置也是固定的。然后卡尺工具卡到具体的每张图上面的线的位置,此时的线的位置会因为灰度值的变化而发生变化,所以在每一张图上面的都是不一样的。然后取中点,也就是我们最后要的点。最后求差值,也就是我们要的结果。
最开始想到过用圆心来求,但是由于拟合圆会导致圆心坐标不准确,所以用的这个方法。还有其他的想法可以提哦~一起快乐学习一起成长呀!