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)

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

相关推荐
古希腊掌管学习的神4 分钟前
[搜广推]王树森推荐系统笔记——曝光过滤 & Bloom Filter
算法·推荐算法
qystca5 分钟前
洛谷 P1706 全排列问题 C语言
算法
浊酒南街11 分钟前
决策树(理论知识1)
算法·决策树·机器学习
就爱学编程19 分钟前
重生之我在异世界学编程之C语言小项目:通讯录
c语言·开发语言·数据结构·算法
学术头条23 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
游客52033 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
Schwertlilien1 小时前
图像处理-Ch4-频率域处理
算法
IT猿手1 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·深度学习·算法·机器学习·matlab·多目标算法
__lost1 小时前
MATLAB直接推导函数的导函数和积分形式(具体方法和用例)
数学·算法·matlab·微积分·高等数学
thesky1234561 小时前
活着就好20241224
学习·算法