pythonopencv摄像头
A. 树莓派opencv python读取摄像头
你的报错是找不到制定的function。
我的电脑上有这个:
In[1]:importcv2
In[2]:cv2.cvtColor
Out[2]:<functioncv2.cvtColor>
如果你没有的话查查安装的opencv全了么?
下面代码跟你的基本一致,这个测试可用。
defcap_frame():
cap=cv2.VideoCapture(0)
ret,frame=cap.read()
plt.imshow(frame,cmap='gray',interpolation='bicubic')
cap.release()
returnframe
B. python如何调用IP摄像头
正在用python+opencv做一个视频采集程序,在一个局域网中有多个ip摄像头和一个usb摄像头,如何知道调用的是哪个摄像头,检查该摄像状态,并且获得该摄像头的权限,也就是收到该摄像头的返回数据
C. 如何使用Python控制摄像头拍照并发邮件
这个实现起来非常容易,主要分为2步,首先控制摄像头拍照,然后将拍到的照片作为邮件附件发送就行,下面我简单介绍一下实现过程,实验环境win7+python3.6+pycharm5.0,主要内容如下:
控制摄像头拍照
这里我们直接使用opencv的python接口包就行,借助于opencv强大的功能,我们只需要很少量的代码就可以实现摄像头拍照的功能,具体步骤如下:
1.首先,安装opencv-python模块,这个直接在cmd窗口输入命令“pip install opencv-python”就行,如下,很快就能安装成功:
2.安装完成后,我们就可以编写代码来实现控制摄像头拍照的功能了,测试代码如下,非常简单,打开摄像头,按帧播放,当按下q键时保存图片并退出,当前目录下就会出现拍到的照片,后面就是将这个照片作为邮件附件进行发送:
发送邮件
这里以发送163邮件为例,主要用到Python自带的smtplib模块,专门用于发送邮件,具体步骤如下:
1.首先,需要开启开启邮箱POP3/SMTP服务,这个直接登录邮箱,在上面菜单栏点击“设置”,勾选POP3/SMPT服务就行,如下:
接着点击左边管理列表的“客户端授权密码”,设置授权密码,后面的python代码中需要借助这个密码才能登陆邮箱服务器发送邮件:
2.一切设置完成后,我们就可以直接编写代码来发送带有照片的邮件了,测试代码如下,非常简单,只需要在邮件中attach一下照片就行,函数输入参数分别为发送人邮箱、密码、接收人邮件列表、主题、内容和附件名称:
运行这个程序,邮件就可以正常发送,并且可以看到发送的照片附件,如下:
至此,我们就完成了利用python来控制摄像头拍照并发送邮件。总的来说,整个过程不难,思路也比较清晰,只要你有一定的python基础,熟悉一下上面的代码,多调试几遍程序,很快就能掌握的,网上也有相关教程和资料,非常丰富详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
D. mac本使用opencv打开摄像头导致python意外退出
我再win上测试没有问题,
import cv2
cap = cv2.VideoCapture(0)
while 1:
ret, frame = cap.read()
k = cv2.waitKey(1)
if k == 27:
break
cv2.imshow("capture", frame)
cap.release()
cv2.destroyAllWindows()
实在不行试试cv+pygame
代码如下:
import pygame
import cv2
cap = cv2.VideoCapture(0)
ret, img = cap.read()
if not ret:
print("Can't read stream")
img = cv2.transpose(img)
print('shape:', img.shape)
pygame.init()
screen = pygame.display.set_mode((img.shape[0],img.shape[1]))
surface = pygame.surface.Surface((img.shape[0], img.shape[1]))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
ret, img = cap.read()
if not ret:
running = False
break
else:
img = cv2.transpose(img)
pygame.surfarray.blit_array(surface, img)
screen.blit(surface, (0,0))
pygame.display.flip()
pygame.quit()