New Document

<<  < 2006 - >  >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31










处理 SSI 文件时出错


  • 日志:44
  • 评论:19
  • 留言:1
  • 访问:


 
 要做细胞计数啦啦,交流哈,qq56895550  scp8462@163.com
做显微镜视频抓图
厚道 发表于 2005-7-12 20:05:00

有以下几种方案:
1、vfw 老技术啦,实时性可能不好,但是编辑能力超强。
2、mci Media control interface 微软msdn上有不少介绍,通过发命令消息或者字符串消息的形势来调用硬件驱动程序来完成相应的操作,实时性好些。
3、directshow 技术,包括direct sound and direct draw,通用性好,速度快,基于com模型。
4、利用采集卡自带的sdk,最简单的喽^&^
5、呵呵 可以利用opencv,里面有专门做采集卡的抓图的类,不过需要一段时间上手。

我对direct 中com模型的理解:

说白了就是对像的一个封装,而且是很好的封装,这样我们用的时候只要知道一个filter的接口,就可以去用啦,Filter graph manager 根据你给出的文件的扩展名来建立filter gragh,这样我们通过其render filter就可以实现多媒体文件的播放啦,下面是个简单的例子(vc中新建控制台工程,拷入代码即可运行):

#i nclude "stdafx.h"
#i nclude <dshow.h>
#i nclude <stdio.h>
#pragma comment (lib,"winmm.lib")
#pragma comment (lib,"strmbase.lib")
int main(int argc, char* argv[])
{
    IGraphBuilder *pGraph = NULL;
    IMediaControl *pControl = NULL;
    IMediaEvent   *pEvent = NULL;

    // Initialize the COM library.
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr))
    {
        printf("ERROR - Could not initialize COM library");
        return 0;
    }

    // Create the filter graph manager and query for interfaces.
    hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                        IID_IGraphBuilder, (void **)&pGraph);
    if (FAILED(hr))
    {
        printf("ERROR - Could not create the Filter Graph Manager.");
        return 0;
    }

    hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
    hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);

    // Build the graph. IMPORTANT: Change this string to a file on your system.
    hr = pGraph->RenderFile(L"D:\\movie\\sucer.avi", NULL);
    if (SUCCEEDED(hr))
    {
        // Run the graph.
        hr = pControl->Run();
        if (SUCCEEDED(hr))
        {
            // Wait for completion.
            long evCode;
            pEvent->WaitForCompletion(INFINITE, &evCode);

            // Note: Do not use INFINITE in a real application, because it
            // can block indefinitely.
        }
    }
    pControl->Release();
    pEvent->Release();
    pGraph->Release();
    CoUninitialize();

    return 0;

}

 
Re:做显微镜视频抓图
sucer(游客)发表评论于2006-4-13 10:38:00

这个要下载windows 得dirext开发包得,可以baidu下,有好多地方提供下载得,记得是开发版,128m+得样子

个人主页 | 引用 | 返回 | 删除 | 回复
 
回复:做显微镜视频抓图
yindy(游客)发表评论于2006-4-12 12:25:00

请问一下,dshow.h在什么地方?

我的VC6.0找不到这个文件啊。

个人主页 | 引用 | 返回 | 删除 | 回复
 
处理 SSI 文件时出错

发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题:
    页面数据载入