Halcon不改变目标大小尺寸及坐标,放大图像或区域

如果需要检测一张图像中很细小的物体,计算机可能可以观察到,但人的肉眼很难判别。这时候就需要放大图像中目标所在区域进行观测,放大观察可能会导致图像被放大,目标相对原始图像的坐标大小信息会被改变。如下,分割图中目标所在区域进行放大显示,该操作会改变图像目标的大小尺寸坐标等信息。

cpp 复制代码
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(), 再去显示原图像, 此时只显示原图像中选择的目标区域,相对大小及位置不变,如下代码所示。

cpp 复制代码
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)

可以通过输出检测目标的大小及坐标位置等信息,进行对比验证。

相关推荐
不知天地为何吴女士1 小时前
Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
算法
小坏坏的大世界1 小时前
C++ STL常用容器总结(vector, deque, list, map, set)
c++·算法
励志要当大牛的小白菜3 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970444 小时前
力扣 hot100 Day56
算法·leetcode
PAK向日葵4 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱喝矿泉水的猛男7 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao7 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian7727 小时前
Traffic Lights set的使用
算法
AntBlack7 小时前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉
凪卄12138 小时前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm