使用python和C混合编程实现远程控制(*****)
\关于图像编码问题**\1**我屏幕分辨率是 1920 1080 3 = 6220800,所每帧是 6220800/1024/1024 = 5.9M
如果 要60fps的话 则需要每秒传输 5.9M*60 = 360M/s 太大了 明显不可能
所以需要个图片压缩传输
\2**如果用png压缩的话 是102K 如果60fps的话 则6m/S
也有点大
\3**我们其实不行呀传送整张图片
我们只需要传送 这帧和上帧的差异部分就可以,这样就可以让传输变得更加快捷
png (im2 - im1)
所以我们选择 numpy 实现两张图片之间做一个减法
而opencv-python可以把两张图片的差 变成图片进行传输
Server:
\实现桌面的传输**\1、对于被控端(server):**具体步骤:
1、先建立一个套接字
2、实现桌面的截图
3、传输,接受控制端发的信息
4、实现 键盘和鼠标的操作
\、对于 控制端(client):**具体步骤:
1、建立对应的套接字
2、收到数据流
3、根据套接字编码 而解码,并且监听自己cavas 鼠标 键盘 数据流 且发送给 server
4、 ...
使用python和C混合编程实现远程控制(*****)
\关于图像编码问题**\1**我屏幕分辨率是 1920 1080 3 = 6220800,所每帧是 6220800/1024/1024 = 5.9M
如果 要60fps的话 则需要每秒传输 5.9M*60 = 360M/s 太大了 明显不可能
所以需要个图片压缩传输
\2**如果用png压缩的话 是102K 如果60fps的话 则6m/S
也有点大
\3**我们其实不行呀传送整张图片
我们只需要传送 这帧和上帧的差异部分就可以,这样就可以让传输变得更加快捷
png (im2 - im1)
所以我们选择 numpy 实现两张图片之间做一个减法
而opencv-python可以把两张图片的差 变成图片进行传输
Server:
\实现桌面的传输**\1、对于被控端(server):**具体步骤:
1、先建立一个套接字
2、实现桌面的截图
3、传输,接受控制端发的信息
4、实现 键盘和鼠标的操作
\、对于 控制端(client):**具体步骤:
1、建立对应的套接字
2、收到数据流
3、根据套接字编码 而解码,并且监听自己cavas 鼠标 键盘 数据流 且发送给 server
4、 ...
默克尔树
默克尔树(Merkle tree)是一种哈希树的结构常用于数据完整性验证和快速数据检索。在比特币中,每个区块的交易记录就是通过默克尔树组织起来的。在本文中,我们将使用Go语言实现一个简单的默克尔树。
首先,我们需要定义一个数据结构来表示默克尔树节点:
type MerkleNode struct {
Left *MerkleNode
Right *MerkleNode
Data []byte
}
MerkleNode包含三个字段:Left和Right表示左右子节点,Data表示节点的数据。对于叶子节点,Data为交易记录的哈希值;对于非叶子节点,Data为左右子节点的哈希值的拼接。
接下来,我们实现一个函数来创建默克尔树节点:
func NewMerkleNode(left, right *MerkleNode, data []byte) *MerkleNode {
node := MerkleNode{}
if left == nil && right == nil ...
P2PSH
什么是P2PSH?P2PSH是一种基于比特币区块链的分布式版本控制协议,类似于Git和Mercurial,但是P2PSH协议将版本控制扩展到了分布式环境中,使得多个用户能够共享和管理同一份代码。
P2PSH的设计目的是为了解决Git和Mercurial等集中式版本控制系统的一些缺点,比如单点故障和中心化控制等问题。P2PSH协议使用比特币区块链作为分布式数据库,使用比特币的密码学安全机制保证了数据的安全性和不可篡改性。
在P2PSH中,每个版本被称为“commit”,每个commit都有一个唯一的ID,称为“commit ID”。当用户提交一个commit时,需要提供commit的内容、commit的父commit ID(即前一个版本的commit ID)以及一个私钥签名,以确保该commit是由合法用户提交的。一旦commit被提交到区块链上,就不能被篡改或删除。
P2PSH协议使用Merkle树来存储文件和文件夹的内容,Merkle树是一种哈希树,它将数据分成小块并为每个块生成一个哈希值,然后将这些哈希值按照一定的规则组织成一颗树形结构。Merkle树可以高效地验证数据的完整性和一 ...
GIF (如同我这个标题图片)
使用 Python 中的 moviepy 和 PIL 库实现视频截取成为 GIF介绍在日常生活中,我们可能会需要把一个视频中的某个部分转换成为 GIF 图片,用于发送到社交媒体、聊天软件等应用场景。在 Python 中,我们可以使用 moviepy 和 PIL 两个库来实现视频截取成为 GIF 的功能。
安装在运行上述代码前,我们需要先安装 moviepy 和 PIL 库。可以使用 pip 来进行安装:
pip install moviepy
pip install Pillow
代码实现from moviepy.editor import *
from PIL import Image
# 定义截取视频的函数
def video_to_gif(video_path, gif_path, start_time, end_time, fps):
# 读取视频
video = VideoFileClip(video_path)
# 截取指定时间段的视频
video = video.subclip(start_time, end_time)
# 指 ...
录音
Python 实现录音功能本文将介绍如何使用 Python 实现录音功能。我们将使用 PyAudio 库来捕获和保存音频数据。
1. 安装 PyAudio 库首先需要安装 PyAudio 库。可以通过 pip 命令来安装:
pip install pyaudio
2. 录音下面的代码实现了录音功能。它使用 PyAudio 库来捕获音频数据,并将其保存为 WAV 文件。录音时长由 RECORD_SECONDS 变量控制。
import pyaudio
import wave
# 录音时长
RECORD_SECONDS = 5
# 音频数据的采样率
RATE = 16000
# 采样大小(每次读取的音频数据块大小)
CHUNK = 1024
# 录音文件名
WAVE_OUTPUT_FILENAME = "output.wav"
# 创建 PyAudio 对象
audio = pyaudio.PyAudio()
# 打开音频流
stream = audio.open(format=pyaudio.paInt16,
channels=1,
...
视频分解
使用Python tkinter提取视频文件中的音频 本篇博客介绍如何使用Python tkinter库实现一个图形界面,通过选择视频文件,将视频中的音频分离出来,保存为AAC格式文件。
实现步骤1. 导入所需库import os
import tkinter as tk
from tkinter import filedialog
2. 创建应用类class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
# 添加选择视频文件按钮
self.select_video_button = tk.Button(self)
self.select_video_b ...
简单神经网络 - 利用鸢尾花数据集,实现前向传播、反向传播,可视化loss曲线
代码导入模块import tensorflow as tf
from sklearn import datasets
from matplotlib import pyplot as plt
import numpy as np
导入数据,分别为输入特征和标签
x_data = datasets.load_iris().data
y_data = datasets.load_iris().target
随机打乱数据(因为原始数据是顺序的,顺序不打乱会影响准确率)
seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样
np.random.seed(116) # 使用相同的seed,保证输入特征和标签一一对应
np.random.shuffle(x_data)
np.random.seed(116)
np.random.shuffle(y_data)
tf.random.set_seed(116)
将打乱后的数据集分割为训练集和测试集,训练集为前120行,测试集为后30行
x_train = x_data[:-30]
y_train = y_data[:-30]
x_t ...
神经网络分类
Mnist分类任务:
网络基本构建与训练方法,常用函数解析
torch.nn.functional模块
nn.Module模块
读取Mnist数据集
会自动进行下载
%matplotlib inline
from pathlib import Path
import requests
DATA_PATH = Path("data")
PATH = DATA_PATH / "mnist"
PATH.mkdir(parents=True, exist_ok=True)
URL = "http://deeplearning.net/data/mnist/"
FILENAME = "mnist.pkl.gz"
if not (PATH / FILENAME).exists():
content = requests.get(URL + FILENAME).content
(PATH / FILENAME).open("wb").write(content)
import pickle
import gzip
with gzip.open((P ...
简单神经网络 - 搭建PyTorch神经网络进行气温预测
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import torch
import torch.optim as optim
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline
features = pd.read_csv('temps.csv')
#看看数据长什么样子
features.head()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
year
month
d ...