本人最近在做一个项目,要实现视频图像的几何变换,例如:哈哈镜之类的。在之前我已经实现了在位图上的几何变换,但是应用在视频流上网络上的资料说是要自己写filter,我想请问一下要实现将视频的每一帧做类似位图的几何变换是要通过什么方法,有没有比较简单的方法,如果一定要通过写一个filter来实现的话要怎么讲这个算法编写成filter里面去,希望各位可以提供一些资料。相关的实力代码更佳。先谢谢大家了

解决方案 »

  1.   

    自己写filter有难度,写的如何不好说,如果真要用filter 最好上网搜搜有没有现成的或者看看directX中 dShow的sample
      

  2.   

    你这是两部分,图像处理和directshow开发。两样都需要学习,不懂的话都要花时间,directshow起码要学习一两个月,以前没弄个音视频的话,还要更长。
      

  3.   

    directshow的SDK都要学习文档和sample的,使用和开发是两部分。
      

  4.   


    图像处理的算法我已经弄出来了,就是不知道怎么应用到DirectShow上去。DirectShow我只会一些基本的。所以才想大家求助啊。希望大家多给点意见哈~~
      

  5.   

    在Dshow例子里找个Transform Filter 然后在那个基础上该一下, 在处理位图部分 改称你的需求. 
      

  6.   

    怎么又沉下去了,我看了陆其明老师的directshow开发指南,那本书上介绍的FilterTitleOverlay这个例子可以拿来改一改。有兴趣的朋友一起研究一下。
      

  7.   

    照着 dshow的 sample 写一个 filter, 在filter 的 transform 里实现位图处理就ok了
      

  8.   

    你这是两部分,图像处理和directshow开发。两样都需要学习,不懂的话都要花时间,directshow起码要学习一两个月,以前没弄个音视频的话,还要更长。
      

  9.   

    前段时间被经理叫去弄驱动去了,一直没过来结贴实在对不起大家呀~~~~
    图像处理的Filter已经做完了,刚刚今天弄出来。因为是在CE下作开发所以我做的不是标准的Filter,在开发过程中参考了路其名老师的Directshow开发指南,根据里面的MCF Filter提供的例子做了修改,及继承了CTransInPlaceFilter,然后重载了
    HRESULT CheckInputType(const CMediaType* mtIn);
    HRESULT Transform(IMediaSample *pSample);
    HRESULT CompleteConnect(PIN_DIRECTION direction , IPin* pReceivePin);
    这三个函数。如果要做图像处理的话可以在transform中作手脚。至于Directshow开发指南这本书以及配套代码在Google搜索一下都很多我就不提供了。