当前位置: 首页 > news >正文

怎么在网站添加链接兰州做网站哪家专业

怎么在网站添加链接,兰州做网站哪家专业,万表手表官网,小程序分销功能是怎么实现的python socket网络编程 将ros机器人摄像头捕捉的画面在上位机实时显示#xff0c;需要用到socket网络编程#xff0c;提供了TCP和UDP两种方式 TCP服务器端代码: 创建TCP套接字: s socket(AF_INET, SOCK_STREAM) 创建了一个TCP套接字。SOCK_STREAM 表示这是一个TCP套接字需要用到socket网络编程提供了TCP和UDP两种方式 TCP服务器端代码: 创建TCP套接字: s socket(AF_INET, SOCK_STREAM) 创建了一个TCP套接字。SOCK_STREAM 表示这是一个TCP套接字而不是UDP的 SOCK_DGRAM。 绑定地址: s.bind(addr) 将套接字绑定到一个特定的地址和端口上。 监听连接: s.listen(1) 使套接字开始监听连接请求。参数 1 表示最多可以有一个待处理的连接。 接受连接: conn, addr s.accept() 阻塞直到客户端连接。一旦客户端连接它将返回一个新的套接字对象和客户端的地址。 接收和处理数据: 在一个循环中data conn.recv(921600) 从新的套接字对象接收数据。使用 cv2.imdecode 和 cv2.imshow 处理和显示接收到的图像数据。如果按下 ‘q’ 键循环将终止。 清理: conn.close() 关闭客户端连接。s.close() 关闭监听套接字。cv2.destroyAllWindows() 关闭所有OpenCV窗口。 import numpy as np import cv2 from socket import *# 创建TCP套接字 s socket(AF_INET, SOCK_STREAM) addr (127.0.0.1, 8080) s.bind(addr) s.listen(1) # 监听连接参数1表示最大连接数print(Waiting for a connection...) conn, addr s.accept() # 接受连接 print(fConnection from {addr})try:while True:data conn.recv(921600) # 接收数据if not data:break # 如果没有数据退出循环receive_data np.frombuffer(data, dtypeuint8)r_img cv2.imdecode(receive_data, 1)r_img r_img.reshape(480, 640, 3)cv2.putText(r_img, server, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow(server_frame, r_img)if cv2.waitKey(1) 0xFF ord(q):break finally:conn.close() # 关闭连接s.close() # 关闭套接字cv2.destroyAllWindows() TCP客户端: 创建TCP套接字: 同样使用 s socket(AF_INET, SOCK_STREAM) 创建一个TCP套接字。 连接到服务器: s.connect(addr) 尝试连接到服务器的地址和端口。 捕获和处理图像: 在一个循环中使用 cv2.VideoCapture 捕获图像并通过 cv2.flip 对图像进行处理。 发送图像数据: 创建一个新线程 th 来调用 send_img 函数并使用 th.start() 启动线程。send_img 函数中使用 cv2.imencode 将图像编码为JPEG格式然后使用 s.sendall(send_data) 将图像数据发送到服务器。 显示图像: 在本地显示处理过的图像并检查是否按下了 ‘q’ 键来决定是否退出循环。 清理: s.close() 关闭TCP套接字。cv2.destroyAllWindows() 关闭所有OpenCV窗口。 import cv2 import threading from socket import *def send_img():_, send_data cv2.imencode(.jpg, img, [cv2.IMWRITE_JPEG_QUALITY, 50])s.sendall(send_data) # 发送所有数据print(f已发送{len(send_data)}Bytes的数据)addr (127.0.0.1, 8080) cap cv2.VideoCapture(0)s socket(AF_INET, SOCK_STREAM) s.connect(addr) # 连接到服务器try:while True:_, img cap.read()img cv2.flip(img, 1)th threading.Thread(targetsend_img)th.setDaemon(True)th.start()cv2.putText(img, client, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow(client_frame, img)if cv2.waitKey(1) 0xFF ord(q):break finally:s.close() # 关闭套接字cv2.destroyAllWindows() 导入必需的库: sys 和 os 是Python的标准库用于访问与Python解释器和操作系统交互的一些功能。numpy 是一个用于数值计算的库。cv2 是OpenCV库的Python接口用于图像处理和计算机视觉任务。threading 和 time 是Python的标准库分别用于多线程编程和时间相关的功能。socket 是Python的标准库用于网络通信。 创建一个UDP套接字: s socket(AF_INET, SOCK_DGRAM) 这行代码创建了一个新的UDP套接字。 绑定套接字到地址: addr (127.0.0.1, 8080) 这行代码定义了一个地址其中 127.0.0.1 是本机的IP地址8080 是端口号。s.bind(addr) 这行代码将套接字绑定到指定的地址。 接收和处理数据: 这个脚本进入一个无限循环等待接收数据。data, _ s.recvfrom(921600) 这行代码从套接字接收数据最多接收921600字节的数据。receive_data np.frombuffer(data, dtypeuint8) 这行代码将接收到的数据转换为一个numpy数组。r_img cv2.imdecode(receive_data, 1) 这行代码解码接收到的数据将其转换为一个OpenCV图像对象。r_img r_img.reshape(480, 640, 3) 这行代码将图像重塑为480x640的大小并指定该图像有3个颜色通道。cv2.putText(...) 这行代码将文本 “server” 画到图像上。cv2.imshow(server_frame, r_img) 这行代码显示处理后的图像。if cv2.waitKey(1) 0xFF ord(q): 这行代码检查是否按下了键 ‘q’如果是则退出循环。 清理: cv2.destroyAllWindows() 这行代码关闭所有OpenCV窗口。 UDP服务器端: import sys, osimport numpy as np import cv2, threading, time from socket import *s socket(AF_INET, SOCK_DGRAM) # addr (192.168.64.1, 8080) addr (127.0.0.1, 8080) # 127.0.0.1表示本机的IP相当于我和“自己”的关系 s.bind(addr) while True:data, _ s.recvfrom(921600)receive_data np.frombuffer(data, dtypeuint8)r_img cv2.imdecode(receive_data, 1)r_img r_img.reshape(480, 640, 3)cv2.putText(r_img, server, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow(server_frame, r_img)if cv2.waitKey(1) 0xFF ord(q):breakcv2.destroyAllWindows()导入必需的库: 同样导入了numpy, cv2, threading, time和socket库。 定义 send_img 函数: send_img 函数中通过 s.sendto(send_data, addr) 语句将图像数据发送到指定的地址。输出已发送的数据大小并通过 s.close() 关闭套接字。 设置地址: addr (127.0.0.1, 8080) 设置了目标地址和端口。 初始化摄像头: 通过 cv2.VideoCapture(0) 初始化摄像头并进入一个无限循环。 捕获和处理图像: 在循环中通过 _, img cap.read() 语句捕获图像。通过 cv2.flip(img, 1) 语句将图像进行水平翻转。 创建并启动发送图像数据的线程: 创建一个新的UDP套接字。创建一个新线程 th并将 send_img 函数设置为该线程的目标。通过 th.setDaemon(True) 将线程设置为守护线程这意味着主程序退出时该线程也会退出。通过 cv2.imencode(.jpg, img, [cv2.IMWRITE_JPEG_QUALITY, 50]) 语句将图像编码为JPEG格式质量设置为50。通过 th.start() 语句启动线程。 显示图像: 通过 cv2.putText(...) 和 cv2.imshow(client_frame, img) 语句在本地显示图像并在图像上添加了文本 “client”。 退出条件: 如果按下’q’键通过 cv2.waitKey(1) 0xFF ord(q) 语句检测到这一条件并退出循环。 清理: 通过 cv2.destroyAllWindows() 语句关闭所有OpenCV窗口。 该脚本应该与你之前提供的服务器脚本配合使用服务器脚本用于接收图像数据而这个客户端脚本用于发送图像数据。 UDP客户端: import numpy as np import cv2, threading, time from socket import *def send_img():s.sendto(send_data, addr)print(f已发送{img.size}Bytes的数据)s.close()# input()# addr (192.168.43.106, 8080) addr (127.0.0.1, 8080) # 127.0.0.1表示本机的IP相当于我和“自己”的关系 cap cv2.VideoCapture(0) while True:_, img cap.read()img cv2.flip(img, 1)s socket(AF_INET, SOCK_DGRAM)th threading.Thread(targetsend_img)th.setDaemon(True)_, send_data cv2.imencode(.jpg, img, [cv2.IMWRITE_JPEG_QUALITY, 50])th.start()cv2.putText(img, client, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow(client_frame, img)if cv2.waitKey(1) 0xFF ord(q):breakcv2.destroyAllWindows()
http://www.w-s-a.com/news/131194/

