-
大小: 3KB文件类型: .py金币: 2下载: 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实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论