资源简介
基于线性回归进行图像插值,恢复受损图像。语言是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
相关资源
- 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 连连看小游戏源码
- 基于PyQt5的视频播放器设计
评论
共有 条评论