python——安装opencv的过程

1.换源(不一定要的)

为什么换源?

是否为下载第三方源的慢and出错而烦恼。这个的原因是因为我们下载的库都是在国外的,自然下载就很慢。换成国内源就可以解决掉这个问题了

换源后pip下载第三方库就会很快的(注:如果用开发工具(比如Anaconda、pycharm、Visual Studio) 的就不用换了,一般这种自带都下载很快的(我的Visual Studio就很快),而且还不知道用开发工具是否可以这样换的)

该方法对安装纯python的有用(其他的可以自行测试)

方法一:临时使用镜像源下载Python包:
以numpy为例:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
其他镜像源地址:
阿里云:http://mirrors.aliyun.com/pypi/simple/

方法二:永久更改镜像源
在 “C:\Users\用户名” 文件夹下,添加pip文件夹,文件夹内新建pip.ini文件,内容为:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

怎么知道已经成功用镜像源了?出现下面的图片样子

ps:建议用阿里镜像源(清华的有些包我试过会出错的)

原文地址

2.安装opencv

安装opencv的命令行

pip install opencv-python

安装opencv-contrib-python

pip install opencv-contrib-python

ps:一般没有问题的了

3.用cv2.VideoCapture(0)调用不出摄像头

这个得一步一步排查

1)确定已经安装好库opencv-python和opencv-contrib-python

2)并且程序已经导入了import cv2 (感觉有点废话)

3)运行cv2.VideoCapture(0)没有报错,只是没有电脑摄像头没有反应

可以尝试一下这个


1>找到设置


2>在设置里面找到隐私


3>找到相机


4>确保以下箭头所指的该开的开了

如果还不行的话看下面

方法一:把cv2.VideoCapture(0)改成下面的

cv2.VideoCapture(0,cv2.CAP_DSHOW)

方法二:(仅适用于Windows操作系统)
打开cmd并输入:
setx OPENCV_VIDEOIO_PRIORITY_MSMF 0

ps:貌似我就是用方法2然后一劳永逸了,这样子也可以了cv2.VideoCapture(0)(记得重启电脑哦!)😂

可以尝试可以把下面的代码运行看看可以没

import cv2 as cv
cap = cv.VideoCapture(0,cv.CAP_DSHOW)  #更改API设置
flag = cap.isOpened()

index = 1
while (flag):
	ret, frame = cap.read()
	frame = cv.flip(frame, 1)  # 水平翻转
	cv.imshow("Capture_Paizhao", frame)
	k = cv.waitKey(1) & 0xFF
	if k == ord('s'):  # 按下s键,进入下面的保存图片操作
		cv.imwrite(r"F:\PyCharm\Camera calibration\Aruco_Identify\0" + str(index) + ".jpg", frame)
		print(cap.get(3))
		print(cap.get(4))
		print("save" + str(index) + ".jpg successfuly!")
		print("-------------------------")
		index += 1
	elif k == ord('q'):  # 按下q键,程序退出
		break
cap.release()
cv.destroyAllWindows()
				
参考的博客 参考的博客

ps:反正我行了(还不行只能百度了)

解决摄像头问题的发现过程

一开始也是百度,但怎么也查不了,什么乱七八糟的还都不管用。

后面无意识的在cmd里面运行python,就是运行cv2.VideoCapture(0)

发现出现了一些错误(我在IDLE里面运行,什么错误都没有,所以很难找到出错的问题)

当时忘记截图,大概出现的错误信息类似是这样的

[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-sxpsnz(我的错误,已经不见一块了)
[ WARN:1] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback(博客上的类似的)

所以按照博客上的方法,就成功了。博客连接就是上面的文章末尾