halcon界面开发系列 —— get_part与set_part
get_part( : : WindowHandle : Row1, Column1, Row2, Column2),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、计算图像被缩放了多少