如果需要检测一张图像中很细小的物体,计算机可能可以观察到,但人的肉眼很难判别。这时候就需要放大图像中目标所在区域进行观测,放大观察可能会导致图像被放大,目标相对原始图像的坐标大小信息会被改变。如下,分割图中目标所在区域进行放大显示,该操作会改变图像目标的大小尺寸坐标等信息。
- dev_close_window ()
- dev_update_off ()
- dev_open_file_dialog ('read_image', 'default', 'default', Selection)
- read_image (Image,Selection)
- get_image_size (Image, Width, Height)
- dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
- dev_display (Image)
-
- *选择目标区域的矩形区域ROI,鼠标选择
- draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
- *获取选择的矩形
- gen_rectangle1 (ModelRegion, Row1, Column1, Row2, Column2)
-
- *分割图像
- reduce_domain (Image, ModelRegion, ModelRegionImage)
- *对分割后的图像放大显示,会影响图像内部信息
- crop_domain (ModelRegionImage, ImagePart)
- get_image_size (ImagePart, Width, Height)
- dev_set_draw('margin')
- dev_display(ImagePart)
为了达到只改善观察的放大效果,而不改变目标在 图像中原本的大小和位置信息,可以对分割后的区域使用dev_set_part(), 再去显示原图像, 此时只显示原图像中选择的目标区域,相对大小及位置不变,如下代码所示。
- dev_close_window ()
- dev_update_off ()
- ImagePath='D:/images'
- read_image (Imageori, Imagepath)
- get_image_size (Imageori, Width, Height)
- dev_open_window (0, 0, Width/4, Height/4, 'black', WindowHandle)
- dev_display (Imageori)
-
- *选择目标区域的矩形区域ROI,鼠标选择
- draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
- *获取选择的矩形
- gen_rectangle1 (ModelRegion, Row1, Column1, Row2, Column2)
- *分割图像,去除不需要识别的区域,减少噪声
- reduce_domain (Imageori, ModelRegion, Image)
- *修改显示区域,只放大区域,不放大图像,图像中坐标尺寸信息未改变
- dev_set_part (Row1, Column1, Row2, Column2)
- dev_display (Image)
可以通过输出检测目标的大小及坐标位置等信息,进行对比验证。