halcon界面开发系列 —— get_part与set_part

get_part( : : WindowHandle : Row1Column1Row2Column2),set_part同理。

GetPart官方解释:返回窗口中显示的图像部分的左上角和右下角。

这个图像,就是窗中图。它的左上角、右下角就是上图绿色箭头所示(体会下上图坐标的负值)。

窗中图在处理位置信息时黑暗区域也是图像的一部分(只不过有坐标无像素)

Halcon中图的行列是从0开始的,row=0即第1行。

【代码举例】注意其中的文字描述

dev_close_window ()
read_image (Image, 'D:/lena512.bmp')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, 300, 300, 'black', WindowHandle)
*图像的全部,展示在窗体中
set_part (WindowHandle, 0, 0, Height-1, Width-1)
disp_image (Image, WindowHandle)
*获取“窗中图”的左上角、右下角位置坐标
get_part (WindowHandle, Row1, Column1, Row2, Column2)
*向上、下各拉取100的黑暗区域,作为图的一部分。展示在窗体中(产生缩放的错觉)
set_part (WindowHandle, Row1-100, Column1, Row2+100, Column2)
clear_window (WindowHandle)
disp_obj (Image, WindowHandle)

【用处】建立起电脑桌面坐标系统、图像坐标系统的联系。

鼠标、电脑桌面、控件(MFC或Qt)的坐标都是电脑桌面坐标系统(下图紫色字体)。

图像的坐标是图像坐标系统(下图橙色字体),lena是512*512,即使缩放的再小,也是512*512。

黑色区域是窗中图,属于图像坐标系统。宽、高:Column2-Column1+1,Row2-Row1+1

 

 以上内容的用处如下:

1、鼠标拖动图片平移

2、鼠标所指的图像像素位置(get_grayVal就可以获得灰度值了)

3、计算图像被缩放了多少

 

 

posted @ 2021-01-28 20:11  夕西行  阅读(1207)  评论(0编辑  收藏  举报