Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

micropython esp32-cam 实时摄像,并显示


micropython esp32-cam 拍照

提示

如果运行如下程序后,电脑端没有弹出视频窗口,请检查以下2点

ESP32-CAM是否与pc电脑连接相同的路由器(wifi,网线都行)

pc电脑是否关闭防火墙(如果未关闭 则电脑不会收到数据)



如果运行如下程序后,电脑端没有弹出视频窗口,请检查以下2点


ESP32-CAM是否与pc电脑连接相同的路由器(wifi,网线都行)


pc电脑是否关闭防火墙(如果未关闭 则电脑不会收到数据)


2.1PC端代码

使用UDP套接字,发送方不停的发东西就行了。

————————————————

import socket
import cv2
import io
from PIL import Image
import numpy as np
 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,0)#创建UDP的套接字
 
s.bind(("0.0.0.0",9090))whileTrue:#0.0.0.0:任意IP地址来源;使用相同端口9090
 
    data, IP = s.recvfrom(100000)#接收数据
    bytes_stream = io.BytesIO(data)
 
#显示图片、视频(若未接收到数据,窗口不会出现)
    image = Image.open(bytes_stream)
    img = np.asarray(image)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)# ESP32采集的是RGB格式,要转换为BGR(opencv的格式)
 
    cv2.imshow("ESP32 Capture Image", img)
 
    if cv2.waitKey(1)==ord("q"):
        break#按q退出

2.2ESP32-CAM端代码

电脑IP:在cmd中输入if

import socket
import network
import camera
import time
 
 
# 连接wifi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():#联网
    print('connecting to network...')
    wlan.connect('dongfeiqiu', 'wangmingdong1225')#wifi名字、密码
    
    while not wlan.isconnected():
        pass
print('网络配置:', wlan.ifconfig())
 
 
# 摄像头初始化
try:
    camera.init(0, format=camera.JPEG)
except Exception as e:
    camera.deinit()
    camera.init(0, format=camera.JPEG)
 
 
# 其他设置:
# 上翻下翻
camera.flip(0)
#左/右
camera.mirror(1)
 
# 分辨率
camera.framesize(camera.FRAME_HVGA)
# 选项如下:
# FRAME_96X96 FRAME_QQVGA FRAME_QCIF FRAME_HQVGA FRAME_240X240
# FRAME_QVGA FRAME_CIF FRAME_HVGA FRAME_VGA FRAME_SVGA
# FRAME_XGA FRAME_HD FRAME_SXGA FRAME_UXGA FRAME_FHD
# FRAME_P_HD FRAME_P_3MP FRAME_QXGA FRAME_QHD FRAME_WQXGA
# FRAME_P_FHD FRAME_QSXGA
# 有关详细信息,请查看此链接:https://bit.ly/2YOzizz
 
# 特效
camera.speffect(camera.EFFECT_NONE)
#选项如下:
# 效果\无(默认)效果\负效果\ BW效果\红色效果\绿色效果\蓝色效果\复古效果
# EFFECT_NONE (default) EFFECT_NEG \EFFECT_BW\ EFFECT_RED\ EFFECT_GREEN\ EFFECT_BLUE\ EFFECT_RETRO
 
# 白平衡
camera.whitebalance(camera.WB_HOME)
#选项如下:
# WB_NONE (default) WB_SUNNY WB_CLOUDY WB_OFFICE WB_HOME
 
# 饱和
camera.saturation(0)
#-2,2(默认为0). -2灰度
# -2,2 (default 0). -2 grayscale 
 
# 亮度
camera.brightness(0)
#-2,2(默认为0). 2亮度
# -2,2 (default 0). 2 brightness
 
# 对比度
camera.contrast(0)
#-2,2(默认为0).2高对比度
#-2,2 (default 0). 2 highcontrast
 
# 质量
camera.quality(10)
#10-63数字越小质量越高
 
# socket UDP 的创建
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)
 
try:
    while True:
        buf = camera.capture()  # 获取图像数据
        s.sendto(buf, ("192.168.31.53", 9090))  # 向服务器(电脑ip)发送图像数据
        time.sleep(0.1)
except:
    pass
finally:
    camera.deinit()



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.0095150470733643 seconds