- 博客(22)
- 收藏
- 关注
原创 SVM对MNIST数据集分类——python实现
python实现SVM分类且进行调参问题描述从 MNIST 数据集中任意选择两类,对其进行 SVM 分类,可调用现有的 SVM 工具如 LIBSVM,展示超参数 C 以及核函数参数的选择过程。求解过程第一步:数据集下载,代码如下:mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()第二步:选定核函数为 RBF第三步:手动进行调参,调参过程如下,显示的准确率是测试集的,可
2021-02-04 22:57:11 5686 1
原创 K-means和谱聚类 ——python实现
文件目录data5用于K-meansdata2用于谱聚类K-means 实现算法步骤:step1:初始化聚类中心step2:计算每个样本点与聚类中心的距离,将其归为最近的一类step3:计算聚类之后的每个类别的均值作为新的类别中心step4:迭代进行 step2,step3,直到类别中心不再发生变化为止step5:计算准确率代码import numpy as npimport matplotlib.pyplot as pltdef draw(data,c): color
2021-02-04 22:50:42 1047 4
原创 python实现三层神经网络 (BP)
三层神经网络 (numpy实现)文件目录线性层 def forward(self, X): return np.matmul(X, self.W) + self.b def backward(self, X, grad): self.W_grad = np.matmul(X.T, grad) #k个样本权重累加求和 self.b_grad = np.matmul(grad.T, np.ones(X.shape[0])) #
2021-02-04 22:36:28 7348 3
原创 python实现线性判别函数
数据将数据保存到txt文件中,如下图所示,最后一列代表类别批更新 感知机 算法实现import numpy as npimport matplotlib.pyplot as pltdef batch_perception(data,yt,w1,w2): a = np.array([[0, 0, 0]]) w1 = str(w1) w2 = str(w2) #散点图绘制 plt.scatter(data[0:10, 0], data[0:10, 1],
2021-02-04 22:16:39 1920 3
原创 数字图像处理-小波域维纳滤波
问题描述编程作业:以 lena 图像为例,编程实现小波域维纳滤波编程实现:step1: 导入图片step2: 构造添加噪声的函数得到有噪声的图片def get_noise(img, sigma): row, col = img.shape noise = np.random.randn(row,col)*sigma img_noise = img + noise img_noise = np.where(img_noise <= 0, 0, img_no
2021-02-02 22:31:59 2053
原创 数字图像处理-形态学
问题描述编一个程序实现如下功能:1、读入一幅指纹图像(自己找);2、对图像进行二值化(方法自定,可以是阈值法);3、采用形态学骨架提取和距离变换骨架提取两种算法分别提取图像骨架;4、采用裁剪算法,并分析其效果。问题求解指纹图像问题二 用阈值法对图像进行二值化,阈值采用的是全局阈值算法得到,然后令前景像素为 1,背景像素为 0。阈值算法代码如下所示:def threshold(img): med = np.mean(img) med1 = 0 while np.me
2021-02-02 22:21:46 1148
原创 数字图像处理知识点总结
数字图像处理知识点总结1、图像获取2、图像的类型jpeg,tiff,ppp3、点扩散函数4、采样定理当采样频率满足 1/ΔT≥2μmax 1/ \Delta T≥2 \mu _ {max} 1/ΔT≥2μmax一个连续、带宽有限的信号可以被采样信号无损的重建。5、瑞丽半径D=0.61λNA D =\frac{0.61 \lambda}{ NA}D=NA0.61λNA代表数值孔径D表示光学系统中单位点与点之间的最小距离,否则将会有混淆6、相关w(x,y)☆f(x,y)=∑s=−as
2021-02-02 21:43:09 540
原创 数字图像处理-傅里叶变换系列编程
问题问题1通过计算一维傅里叶变换实现图像二维快速傅里叶变换代码实现def dft2D(f): h,w = f.shape F = np.zeros(f.shape, dtype=complex) for i in range(h): F[i,:] = np.fft.fft(f[i,:]) for i in range(w): F[:,i] = np.fft.fft(F[:,i]) return F 问题2图像二维快速..
2021-02-02 20:48:14 1614
原创 数字图像处理-灰度图像的高斯滤波
问题描述将彩色图像转换为NTSC的灰度图像进行高斯滤波,采用σ=1,2,3,5。任选一种像素填补方案。对于σ=1 下的结果,与直接调用相关函数的结果进行比较(可以简单计算差值图像)。然后,任选两幅图像,比较其他参数条件不变的情况下像素复制和补零下滤波结果在边界上的差别。代码实现导库import numpy as npimport warningsimport cv2灰度转换函数def rgb1gray(f, method='NTSC'): if method == 'aver
2021-02-02 18:02:58 3272 1
原创 数字图像处理-图像二维卷积函数
问题描述实现一个函数 g = twodConv(f, w), 其中 f 是一个灰度源图像,w 是一个矩形卷积核。要求输出图像 g 与源图像 f 大小(也就是像素的行数和列数)一致。请注意,为满足这一要求,对于源图像f需要进行边界像素填补(padding)。这里请实现两种方案。第一种方案是像素复制,对应的选项定义为’replicate’,填补的像素拷贝与其最近的图像边界像素灰度。第二种方案是补零,对应的选项定义为’zero’, 填补的像素灰度为 0. 将第二种方案设置为缺省选择。问题分析卷积公式w(x
2021-02-02 17:41:11 3430 2
原创 数字图像处理- 彩色图像转换为黑白图像
问题描述图像处理中的一个常见问题是将彩色 RGB 图像转换成单色灰度图像,第一种常用的方法是取三个元素 R,G,B 的均值。第二种常用的方式,又称为 NTSC 标准,考虑了人类的彩色感知体验,对于 R,G,B 三通道分别采用了不同的加权系数,分别是 R 通道 0.2989,G 通道0.5870,B 通道 0.1140. 实现一个函数 g = rgb1gray(f, method). 函数功能是将一幅 24 位的RGB 图像, f, 转换成灰度图像, g. 参数 method 是一个字符串,当其值为’ave
2021-02-02 17:28:06 4333
原创 数字图像处理-黑白图像灰度扫描
问题描述实现一个函数 s = scanLine4e(f, I, loc), 其中 f 是一个灰度图像,I 是一个整数,loc 是一个字符串。当 loc 为’row’时,I 代表行数。当 loc 为’column’时,I 代表列数。输出 s 是对应的相关行或者列的像素灰度矢量。调用该函数,提取 cameraman.tif 和 einstein.tif 的中心行和中心列的像素灰度矢量并将扫描得到的灰度序列绘制成图。代码实现def scanLine4e(f, I, loc): s = []
2021-02-02 17:22:31 1928
原创 多媒体分析与理解——第三课(深度学习)
深度学习深度学习概述神经网络历程深度学习发展与挑战深度学习基础知识多层感知机损失函数激活函数BP算法—训练多层神经网络误差反向传播方法算法推导—三层感知机伪代码实现BP算法的训练过程存在不确定性BN层学习率调整Momentum冲量过拟合典型深度学习模型介绍自编码器(Autoencoder)稀疏自编码(Sparse Autoencoder)去噪自编码(Denoising Autoencoder)压缩自编码(Contractive Autoencoder)栈式自编码(Stacked Autoencoder)卷积
2020-09-29 10:59:48 1727
原创 [:-1] 和 [::-1]的区别 --python
说明b = a[i:j] # 表示复制a[i]到a[j-1],以生成新的list对象a = [0,1,2,3,4,5,6,7,8,9]b = a[1:3] # [1,2]# 当i缺省时,默认为0,即 a[:3]相当于 a[0:3]# 当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]# 当i,j都缺省时,a[:]就相当于完整复制一份ab = a[i:j:s] # 表示:i,j与上面的一样,但s表示步进,缺省为1.# 所以a[i:j:1]相当于a[i
2020-07-23 23:52:40 551
原创 keras中K.function()的用法
K.function()主要是用于打印神经网络中的一些中间结果,便于查看和调试。keras.backend.function(inputs, outputs, updates=None)inputs: 占位符张量列表。outputs: 输出张量列表。updates: 更新操作列表。**kwargs: 需要传递给 tf.Session.run 的参数。输出值为 Numpy 数组。如果无效的 kwargs 被传入,则会出现ValueError的异常有点类似于tensorflow中的计算图
2020-07-18 16:53:01 1973
原创 OSError: `pydot` failed to call GraphViz.Please install GraphViz——报错解决方案
keras 可视化输出时报错from keras.utils import plot_model需要安装keras的plot_model环境pip install pydot-ngpip install graphvizpip install pydot另外还需要安装graphviz的客户端下载地址graphviz将安装好的graphviz的bin路径添加到电脑环境变量的path...
2020-04-15 19:22:04 243
原创 Jupyter安装使用详解(Windows版)
cmd输入pip install jupyter安装成功cmd输入下面命令 打开Jupyterjupyter notebook默认端口号8888配置 Jupyter notebookcmd输入命令jupyter notebook --generate-config在cmd中显示的文件目录下找到配置文件3.切换成自己的工作目录遇到的问题启动后服务器...
2020-04-09 22:29:52 741
原创 树莓派4B 安装pytorch python3.7
编译好的安装包链接:https://pan.baidu.com/s/1at4k0EcMttgDkGFJqNnM0g提取码:upsh百度网盘安装过程安装依赖sudo apt-get install libopenblas-dev安装numpy(没有numpy编译出来的pytorch会不支持numpy)pip3 install numpy pyyaml安装torch 前先 cd 到...
2020-04-08 15:31:33 1676 1
原创 树莓派python3安装opencv遇到的问题总结
安装环境:1、 树莓派3B2、树莓派系统:buster3、python3.7安装opencvsudo pip3 install opencv-contrib-python问题一解决:sudo apt-get install libatlas-base-dev如果出现下面的错误E: Package 'libcblas-base-dev' has no installation...
2020-04-01 19:33:54 1166
原创 win10通过网线连接树莓派
网线连接树莓派主要为了方便以后查阅Step1 材料1、树莓派:带供电系统和烧好Raspbian系统的SD卡;2、网线:交叉或直连;3、笔记本电脑:双网卡,现在应该都是这个配置的。Step2 准备工作打开网络设置—>更改适配器—>修改wlan的共享属性如下图所示若出现下图问题,win+r然后敲入services.msc进入服务选项,将Windows Firewa...
2020-03-31 19:35:33 4381 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人