haclon源码
read_image (Image, 'C:/Users/bayinglong/Desktop/搜狗截图20181206101404.png')
read_image (Image1, 'C:/Users/bayinglong/Desktop/搜狗截图20181206101426.png')
rgb1_to_gray (Image, GrayImage1)
rgb1_to_gray (Image1, GrayImage2)
abs_diff_image ( GrayImage1, GrayImage2, ImageAbsDiff, 1)
a:=0
get_image_size (ImageAbsDiff, Width, Height)
gen_rectangle1 (Rectangle, 1,1,Height,Width)
intensity (Rectangle, ImageAbsDiff, Mean, Deviation)
主要流程,
1.两张图片相减少
2.相减图片求平均值和方差;
c#核心代码
public bool Extcute(out double Deviation, HImage bitmap1, HImage bitmap2)
{
try
{
ho_GrayImage1.Dispose();
HOperatorSet.Rgb1ToGray(bitmap1, out ho_GrayImage1);
ho_GrayImage2.Dispose();
HOperatorSet.Rgb1ToGray(bitmap2, out ho_GrayImage2);
ho_ImageAbsDiff.Dispose();
HOperatorSet.AbsDiffImage(ho_GrayImage1, ho_GrayImage2, out ho_ImageAbsDiff, 1);
HOperatorSet.GetImageSize(ho_ImageAbsDiff, out hv_Width, out hv_Height);
ho_Rectangle.Dispose();
HOperatorSet.GenRectangle1(out ho_Rectangle, 1, 1, hv_Height, hv_Width);
HOperatorSet.Intensity(ho_Rectangle, ho_ImageAbsDiff, out hv_Mean, out hv_Deviation);
Deviation = (double)hv_Deviation;
return true;
}
catch (System.Exception ex)
{
Deviation = 1000;
return false;
}
}
利用图像句柄生成haclon Himage类
/// <summary>
/// 生成Himage
/// </summary>
/// <param name="bmp">图片句柄</param>
/// <param name="width">图片宽</param>
/// <param name="hight">图片高</param>
/// <returns></returns>
public HImage HImageConvertFromBitmap32(IntPtr bmp,int width,int hight)
{
HalconDotNet.HImage img = new HalconDotNet.HImage();
img.GenImage1("byte", width, hight, bmp);
return img;
}