如何从摄像头中截取一帧图象,直接显示在一image控件里?

chennai 2008-11-03 05:18:52
大家好:

  请问如何从摄像头中截取一帧图象,直接显示在一image控件里?

  网上搜到的例子都是直接保存在文件里的,但我不想保存在文件里,而是直接在一图形控件里显示,如何解决?

  以下只是保存到一个文件里。
  SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar(SaveDialog1.FileName)));

  希望大家帮帮忙,谢谢!
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Corn1 2008-11-05
  • 打赏
  • 举报
回复
一般厂家都会提供一个dll的,里面应该有现成的函数
我以前做过类似的,就是用现成的。
我用的是海康威视
huayufei 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuqianyi1974 的回复:]
你可以使用VIDEOCAP23组件,这个组件封装了vfw的功能。

  videocap1.SaveToClipboard;//改组件有个保存图像到剪贴版的功能
  image1.Picture.LoadFromClipboardFormat();//从剪贴版装入图像
[/Quote]

学习
yuqianyi1974 2008-11-04
  • 打赏
  • 举报
回复
你可以使用VIDEOCAP23组件,这个组件封装了vfw的功能。

videocap1.SaveToClipboard;//改组件有个保存图像到剪贴版的功能
image1.Picture.LoadFromClipboardFormat();//从剪贴版装入图像
寻梦928 2008-11-04
  • 打赏
  • 举报
回复
不知道你用的是哪个厂家的视频卡?
AllBuilder 2008-11-04
  • 打赏
  • 举报
回复
你那个不就是视频截取吗?

截取分2种,一种是类似QQ截取图象,有弊端.弊端也就是我说的第二种

第二种,在缩小的视频框里截取拖拉一段线框,截取出来的是真实的大小,远超你那个线框大小.非你目视看到线框的那么豆腐大的图片

能截就能存.呵呵.我花1周才写2种.还是后一种比较好...第一种比较垃圾.如果你设备2048*1536 的分辨率,你的视频画面大过你的电脑屏幕.

第二种,不管你多大,显示320*240或者640*480,1024*768 我都可以任意支持,自由截取.我想要的实际大小.

API提供的几个函数也真不好用,我自己写的去实现第二种方式
wongfive 2008-11-04
  • 打赏
  • 举报
回复
楼上正解
mdejtod 2008-11-03
  • 打赏
  • 举报
回复
用 directshow ,打开摄像头,添加一个 IBasicVideo 类型的Filter
然后用 GetCurrentImage 接口方法填充定义好的缓冲区,再将其转换为 BitmapFileHeader,写入到位图中,最后用GDI,或,GDI+画出位图

如果你已经取得位图的DIB,那就更容易了,通过DIB 取得 HBitmap 和调色板,再转换为位图,最后再画

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