前言
在开发一个喷码检测软件的时候碰到相机成像和hw窗体的大小不一致,hw太小显示不完全成像的图片,这使得成像不均匀,现场辨别起来比较不直观,因此需要对其进行一个调整。
解决
省略掉读取图片的环节,我们只需要将我们设置的窗体大小和图片大小的比例算出来然后在用setpart这个算子去设置即可。具体代码如下:
read_image(Image_original,Imagepath)
HOperatorSet.GetImageSize(Image_original, out hv_Width, out hv_Height);
//自适应窗口
double ratioWidth = (1.0) * hv_Width[0].I / hWindowControl_main.Width;
double ratioHeight = (1.0) * hv_Height[0].I / hWindowControl_main.Height;
HTuple row1, column1, row2, column2;
if (ratioWidth <= ratioHeight)
{
row1 = -(1.0) * ((hWindowControl_main.Height * ratioWidth) - hv_Height) / 2;
column1 = 0;
row2 = row1 + hWindowControl_main.Height * ratioWidth;
column2 = column1 + hWindowControl_main.Width * ratioWidth;
HOperatorSet.SetPart(hWindowControl_main.HalconWindow, row1, column1, row2, column2);
}
//显示图片
HOperatorSet.DispObj(Image_original, hWindowControl_main.HalconWindow);
最后
显示全面
搞定收工~