Python+Opencv 调用USB摄像头(二)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Programmer_ch/article/details/89429677

目录

 

一.问题

二.问题分析

2.0.分析

2.1.协议问题

2.2驱动问题

2.3.必须用相机自带SDK(Software Development Kit)软件开发工具包调用相机

三.相关拓展


一.问题

Python+Opencv 调用USB摄像头(一)结尾代码,发现调用不了,换了一个相机,还是不行.

测试代码:

import cv2
cams_test = 10
for i in range(0, cams_test):
    cap = cv2.VideoCapture(i)
    test, frame = cap.read()
    print("i : "+str(i)+" /// result: "+str(test))    

 只有0是ture即笔记本自带相机

i : 0 /// result: True
support SSE4.1
i : 1 /// result: False
[ WARN:0] terminating async callback
i : 2 /// result: False
i : 3 /// result: False
i : 4 /// result: False
i : 5 /// result: False
i : 6 /// result: False
i : 7 /// result: False
i : 8 /// result: False
i : 9 /// result: False

用(一)结尾代码(ps:这段代码把1改为0是可以运行的,能调出笔记本的摄像头),出现这个错误提示

  • 错误:assertion faile 断言失败

二.问题分析

2.0.分析

2.1.协议问题

2.2驱动问题

打开硬件管理器

 

 

 

似乎也不是驱动的问题。。

 

2.3.必须用相机自带SDK(Software Development Kit)软件开发工具包调用相机

2.3.1猜测:

2.3.2 SDK里有啥子

  • API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API而使操作系统去执行应用程序的命令(动作)。
  • DLL (Dynamic Link Library, 动态链接库)
  • 在 Windows 环境下含有大量 .dll格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及可执行代码等。其实 Windows 的三大模块就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API函数的执行代码。为了使用 DLL 中的 API 函数, 必须要有 API 函数的声明(.h)和其导入库(.lib),导入库可以先这样理解:导入库是为了在 DLL 中找到 API 的入口点而使用的。
  • 为了使用 API 函数,我们就要有跟 API 所对应的 .h 和 .lib 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。
  • SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做 “SDK编程”。而API和 SDK 是开发Windows应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如VCL 和MFC,虽然他们比起 “SDK 编程” 来有着更高的抽象度,但这丝毫不妨碍我们在需要的时候随时直接调用 API 函数 

2.3.3 相关帖子1

  •  解决方案

???懵逼
 

2.3.4 相关帖子2

???????????

2.3.5 相关文章3

2.3.6 是否可以用SDK里的ddl调用相机??

2.3.7* 海康威视网络摄像头SDK中Demo的二次开发

2.3.8 一篇不明觉厉的博客

三.相关拓展

 

 

展开阅读全文

没有更多推荐了,返回首页