当前位置:编程学习 > C#/ASP.NET >>

c#读取摄像头在图像上加个矩形框

现在已经可以把摄像头图像显示到panel里,但是想在图像上画一个矩形框用于对准人的头部,用了以下方法全部失败:
1)重画panel的paint事件,不加载图像的时候可以显示,显示图像后画的矩形框就没有了。(失败)
2)在panel上面又加了一个透明的panel,但是图像显示出来后,同样透明的panel也没有了。(失败)
3)单独做了一个窗体,将该窗体设置为透明,在panel中显示该窗体,但发现窗体显示到panel里以后,就不透明了。(失败)

目前,想到的就是以上几个方法,不知道高手还有好的办法吗??????
我现在就是想在panel上面加个矩形框用于对准摄像头图像的头部,急求! --------------------编程问答-------------------- panel上面加一个透明的panel,设置边框颜色 --------------------编程问答-------------------- 楼上的 你就是我的第2种方法  已经试验过了 ,不好使,请仔细看我的贴子! --------------------编程问答-------------------- 直接在panel的paint() 里面画一个矩形 --------------------编程问答--------------------   private void panel1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawRectangle(Pens.Red, 10, 10, 100, 100);
        } --------------------编程问答-------------------- 一般这种是视频都是把句柄给厂家SDK绘制 好像是通过消息泵 直接在panel上画是肯定不行  播放图像时会直接绘制就没了 --------------------编程问答-------------------- 对 直接画完的,显示视频图像后,画的内容就消失了!指定还有别的方法! --------------------编程问答-------------------- 重写 panel 控件。重写 OnInvalidated ,

引用 6 楼 lulu_xiaoniu 的回复:
对 直接画完的,显示视频图像后,画的内容就消失了!指定还有别的方法!


你自己写一个panel ,
估计需要重写这几个事件: OnInvalidated , OnPaint,  winproc ,
在视频(webCam)的 FramesReceived 之后,依次测试一下... --------------------编程问答-------------------- 有没有简单点的方法啊!! --------------------编程问答-------------------- 你在捕获的图片上加框嘛,别直接加在视频窗口 --------------------编程问答-------------------- 我之前做过视频捕获图像,这么做的:
1、截图
2、图片转数组
3、数组上面加框(就是修改像素)
4、数组转图片

虽然麻烦,但是肯定有框,然后还能在框里面截图 --------------------编程问答-------------------- 楼上的好麻烦啊 有简单的吗 --------------------编程问答-------------------- 还有人知道吗 --------------------编程问答-------------------- 最后一次顶了! --------------------编程问答-------------------- 如果你现在不是做什么项目,那么扔掉winform。想用.net开发现代的具有高效图形的程序,应该使用WPF或者Silverlight。 --------------------编程问答-------------------- 楼上大哥,现在着急做一个图片采集的系统,没有时间弄WPF了,现在就是有什么办法能实现我说的那个图像上加个红框,下图:


后面那个是panel里面显示的是摄像头动态的图像。 --------------------编程问答--------------------
贴出加载图像的代码。 --------------------编程问答-------------------- 你不能指望在截图前就搞好框,因为图像被采集部分不一定大小非常合适,只能在采集之后再用框来调整。

除非你采集的目标大小和距离永远一致 --------------------编程问答-------------------- 做一个灰度通道,取值范围为0-255。然后把采集完成的图像乘以这个通道再除以255,连半透明效果都做出来了。如果不要半透明,就把灰度通道设置成0和255两值即可。 --------------------编程问答-------------------- 但是我截图里的就是可以实现在图像区域显示个红框,不知道怎么实现的? --------------------编程问答-------------------- 查一下aforge.net这个类库吧。
官网上有好多例子,画矩形框是绝对够用了,用起来也不复杂。 --------------------编程问答-------------------- 只能在视频解码的时候添加 --------------------编程问答-------------------- 顶顶看有没有高人 --------------------编程问答--------------------
引用 楼主 lulu_xiaoniu 的回复:
现在已经可以把摄像头图像显示到panel里,但是想在图像上画一个矩形框用于对准人的头部,用了以下方法全部失败:
1)重画panel的paint事件,不加载图像的时候可以显示,显示图像后画的矩形框就没有了。(失败)
2)在panel上面又加了一个透明的panel,但是图像显示出来后,同样透明的panel也没有了。(失败)
3)单独做了一个窗体,将该窗体设置为透明,在panel中显示该窗体,但发现窗体显示到panel里以后,就不透明了。(失败)

目前,想到的就是以上几个方法,不知道高手还有好的办法吗??????
我现在就是想在panel上面加个矩形框用于对准摄像头图像的头部,急求!


去下载一个aforge.net 库里面有取视频的DEMO,他就是把视频输出成Image 显示在控件上 然后你自己 应明白发。
给每个Image打水印就是了。人要学会自己想点子,会用Google. --------------------编程问答-------------------- 现在用aforge.net有点迟了  整个程序都完事了  就差取景框这块了! --------------------编程问答-------------------- 这个我做过,何止一个框,多少个都没问题,我当时做的是人脸检测,你用picturebox显示图像,不在panel里面显示,换一下就行了,然后在picturebox上面画图,这样只是临时的画框,你的图像上不会保存有框的效果,如果图像上也要有,那你就在picturebox的图像上绘制就OK了,给你个demo:http://www.codesoso.com/code/Motion_Detection.aspx
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,