“ 电脑没有摄像头之这不是有手机摄像头”
因为电脑低级或者像我一样本身就是使用台式电脑的兄弟,又不想买摄像头,想想就痛苦。
今天,我们就来解决这个痛苦的问题,虽然我们的电脑没有摄像头,但是,我们的手机有摄像头呀!那我们要怎么来使用手机摄像头呢?这个就是我们今天要来解决的问题。
01— 明确目标
首先我们需要明确我们的目标是什么,我们要做什么,我们在电脑上想要使用手机的摄像头。
问题一:我们要怎么调用手机摄像头?
普通的方法肯定是行不通的了,那有什么好的方法吗?经过我不断的百度,终于让我找到了一款厉害的软件,在局域网之内可以自由调用手机摄像头捕捉到的信息。那问题就解决了。
问题二:那我们要怎么把捕捉到的镜头实时的显示出来呢?
针对这个问题,我们找到了一个非常好的python库 。使用这个库,我们就可以让我们的图像显示出来了。
完美,我们来看具体操作吧!软件我将他统一存放在网盘中,文章没告诉大家呦!
02— 软件的使用
我们将摄像头apk安装在手机上并开始使用。我们来验证一下显示情况吧!
1、我们将手机和电脑连接在同一个wifi下面。
2、我们来启动我们的app,可以看见app中有一个链接地址。
3、我们将这个局域网链接地址写入浏览器的地址中,然后运行起来。
账号:admin
密码:admin
然后我们就可以看见如下画面:
这其实是一段视频,看见这个的话,那就说明你成功了一半。
如何来处理这段视频呢?这时候就到我们编码了。
首先我们来引入我们需要的模块:
pip install opencv-python
然后我们来继续编写
代码如下:
import cv2#导入库
cv2.namedWindow("camera", 1)# 定义启动窗口名称
video = "http://admin:admin@192.168.1.52:8081/" # 此处@后换成我们之前获取到的app局域网地址
capture = cv2.VideoCapture(video)#引入视频地址,video其实也可以换成你电脑中的视频地址可以制作成一个播放器。
这样我们就将视频引入进来了,当然你可以换一个视频地址,把它变成视频播放器,然后我们就需要去读取我们引入的视频地址
既然实时的,而且要长时间运行,那当然少不了while true
代码如下:
while True:
success, img = capture.read()#读取视频
cv2.imshow("camera", img)
然后我们发现终于可以正常运行了,完美。但,无法退出,非常绝望。
虽然这是一个bug,但是在不同场景中他就不是bug,就比如你如果将这个软件发送给你的死党,让他一找不到关闭窗口的办法,只能重启电脑,让你高兴一阵,那这个就不是bug。,不过他会把你怎么样我就不管了。
那我们如何解决退出的问题,继续来看,加一个判断吧!
key = cv2.waitKey(10)# 按键处理
if key == 27:# esc键退出
print("esc break...")
break
然后就退出了,虽然退出了,但 是我们需要做后续处理:
capture.release()#释放摄像头
cv2.destroyWindow("camera")#退出窗口
# cv2.destroyAllWindows() # 毁掉所有窗口
# cv2.destroyWindow(wname) # 销毁指定窗口
然后我们的电脑调用摄像头就圆满搞定了。