代码改变世界

OpenCV(Emgu)入门系列(9):在C#中,使用Emgu+PictureBox实现一个简易的视频播放器

2012-08-09 00:24 by TW-Freewind, 8320 阅读, 1 推荐, 收藏, 编辑
摘要:有了之前使用Emgu读取图片并显示在C#的PictureBox中的实践,今天使用相同的思路实现一个视频播放器。 任务 使用C#与Emgu实现一个简单的视频播放器,有以下功能: 可播放avi,rmvb等格式视频 有暂停、继续、停止、上一帧、下一帧等功能 有刻度条显示播放进度,并且可通过拖动刻度条来改来视频进度 要求: VS 2012 RC,代码及库全部采用6... 阅读全文

OpenCV(Emgu)入门系列(8):在C#的PictureBox显示由EmguCV读取的图片

2012-08-08 00:50 by TW-Freewind, 14845 阅读, 0 推荐, 收藏, 编辑
摘要:使用VC++对着《学习OpenCV》做了几个例子之后,我觉得该改用C#了。因为我想自己实验一下OpenCV的功能,比如弄几个输入框、按扭来控制程序,发现使用VC++特别难(相对我的c++水平来说)。对于这种非核心的部分,我不愿意浪费太多时间,于是果断转向C#。 在C#中使用OpenCV,就要使用它的wrapper了。目前发现有两个: EmguCV 开发活跃、功能强,使用者也多一些,可惜是... 阅读全文

用QQ传dll文件,你可能会遇到灵异事件

2012-08-07 23:38 by TW-Freewind, 1369 阅读, 0 推荐, 收藏, 编辑
摘要:今天一个奇怪的问题,折磨了我跟朋友几个小时。经过九九八十一难之后,终于发现,原来这是灵异事件--传个文件都不省心! 我跟朋友的操作系统都是win7 x64,安装的都是VS 2012 RC和VC++ 2010 express,以及opencv 2.4.2。朋友用vc++写了一个OpenCV的hello world,采用的是其x64的dll,也编译为x64代码,但是死活运行不起来。一运行就报错: ... 阅读全文

C# - 让窗口随图片自动改变大小

2012-08-07 16:17 by TW-Freewind, 4409 阅读, 0 推荐, 收藏, 编辑
摘要:任务 实现一个简单图片查看工具,可在窗口中显示选定的图片,并且窗口大小随图片自动改变。 效果图 打开小图片: 打开大图片: 关键代码 控件 图片控件PictureBox。让它显示指定的图片: pictureBox1.Image = Image.FromFile(filename);选择图片文件,使用OpenFileDialog,通过Filter指定可显示哪些后缀的文件:va... 阅读全文

OpenCV入门系列(7):读取摄像头,保存为视频文件

2012-08-06 22:44 by TW-Freewind, 9709 阅读, 0 推荐, 收藏, 编辑
摘要:在前一篇中已经实现了读取摄像头并实时显示,本文将重要讲述如何把它保存为视频文件。 关键代码 CvVideoWriter* writer = cvCreateVideoWriter(filePath,CV_FOURCC('P','I','M','1'),24,cvGetSize(frame));cvWriteFrame(writer, frame);cvReleaseVideoWriter(&w... 阅读全文

OpenCV入门系列(6):读取摄像头,实时显示

2012-08-06 21:19 by TW-Freewind, 29749 阅读, 1 推荐, 收藏, 编辑
摘要:在今天以前,我一直认为摄像头是一个神秘的东西。怎么才能在自己的程序中读取摄像头的画面,想想都无从下手。 然而今天终于知道, 这在OpenCV中是一件多么简单的事情。仅仅调用一个函数,就能从摄像头中读取一帧帧的画面,想显示还是保存,随意。显示的话,就是实时的视频图像;保存的话,就是视频文件了。 准备工作 准备工作极为简单,找一个普通的摄像头,插到USB口中。然后点开QQ视频,确保它能正确工作。... 阅读全文

OpenCV入门系列(5):对图片进行基本的变换

2012-08-06 14:56 by TW-Freewind, 1863 阅读, 0 推荐, 收藏, 编辑
摘要:本文演示如何对一张图片进行三个基本变换:1. 模糊,2.缩放,3. 寻边。 由于都是对OpenCV内置的函数调用,所以代码都比较简单,主要目的是对图形变换有一个基本和直观的了解。 原理:读取图片->调用OpenCV函数处理->输出到窗口。 原图 首先看源图,所有的操作都基于它: 模糊 先看效果: 核心函数:cvSmooth 完整代码: #include "cv.h"... 阅读全文

OpenCV入门系列(4):显示一张图片和一个视频

2012-08-05 23:20 by TW-Freewind, 4040 阅读, 2 推荐, 收藏, 编辑
摘要:显示一张图片,对于我们来说是很容易理解的事情。但播放一个视频,感觉就很神秘很有技术含量了。 然而今天看了《学习OpenCV中文版》中的两个小例子后,惊呼,原来如此,居然这么简单!就是我们经常所说的电影动画原理:视觉残留。先从视频文件中取出一帧(即一张图片),显示出来,暂停若干毫秒后,取下一张,再显示出来,视频就播放起来了。 《学习OpenCV中文版》真是本好书,强烈推荐。 显示一张图片 使... 阅读全文

OpenCV入门系列(3):VS 2012 RC + OpenCV + x64的Hello world

2012-08-05 17:14 by TW-Freewind, 3950 阅读, 1 推荐, 收藏, 编辑
摘要:在上一篇,我们跑通了Visual c++ 2012 express的32位例子。考虑到express版的一些限制,不如狠心下载VS 2012,一了百了。在前面提到express只能一个项目一个项目的配置属性,而VS中可以针对一个用户来配置,在本文中需要注意是如何做到的。下载VS 2012 RC并安装在微软网站上下载了VS 2012 RC的iso包,并安装成功后。它是metro风格的界面,自带.net 4.5以及64位的编译器。截个图看下效果:我个人对Metro的风格持保留意见,因为在使用中发现由于界面太简洁,不同部件之间缺少边框、颜色的分隔,看久了有点累人。创建一个Hello world项目创 阅读全文

OpenCV入门系列(2):Visual C++ 2010 express + OpenCV + x86的Hello world

2012-08-05 16:19 by TW-Freewind, 3266 阅读, 1 推荐, 收藏, 编辑
摘要:首先注意,本文使用的是Visual c++ 2010 express,这意味着它有以下问题: 不能开发64位程序,除非另外下载编译器并配置 只能针对项目(不能全局)设置include目录、库目录等,每个新项目可能都需要设一次 但考虑到有很多人使用的是免费的Visual C++ express,所以本文也有一定意义。(我和朋友一起花了几个小时才跑通这个例子,希望可以到帮助其它朋... 阅读全文