平台:wen7+vc6.0+opencv1.0

读取摄像头本来是很容易实现的,但是还得针对应用什么样的平台,在网上搜的很多代码,在wen7+vc6.0+opencv1.0的平台上就不工作,摄像头画面不是黑的就是会的,但是在xp系统下就可以很好地运行出来,在wen7+vs2010+opencv2.4.4上也能很好的运行出来。看来系统和工具的版本同步很重要。

经过多天努力终于在wen7+vc6.0+opencv1.0的平台上实现了摄像头的读取,当然也能对其数据进行处理。代码如下:

#include <stdio.h>
#include <iostream.h>

#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "highgui.h"

int main(int argc, char* argv[])
{

int ncams = cvcamGetCamerasCount( );//返回可以访问的摄像头数目  
HWND MyWin;  
    // 设置系统属性 
cvcamSetProperty(1, CVCAM_PROP_ENABLE, CVCAMTRUE); //选择第一个摄像头     
//camera  
    cvcamSetProperty(1, CVCAM_PROP_RENDER, CVCAMTRUE);  //We'll render stream  
    // 假设创建一个窗口,并且窗口的ID是在变量 MyWin 中定义  
    // MyWin 是窗口 HWND 的类型  
    MyWin = (HWND) cvGetWindowHandle("cvcam window");     
    cvcamSetProperty(1, CVCAM_PROP_WINDOW, &MyWin);   // Selects a window for video rendering

//回调函数将处理每一帧 
cvcamSetProperty(1, CVCAM_PROP_CALLBACK, callback);

cvcamInit( );  
    cvcamStart( );  
    // 现在程序开始工作  
    cvWaitKey();//等待窗口出现  
    cvcamStop();  
    cvcamExit();
return 0;
}

注:如果想对读取的的帧图像处理,则只需编辑cvcamSetProperty(1, CVCAM_PROP_CALLBACK, callback)中的callback函数,想怎么处理就怎么处理了!

例如:在帧图像中显示蓝线:

void callback(IplImage* image)
{
    IplImage* image1 = image;
    int i,j;
   
    assert (image);
   
    for(i=0; i<image1->height; i+=10)
    {
        for(j=(image1->widthStep)*i;j<(image1->widthStep)*(i+1);
        j+=image1->nChannels)
        {
            image1->imageData[j]  = (char)255;
           image1->imageData[j+1] = 0;
           image1->imageData[j+2] = 0;
        }
     }
}

此方法在学习opencv入门的里中有,估计是最原始的办法吧(个人意见)!

另附:

一般的读取摄像头的代码如下:

#include "cv.h"
#include "highgui.h"int main(int argc, char** argv) {cvNamedWindow("win");CvCapture* capture = cvCreateCameraCapture(0);IplImage* frame = cvQueryFrame(capture);while(1) {frame = cvQueryFrame(capture);if(!frame) break;IplImage* out = cvCreateImage(cvGetSize(frame), frame->depth, 1);cvCanny(frame, out, 10, 100, 3);cvShowImage("win", out);cvReleaseImage(&out);char c = cvWaitKey(50);if(c==27) break;}cvReleaseCapture(&capture);cvDestroyWindow("win");return 0;
}

