少有人走的路

勇哥的工业自动化技术网站

halcon的图形显示到C#的pictureBox控件里,并且可以交互

勇哥今天遇到一个问题:

一个图片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

手机观看请扫码:

image.png


视频对应的演示程序见附件:

附件是C#代码(vs2017+halcon19.11)与演示用的图片。

注意此为收费附件。

image.png


付费资源

售价2,会员可享受免费!升级会员立即购买



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864