C#操作摄像头实现拍照监控录像功能

其实类似的代码网上有很多,但
【菜科解读】
其实类似的代码网上有很多,但是真的能够拿来运行的估计也没几个。
本来是说周末给做的,但是这两天脑子一直很乱,也没静下来,晚上了,再不做明天有点不好意思啊,只能临时做一个了。
在网上找资料自己做的过程中也发现了一些问题,于是拿到博客上来分享一下,这样一来有需要的朋友可以直接拿来用,二来正在研究的遇到这些问题了可以迎刃而解。
刚开始接触摄像头视频之类的是在大二的时候,那时候因为实验室有一个小项目交到我手上,所以那时候对播放视频之类的了解了一些。
那时候的需求是对已经录下来的监控录像做处理,整个过程是已经不需要自己再去控制录像了,所以相对简单一点。
而拍照和摄像是自己控制,所以稍微复杂那么一点点。
行了,废话说到这里,下面进入正题。
还是以往的作风,只实现功能,对界面不做过多的美化,有需要的朋友可以自己动手。
比较这年头自己动手,丰衣足食嘛。
图1-1是程序的主界面: 图1-1 操作摄像头以及实现拍照功能整个过程主要都是通过一个第三方的组件实现的,名字叫做 AForge ,是国外的组件,所以打开起来有点慢,但是要有耐心啊,目前已经更新到2.2.5版本了。
如果不愿意从官网上下载,文章末尾处也给出了相应的下载地址,需要的话直接拿来用就ok了。
程序也很简单,一个WinForm页面,添加一下对Aforge的引用就可以了,但是这个过程中会引用一些其他的dll,有些不是太常用,所以在这里对引用的dll也做了截图(图1-2),在自己做的过程中参照一下即可。
图1-2 上图1-1中间部分是用来实时显示摄像头开启后获取到的内容,是一个自定义控件。
这里得说明一下,将AForge.Controls.dll拖拽到左侧的工具箱区域,然后就出来自定义控件了。
这里顺便说明一下,我们平时自己开发的自定义控件也可以通过这种方式来给别人用。
前台都准备好了之后我们来开始分析后台代码。
整个的思路是先找到电脑上的摄像头设备,然后选择我们需要操作的设备,然后在拍照或者摄像。
今天由于时间关系仅仅只是实现拍照,下次再做摄像的功能,实现之后也会一样分享在这里的,希望有需要的朋友关注。
当Form加载的时候,我们监听一下其Load事件,将检测到的摄像头设备添加到后边的ComboBox中供用户选择,关键代码如下: Private void Form1_Load(object sender, EventArgs e) // 枚举所有视频输入设备 videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count == 0) throw new ApplicationException(); foreach (FilterInfo device in videoDevices) { tscbxCameras.Items.Add(device.Name); } tscbxCameras.SelectedIndex = 0; catch (ApplicationException) tscbxCameras.Items.Add("No local capture devices"); videoDevices = null; } 当用户选择某一摄像头设备再点击连接的时候,我们打开摄像头,并对其进行初始化,关键代码: //连接摄像头 private void CameraConn() { VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[tscbxCameras.SelectedIndex].MonikerString); videoSource.DesiredFrameSize = new System.Drawing.Size(320, 240); videoSource.DesiredFrameRate = 1; videoSourcePlayer.VideoSource = videoSource; videoSourcePlayer.Start(); } 当用户关闭点击关闭摄像头的时候,我们做关闭的处理,代码: //关闭摄像头 private void btnClose_Click(object sender, EventArgs e) { videoSourcePlayer.SignalToStop(); videoSourcePlayer.WaitForStop(); } 当用户点击拍照的时候,我们获取摄像头当前的画面,并保存到设定的路径下,然后关闭当前窗口。
关键代码: //拍照 private void Photograph_Click(object sender, EventArgs e) { if (videoSourcePlayer.IsRunning) { BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( videoSourcePlayer.GetCurrentVideoFrame().GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); PngBitmapEncoder pE = new PngBitmapEncoder(); pE.Frames.Add(BitmapFrame.Create(bitmapSource)); string picName = GetImagePath() + "\\" + "xiaosy" + ".jpg"; if (File.Exists(picName)) { File.Delete(picName); } using (Stream stream = File.Create(picName)) { pE.Save(stream); } //拍照完成后关摄像头并刷新同时关窗体 if (videoSourcePlayer != null && videoSourcePlayer.IsRunning) { videoSourcePlayer.SignalToStop(); videoSourcePlayer.WaitForStop(); } this.Close(); } catch (Exception ex) MessageBox.Show("摄像头异常:" + ex.Message); } private string GetImagePath() { string personImgPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) + Path.DirectorySeparatorChar.ToString() + "PersonImg"; if (!Directory.Exists(personImgPath)) Directory.CreateDirectory(personImgPath); return personImgPath; } 关闭之后,在bin目录下的PersonImg中即可找到保存的图片,当然,在程序中把该图片展示出来效果会更好,但是由于时间关系,就不添加了。
需要的朋友可以自己实现,有问题的欢迎一起交流。
至此,这样一个简单的拍照功能就完成了,在这里,附上源码下载地址。
操作,摄像头,实现,拍照,监控,录像,功能,从,
封穴回奶样?封穴回奶的操作步骤是什么
万一憋成了乳腺炎怎么办啊,万一有结节怎么办啊,自己平时奶量特别多,俩小时不喂奶就能成石头一样的等等问题。
下面的小编为大家分享封穴回奶怎么样,封穴回奶的操作步骤是什么大家一起来看吧。
封穴回奶怎么样很多的地方都比较流行用“封穴”的方法来让乳汁减少,逐步的减少,再慢慢的调整到回奶。
方法比较巧妙,而且效果很好,我们通过各种渠道,终于找到了这位高人,得到了这个方法,而高人也很乐意告诉我,我们不能独享,今天分享给大家,希望能帮到各位。
封穴回奶的操作步骤是什么今天所讲的“封穴”方法,就是针对奶水太多或者准备回奶的妈妈。
如果奶水一般,俩三小时开涨,这种是没事的,不要擅自使用这个方法。
对于那种奶水超级充足,一晚上没有哺喂都成石头奶,这种方法是最合适的。
下面来说详细的方法:方法介绍:封穴术,又称为泌乳解穴术,像小说里面写的那样点穴、解穴一样,只是作用点稍微不同。
该老师认为,产妇生产完毕之后,催乳师的手法、按揉、放血、中药等,都是点穴,点身体里面刺激泌乳的穴位,这样乳汁就多了起来。
而在断奶的时候,应该封穴,也就是解穴。
把刺激泌乳的穴位解开。
从而让身体不再泌乳。
1、所使用的穴位光明穴(取双侧)足临泣穴(取双侧)看过我们文章的老师都知道,这两个穴位,在我们之前讲回奶的文章里面有讲过,只是刺激量稍微不同,往下看。
2、所用工具毫针(针灸针)0.25*0.40即可,也就是0.25的直径,1.5寸的长度。
四根即可。
3、操作方法用毫针捻转直刺,入针1寸即可,留针时间30分钟。
一次见效。
如果惧怕疼痛可以用两根尖筷子代替,用筷子尖点按每个穴位10分钟左右即可。
(老师用的金属筷子,时间太久了,颜色都变了)有的老师手里没有其他工具的时候,直接用手点起伏一样点按,效果也可以。
也有配合其他的手法的,只是这两个穴位才是重中之重,必须要做的。
3、注意事项此方法适用于:两乳房发涨、憋闷难受、胀痛疼痛难忍的情况下可以使用。
其他的情况,一定要慎重。
如果奶量没有特别大,不要轻易尝试,如果刺激量过大,会有回奶的风险。
问过该老师之后才知道,原来当地的人大部分都会这种方法,只是很少有人会去刻意的学习罢了,而又有很多老师觉得这个方法太简单太快捷了,就多增加了一些其他的方法,效果也都挺好,在这里不一一讲述了。
愿您的哺乳之路一路畅通!
变性人的变性手术是实现的?探秘变性细节
中国人的传统思想曾经是“身体发肤受之父母 ”云云诸如之类,上天让你当个女的你却想自己变男的? 然而随着时代的变迁,人们思想的解放,有了例如“建国之后动物不许成精”等骇人听闻的规定出现【滚】,“天气不错我变个性”这种事件,在我们的世界里就开始时有发生了...【大雾】 这位小伙子和女友喜笑颜开,但是谁能知道,几个月前,他还是个女儿身。
所谓“存在”即有“合理性”,既然有需求科学就有可能帮你实现似乎已经成为生存在21世纪的big surprise之一。
比如我们金姐,变性之后不仅能组建家庭,快乐的生活,事业上也更加大放异彩,比起男儿身的“她”现在的金星真是不知道好看了多少倍啊 不过话说回来,想彻底的变性,归根结底还是要做【变性手术】的。
对于变性手术,你可能和大多数人一样只闻其名却并不知道如何具体实施。
是的,越神秘越禁忌的话题,人们就越想刨根问底,那今天就带你一探究竟吧! ok,在此之前我们必须了解一个重要的知识点【划重点!敲黑板!】 什么样的人可以做变性手术? 渴望变性手术的人,即患有【性别认同障碍】的boys and girls。
「性别认同障碍」也叫「性别不安症」,简言之,即「男儿身女儿心」或者「女儿身男儿心」。
儿童一般从三岁开始就对性别有了懵懂的认知,并在成长过程中倾向于和同性别儿童一起玩耍,并表现该性别行为。
这种区别在青春发育期随着性器官和第二性征的发育进一步得到巩固,并获得异性性取向,这也就是我们中的绝大多数——生理和心理性别一致。
性别认知正常的饱饱【???】 错了,是这张 但人群是多样化的,总有一些人受到生理和心理性别不一致造成的痛苦。
他 / 她们渴望穿着异性的服饰,用异性的说话和行为方式,并能从中获得满足感。
如果你也有这样的需求,那么注意,你很有可能开启新世界的大门! 【性别认同障碍者】是都需要手术吗? 并不是! 性别认同障碍一般在儿童期就可以被发现,偷穿爸妈衣服、抹口红带束胸什么的,_对,说的就是你哈~ 有些家长会试图纠正其行为,事实上也有不少通过行为调整避免了性别割裂的案例,但绝大多数情况下这种割裂都是难以改变的。
【命运是无法抗拒的北鼻~】 真正的变性者,泰国新人演员Yoshi,超美 如果你已经渴望变性到不能自已,希望可以通过手术实现愿望时,一般医生也不会就这样随意下定论,而是会先建议你穿戴异性服饰、以异性社会角色生活一段时间。
此时一些假性的性别认同障碍会明显感到不适应,这类人群就不适合手术治疗,心理疏导会更加合适;反之,有些人会非常适应和满足于这种角色转换,那么手术就可以给他们带来帮助。
而这种改变服饰和行为模式的过渡期到底应该多长,还没有学术上的定论,实际操作上各地也千差万别。
Yoshin是男孩变女孩,1997年生