python实现UDP通信
# UDP传输字符串import socketimport timetx_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)tx_socket.bind(("192.168.233.65", 7070))rx_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)rx_socket.bind(("192.168.233.65", 9090))start_time = time.time()tx_socket.sendto("Jiahong is cool!" .encode("utf-8"), ("192.168.233.65", 9090))rec = rx_socket.recvfrom(65536)[0].decode("utf-8")stop_time = time.time()print((stop_ ...
Python程序耗时计算
时间戳相减 在代码执行前后各记录一个时间点,两个时间戳相减即程序运行耗时
获取时间戳time.time()
import timestart_time = time.time()sum = 0for i in range(100000000): sum += iprint(sum)end_time = time.time()print("耗时: {:.2f}秒".format(end_time - start_time))输出:4999999950000000耗时: 10.53秒
获取当前日期 datetime.datetime.now()
import datetimestart_time = datetime.datetime.now()sum = 0for i in range(100000000): sum += iprint(sum)end_time = datetime.datetime.now()print("耗时: {}秒".format(end_time - sta ...
python读写文件
常用的Python读写文件写法:
with open('{}SNR.txt'.format(SNR), 'a') as f: # with方式打开的文件自动删除 f.write('12.3')with open('1.txt', 'r') as f: a = f.read() print(float(a)) print(type(float(a)))
1.文件对象 在python中用open()可以创建一个文件对象。 open()使用方法:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明: file: 必需,文件路径(相对或者绝对路径)。 mode: 可选,文件打开模式 (常用) buffering: 设置缓冲 encoding: 一般 ...
信道编码和交织
信道编码的引入主要是为了解决数据在信道中传输时引入的误码问题。解决误码问题有两个办法:前向纠错、后向纠错。
一.FEC(Forward erro correction)1.重复码
将每一个信息比特重复3次编码:0→000,1→111。 接收端根据少数服从多数的原则进行译码。 传输效率低
2.分组码
为了提高传输效率,将k位信息比特分为一组,增加少量多余码元,共计n位,这就是分组码。 包含k位信息比特的n位分组码,一般记为(n,k)分组码,如图5所示。
奇偶校验码:只能查错(奇数个错误)不能纠错 汉明码:可检测两位错误,纠正一位错误 检错原理:如(7,4)汉明码 s2=a6⊕a5⊕a4⊕a2 s1=a6⊕a5⊕a3⊕a1 s0=a6⊕a4⊕a3⊕a0 根据计算结果s2s1s0,可以判断出是否出错,如果出错,具体是哪个码元出错, 纠错原理:发现错误位后将其取反3.卷积码
编码原理:(1)编码器工作原理 用(n,k,K)来表示卷积码,其中: n:编码器每次输出的码元个数; k:编码器每次输入的信息码元个数,一 ...
图像特征检测和描述
项目原因,需要对图像特征进行检测,以前在学习opencv时就知道有一些常用的特征检测算法,但因为时间久远,重新了解并简单记录一下。因为对特征检测的要求并不高,因此主要关于传统特征检测方法,且主要关于SIFT。
特征检测与描述 特征:局部图像特征(也称为感兴趣点、关键点、突出点)被定义为一个具体的pattern不同于周围邻近的像素,通常关联着一个或多个图像的属性。这样的属性包括但不限于边缘edges、角点corners、区域regions。
描述符:描述符term detector指的是能够使用高维特征向量描述特征点的算法/技术。
介绍 SIFT(Scale-Invariant Feature Transform):尺度不变特征转换。相比角点检测算法Harris和shi-tomas,SIFT算法具有角度和尺度不变性,不论平移、旋转、缩放、亮度和噪声对特征点检测没有影响,而且计算准确,速度快。
优势:获取大量的图片特征信息对于物体识别来说是至关重要的,SIFT能够生成大量的特征,它们密集的覆盖了整个图像的尺度和位置,例如,对于一个500*500像素的图片将能够产生 ...
图片类型转换
前言 在计算机视觉任务中,大多数时候都涉及到图片的加载、训练以及训练结果的可视化。在实操过程中,经常会遇到图片各种类型之间的转换问题
三种类型PIL、tensor、numpy,一种显示plt
图片的读入 通常是有两种读入方式,分别是用PIL中的Image读入和用openCV读入。PIL(Python Imaging Library)是Python中最基础的图像处理库,OpenCV是一个很强大的图像处理库,适用面更广。两种读入方式是有区别的,主要有以下几个区别
图片格式不同,Image读入的是“RGB”,Opencv读入的是“BGR”。
读入图片的尺寸不同,Image读入的是 w h,Opencv读入的是h w c。其中w是宽,h是高,c是通道数。
Image读入是Image类无法直接显示其像素点的值(可以转换成numpy显示),Opencv读入的直接是numpy的格式。可以直接显示其像素值。
代码演示import os.pathfrom PIL import Imageimport cv2import numpy as npimport matplotlib.pyplot ...
Git代理
当您在克隆或从远程仓库获取数据时,很可能因为网络状况不佳遇到很慢甚至超时的情况,那么此时您可能需要配置 Git 的代理。
Git 支持的传输协议以及判断(点击展开)在此之前需要先提一下,Git 支持的传输协议有 ssh、git、http 和 https 协议(此外,ftp 和 ftps 也可用于拉取,但在 Git 官方文档中提到是低效且过时的,不建议使用)。其原生传输协议(即 git:// URL)不做鉴权,在不安全的网络环境下应谨慎使用。要如何分辨 Git 使用的传输协议呢?可以通过 Git URL 来进行判断:sshssh://[user@]host.xz[:port]/path/to/repo.git/ 或 [user@]host.xz:path/to/repo.git/gitgit://host.xz[:port]/path/to/repo.git/http / httpshttp[s]://host.xz[:port]/path/to/repo.git/ftp / ftpsftp[s]://host.xz[:port]/path/to/repo. ...
毕业设计:嵌入式平台的目标检测-5
目前进展 使用PySide2写了图形化界面,目前只修改了一点bug,基本能保证软件的流畅运行,几个注意点:
界面更新在主线程中进行,更新的数据在QThread线程中获得,切忌在python的线程中,否则会导致界面卡死,QThread使用方法见下
当主界面存在两个QLabel,需要显示两张图时,第二张图会对第一张产生影响,需要为每个QLabel添加box边框并且设置sizepolicy为ignore
使用访问本地文件浏览器时,如果卡死,可以使用和本地浏览器不同的浏览器
别在虚拟环境中pyinstaller,会导致虚拟环境直接G!很难受,重新搞环境
# Qthread使用方法import timeimport sysfrom PyQt5.QtWidgets import QApplicationfrom gui.mainwindow import MainWindowfrom PyQt5.QtWidgets import QMainWindowfrom PyQt5.QtCore import QThread, pyqtSignalfrom .ui_mainwindow import ...
毕业设计:嵌入式平台的目标检测-4
目前进展 之前提到使用yolov5官方代码实现了目标检测,并且使用第三方tensorrt库实现加速推理。
最近有一些科研上的需求,因为yolov5官方代码冗余度太高,于是寻找了yolov5的第三方库,注释非常清晰,可读性非常高,遂决定基于这个库开展接下来的工作。
使用记录 工程参考:https://github.com/bubbliiiing/yolov5-pytorch#%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD
YOLOv5目标检测主要有训练和预测两个阶段
1.训练:使用到的文件:voc_annotation.py, train.py
用Imglabel制作数据集,最终得到原始图片和xml标签文件
在model_data/ 下添加自己数据集的类别txt文件
使用voc_annotation.py文件生成训练集和验证集txt文件。这个txt是最终用于训练的,可以理解为将图片、标签和类别三个文件集合起来
执行train.py开始训练,当然需要更改一些参数
2.预测:使用到的文件:predict.py, yolo.py
修 ...
Pillow
参考Pillow
简介 PIL( Python Imaging Library)是 Python 的第三方图像处理库,由于其功能丰富,API 简洁易用,因此深受好评。
自 2011 年以来,由于 PIL 库更新缓慢,目前仅支持 Python 2.7 版本,这明显无法满足 Python3 版本的使用需求。于是一群 Python 社区的志愿者(主要贡献者:Alex Clark 和 Contributors)在 PIL 库的基础上开发了一个支持 Python3 版本的图像处理库,它就是 Pillow。
Pillow 不仅是 PIL 库的“复制版”,而且它又在 PIL 库的基础上增加了许多新的特性。Pillow 发展至今,已经成为了比 PIL 更具活力的图像处理库。
Pillow 的初衷只是想作为 PIL 库的分支和补充,如今它已是“青出于蓝而胜于蓝”。
Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。与 Pillow 相比,OpenCV 和 Scikit-image 的功能更为丰富,所以使用起来 ...