相关文章:

  • 免费下载建设银行官方网站下载天河区做网站
  • 中文网站建设开发北京网站建设公司升上去
  • 邯郸网站设计 贝壳下拉服务器绑定网站打不开
  • 重庆网站建设帝玖科技手机网站建设价钱是多少
  • 广西建设厅网站行业网学新媒体运营要多少钱
  • 石家庄个人建站网站策划门户网什么意思
  • 沈阳市浑南区城乡建设局网站wordpress 批量打印
  • 网站建设都需学哪些天津网站建设交易
  • 公司网站空间家装室内设计
  • 一个考试网站怎么做品牌建设10阶梯
  • 网站建设网站设计广东双语网站建设多少钱
  • 临时手机号注册网站建筑效果图
  • wordpress网站是什么类似wordpress博客
  • 国际网站空间昆明做网站开发维护的公司
  • 建网站选号域名网站优化大赛
  • 师范街网站建设广告制作公司口号
  • 电子商务网站开发设计报告为什么wordpress主题中字体不统一
  • 百度站长快速收录网站建设完工确认书
  • 企业网站备案代理商建设工程施工合同2013
  • 要学做网站wordpress xss漏洞
  • 白云品牌型网站建设在网上做国际快递淘宝网站
  • 无锡网站建设方式推广软件赚钱的app
  • 如何控制一个网站软件开发wordpress教育插件
  • 网站开发属于软件开发类吗wordpress邮件失败
  • 凡科网站怎么设计win8网站模板
  • 深圳整站seo个人网站建设一般流程
  • 济南网站中企动力wordpress主题ripro
  • 淮北网站建设求职简历怎么做点击图片进网站
  • 自适应网站推广注册公司流程和费用公司注册
  • 电子商务网站建设预算表网站建设卩金手指科杰