wen7系统下用vc6.0读取摄像头相关推荐

  1. win7系统下解决VC6.0 与office2007、2010不兼容的问题

    以前在windows7下面安装VC6.0时,新建一个工程,打开类视图,在source file右击,选择Add file to project,有些情况下,VC6.0没任何反应,严重时,VC6.0直接 ...

  2. Win10系统下安装VC6.0教程

    学习一门语言最重要的一步是搭建环境,许多人搭建在搭建环境上撞墙了,就有些放弃的心理了:俗话说,工欲善其事,必先利其器:所以接下来我们进行学习C的第一步下载编程所用的工具;当然也有其它的软件,只不过初学 ...

  3. VC6.0读取Excel文件数据

    VC6.0读取Excel文件数据 文件存储在Excel文件中,因此第一步是能够在程序中方便地读取表格数据,这里用的是VC6.0 MFC.文章内容仅供参考,程序不完整. 完整的VC6.0相关程序,需要的 ...

  4. Win10与Ubuntu双系统下安装tensorflow2.0全流程备忘录

    Win10与Ubuntu双系统下安装tensorflow2.0个人备忘录 全部流程 安装Windows10 安装Ubuntu18.04 安装nVidia驱动 禁用nouveau 安装nVidia驱动 ...

  5. windows下安装vc6.0和其PSDK

    1安装vc6.0: 下载安装虚拟光驱daemon410-x86.exe,下载vc6.0 iso文件V_VSE600ENU1.iso,之后在虚拟光驱里安装: 2安装psdk  到微软官网下载sdk,至于 ...

  6. 嵌入式linux摄像头视频教程,嵌入式Linux下LCD应用编程: 读取摄像头画面完成本地视频监控画面显示...

    一.开发环境介绍 开发板:友善之臂Tiny4412 LCD型号:S702 .分辨率: 800*480 Linux内核版本:Linux 3.5 摄像头:USB免驱摄像头 文本显示采用矢量字库, Free ...

  7. 一个系统中同时使用VC6.0+OpenCV1.0和VS2010+OpenCV2.4.6.0的方法

    From:  http://blog.csdn.net/zzy7222872/article/details/6047446 以前用的是VC6.0+OpenCV1.0的组合,一直用的很好.一般的图像处 ...

  8. CentOS系统下部署Hadoop2.0单机模式

    Hadoop的部署前必须按照JDK,且只能使用Oracle 的1.6级以上版本的JDK,不能使用openJDK.事先下载JDK包,如jdk-7u40-linux-x64.tar.gz 1.文件下载上传 ...

  9. linux u盘 慢_在Deepin V20系统下用USB3.0传输速度慢或许是共有问题

    有深度网友反馈了U盘传输速度慢的问题,根据使用测试来看,USB3.0传输速度非常的慢,比如下方正在进行的任务:正在复制install.wim到/media/leo/D/sources的速度为418KB ...

最新文章

  1. Jmeter脚本 GUI和非GUI启动方式
  2. Java 并发编程之 FutureTask
  3. bootstrap分割式下拉菜单显示不全
  4. Downloading Quest SQL Optimizer for Oracle
  5. 什么是servlet?---总结一
  6. 谷歌浏览器和对应驱动器的安装、配置(附有安装包)
  7. CGAL几何库配置教程
  8. 【电脑小白】提高ppt矢量图导出分辨率
  9. WebRTC桌面共享手动停止
  10. WordPress防止自动压缩jpg图片
  11. C++实现各种进制转换
  12. 2.3-31 伪元素
  13. 小程序项目从Hbuilder转移到vscode步骤
  14. 给微信小程序配一个App如何?
  15. Vulkan_Shader—高级光照_阴影_原理
  16. java jsp聊天系统_java web实现简单聊天室
  17. Linux 二进制文件 甲壳,河蚌的身体外面有坚硬的贝壳,因此它属于甲壳动物.______....
  18. 月下独酌(作者:李白li bai)
  19. UEFI原理与编程实践--EFI System Table中的输入输出
  20. 电脑每个键的用处,了解一下

热门文章

  1. 中国金融业已成为外资超级提款机
  2. python之语音播报
  3. 用C++实现猜数字小游戏-两种类型
  4. Carson带你学Android:全面解析Android消息推送解决方案
  5. python之OOP
  6. SELINUX是个大坑
  7. Fedora 9成功安装9600gt显卡驱动
  8. linux uefi U盘安装
  9. 发生异常: ModuleNotFoundError No module named ‘gym.envs.atari‘
  10. windows系统下安装gym运行atari游戏报错:ale_interface/ale_c.dll OSError