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)

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

相关推荐
胖墩会武术2 小时前
【OpenCV图像处理】图像去噪:cv.fastNlMeansDenoising()
图像处理·opencv·计算机视觉
.柒宇.2 小时前
力扣hoT100之找到字符串中所有字母异位词(java版)
java·数据结构·算法·leetcode
松岛雾奈.2302 小时前
机器学习--KNN算法中的距离、范数、正则化
人工智能·算法·机器学习
兮山与2 小时前
算法33.0
算法
Brduino脑机接口技术答疑3 小时前
支持向量机(SVM)在脑电情绪识别中的学术解析与研究进展
人工智能·算法·机器学习·支持向量机·数据分析
xier_ran3 小时前
深度学习:Mini-batch 大小选择与 SGD 和 GD
人工智能·算法·机器学习
王璐WL3 小时前
【数据结构】单链表的经典算法题
数据结构·算法
m0_495562783 小时前
Swift-Enum
java·算法·swift
青山的青衫3 小时前
【前后缀】Leetcode hot 100
java·算法·leetcode
Zzzzmo_3 小时前
Java数据结构:二叉树
java·数据结构·算法