资源简介
基于线性回归进行图像插值,恢复受损图像。语言是python
代码片段和文件信息
import numpy as np
import cv2
import matplotlib.mlab as mlab
import math
#按行回归
def linearRegressionByRow(img):
[rows cols channels] = img.shape #获得图像的行列以及通道信息
noiseMask = ((img != 0)).astype(np.double)#01矩阵用来存储噪点坐标
#标准化
minX = np.min(np.min(np.min(img)))
maxX = np.max(np.max(np.max(img)))
img_copy = (img - minX) / (maxX - minX)
basisNum=100#basis function 个数
sigma=0.01#高斯函数的方差
# 初始化basis function
Phi_mu=np.linspace(1colsbasisNum)/cols
Phi_sigma=sigma*np.array([1 for _ in range(basisNum)])
x=np.array([i+1 for i in range(cols)])
x=(x-np.min(x))/(np.max(x)-np.min(x))#得到(01)之间均匀分布的数组
resImg=img_copy.copy()
for k in range(channels):
for i in range(rows): # 遍历每一行
# 获取好点与坏点的index
msk=noiseMask[i:k]
msk=msk[:]
misIdx=np.where(msk<1)
misNum=len(misIdx[0])
ddIdx=np.where(msk>=1)
ddNum=len(ddIdx[0])
Phi=np.column_stack((np.ones([ddNum1])np.zeros([ddNumbasisNum-1])))
# 训练得到w
for j in range(1basisNum):
Phi[:j]=mlab.normpdf(np.transpose(x[ddIdx])Phi_mu[j-1]Phi_sigma[j-1])*math.sqrt(2*math.pi)*Phi_sigma[j-1]
w=np.dot(np.dot(np.linalg.pinv(np.dot(np.transpose(Phi)Phi))np.transpose(Phi))np.transpose(img_copy[iddIdxk]))
Phi1=np.column_stack(((np.ones([misNum1]))np.zeros([misNumbasisNum-1])))
# 预测
for j in range(1basisNum):
Phi1[:j]=mlab.normpdf(np.transpose(x[misIdx])Phi_mu[j-1]Phi_sigma[j-1])*math.sqrt(2*math.pi)*Phi_sigma[j-1]
resImg[imisIdxk]=np.dot(np.transpose(w)np.transpose(Phi1))
# 得到结果并重新投影到(0,255)
resImg=np.minimum(resImg1)
resImg=np.maximum(resImg0)
resImg*=255
# cv2.imwrite(“./result_row.png“ resImg)
return resImg
#按列回归,思路与按行回归一样
def linearRegressionByCol(img):
[rows cols channels] = img.shape
noiseMask = ((img != 0)).astype(np.double)
minX = np.min(np.min(np.min(img)))
maxX = np.max(np.max(np.max(img)))
img_copy = (img - minX) / (maxX - minX)
basisNum=100
sigma=0.01
Phi_mu=np.linspace(1rowsbasisNum)/rows
Phi_sigma=sigma*np.array([1 for _ in range(basisNum)])
x=np.array([i+1 for i in range(rows)])
x=(x-np.min(x))/(np.max(x)-np.min(x))
resImg=img_copy.copy()
for k in range(channels):
for i in range(cols):
msk=noiseMask[:ik]
msk=msk[:]
misIdx=np.where(msk<1)
misNum=len(misIdx[0])
ddIdx=np.where(msk>=1)
ddNum=len(ddIdx[0])
Phi=np.column_stack((np.ones([ddNum1])np.zeros([ddNumbasisNum-1])))
for j in range(1basisNum):
Phi[:j]=mlab.normpdf(np.transpose(x[ddIdx])Phi_mu[j-1]Phi_sigma[j-1])*math.sqrt(2*math.pi)*Phi_sigma[j-1]
w=np.dot(np.dot(np.linalg.pinv(np.dot(np.transpose(Phi)Phi))np.transpose(Phi))np.transpose(img_copy[ddId
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2018-05-25 20:03 鍙楁崯鍥?
文件 287928 2017-05-03 09:20 鍙楁崯鍥?B.png
目录 0 2018-06-18 19:10 __MACOSX\
文件 0 2018-06-18 19:10 __MACOSX\鍙楁崯鍥?
文件 274 2017-05-03 09:20 __MACOSX\鍙楁崯鍥?._B.png
文件 177886 2017-05-03 09:20 鍙楁崯鍥?C.png
文件 218 2017-05-03 09:20 __MACOSX\鍙楁崯鍥?._C.png
文件 39962 2017-05-03 09:20 鍙楁崯鍥?A.png
文件 274 2017-05-03 09:20 __MACOSX\鍙楁崯鍥?._A.png
目录 0 2018-05-25 20:11 code\
文件 6148 2018-05-25 20:11 code\.DS_Store
目录 0 2018-06-18 19:10 __MACOSX\code\
文件 120 2018-05-25 20:11 __MACOSX\code\._.DS_Store
文件 18441 2018-05-25 20:10 code\hw2.py
文件 176 2018-05-25 20:10 __MACOSX\code\._hw2.py
目录 0 2018-05-25 20:35 缁撴灉\
文件 6148 2018-05-25 20:39 缁撴灉\.DS_Store
目录 0 2018-06-18 19:10 __MACOSX\缁撴灉\
文件 120 2018-05-25 20:39 __MACOSX\缁撴灉\._.DS_Store
文件 240123 2018-05-25 19:02 缁撴灉\3150103695_B.png
文件 260177 2018-05-25 14:31 缁撴灉\3150103695_C.png
文件 233 2018-05-25 14:31 __MACOSX\缁撴灉\._3150103695_C.png
文件 300689 2018-05-25 14:29 缁撴灉\3150103695_A.png
文件 233 2018-05-25 14:29 __MACOSX\缁撴灉\._3150103695_A.png
文件 207 2018-05-25 20:35 readme.txt
文件 317 2018-05-25 20:35 __MACOSX\._readme.txt
相关资源
- pythonBCRMDSJ.mobi
- 人脸识别-python-特征脸-PCA
- 机器学习红楼梦Python代码
- python pyqt5 计时器源代码
- Python基础教程-第3版(文字版)电子书
- 基于物品的协同过滤算法itemCF原理及
- python cookbook 3th 英文版
- problem-solving-with-algorithms-and-data-struc
- PythonCard
- 《Python爬虫-开发与项目实战》源码
- bayes分类python
- python满分大作业 打地鼠
- Python物理建模初学者指南
- pyltp wheel python3.5 3.6
- Python自然语言处理(PDF高清书籍分享
- 基于Python自相关法时间序列的时间延
- 利用 Python 进行数据分析 中文第二版
- Problem Solving with Algorithms and DataStruct
- python计算机二级教程1-11章
- python自然语言处理中文版.pdf223593
- python的pywt库
- PTVS 2.2 VS 2013 补充工具 自动提示功能
- data-science-using-python-r
- Python for VS2012官方版
- A Byte of Python(简明Python教程)(第
- wxPython 2.8 Application Development Cookbook
- 终极自动化测试环境搭建:Selenium+E
- 基于django搭建的博客
- SHA-3 哈希摘要算法 python 源代码及官方
- sha3 python 史上最全最详细的正确实现
评论
共有 条评论