勇哥今天遇到一个问题:
一个图片listview希望有一个图像预览功能,能显示一些halcon的图形、region之类的对象。
但是我不想用halcon窗口,因为它是耗资源的大户,不想请它。
能不能显示到C#自己的pictureBox控件里面呢?
网上查了一些资料,是可以实现的!
=============================
halcon在.net里面自带的控件可以实现交互等很多强大的功能,但是界面并不是很好看,而且显示图像的速度比较慢,如果希望实现缩放和拖动的话,就显得不是足够流畅了.
总之,由于各种原因,希望在pictureBox显示halcon处理的图像.好了,废话不多说.先上图
HTuple a, b, c,WindowHandle; HObject circle; private void button1_Click(object sender, EventArgs e) { HObject img; HTuple width, height; //width,height显示整个图像,类似与setpart HOperatorSet.ReadImage(out img, @"C:\Users\Administrator\Desktop\a.jpg"); HOperatorSet.GetImageSize(img, out width, out height); //pictureBox1.Handle,获取pictureBox1的句柄 HOperatorSet.OpenWindow(0, 0, width, height, pictureBox1.Handle, "visible", "", out WindowHandle); HOperatorSet.DispObj(img, WindowHandle); HOperatorSet.WriteString(WindowHandle, "测试成功"); } //交互测试 private void button2_Click(object sender, EventArgs e) { HOperatorSet.DrawCircle(WindowHandle, out a, out b, out c); HOperatorSet.GenCircle(out circle, a, b, c); }
有个疑问是:这个OpenWindow,没有对应的CloseWindow,会不会造成内存泄露?
如果谁可以测试一下的话,有结果请告诉勇哥。
勇哥录制了一个视频:
见B站:
https://www.bilibili.com/video/BV1jy4y177bX
手机观看请扫码:
视频对应的演示程序见附件:
附件是C#代码(vs2017+halcon19.11)与演示用的图片。
注意此为收费附件。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

