-
大小: 3KB文件类型: .py金币: 1下载: 1 次发布日期: 2021-06-18
- 语言: Python
- 标签: k-svd python dictionary-l
资源简介
对单个图片进行k-svd进行稀疏表示,求出迭代后的字典和稀疏编码,并通过字典和稀疏编码进行重建原图像,该代码是2006年k-svd算法提出者的简单实现代码,对小白有一定帮助
代码片段和文件信息
import numpy as np
from sklearn import linear_model
import scipy.misc
from PIL import Image
from matplotlib import pyplot as plt
from time import time
class KSVD(object):
def __init__(self n_components max_iter=50 tol=1e-6
n_nonzero_coefs=None):
“““
稀疏模型Y = DX,Y为样本矩阵,使用KSVD动态更新字典矩阵D和稀疏矩阵X
:param n_components: 字典所含原子个数(字典的列数)
:param max_iter: 最大迭代次数
:param tol: 稀疏表示结果的容差
:param n_nonzero_coefs: 稀疏度
“““
self.dictionary = None
self.sparsecode = None
self.max_iter = max_iter
self.tol = tol
self.n_components = n_components
self.n_nonzero_coefs = n_nonzero_coefs
#def _initialize(self y):
“““
初始化字典矩阵
“““
# u s v = np.linalg.svd(y)
#self.dictionary = u[: :self.n_components]
def _update_dict(self y d x):
“““
使用KSVD更新字典的过程
“““
for i in range(self.n_components):
index = np.nonzero(x[i :])[0]
if len(index) == 0:
continue
d[: i] = 0
r = (y - np.dot(d x))[: index]
u s v = np.linalg.svd(r full_matrices=False)
d[: i] = u[: 0].T
x[i index] = s[0] * v[0 :]
print (d[3 :])
print (“_____“)
print (x[i :])
- 上一篇:笨方法学python3-习题1-45
- 下一篇:python图像预处理,均匀切割小图
相关资源
- Python-BDD100K大规模多样化驾驶视频数据
- Instant Pygame for Python Game Development How
- Biopython Tutorial
- Think Python 2nd
- 一个小小的表白程序(python)
- Python课堂笔记(高淇400集第一季)
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
评论
共有 条评论