前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。
从本期开始,我将做一个关于图像识别的系列文章,让读者慢慢理解python进行图像识别的过程、原理和方法,每一篇文章从实现功能、实现代码、实现效果三个方面进行展示。
实现功能:
基于OpenCV实现单图像超分辨重建。
实现代码:
import cv2
import numpy as np
from cv2 import dnn_superres
import time
import os, random, shutil
from PIL import Image
#=============从文件夹中按数量随机选取一定数量图片移动到另一个文件夹==================
def Superresolution(fileDir,tarDir):
pathDir = os.listdir(fileDir)
print(pathDir)
del pathDir[0:4]
print(pathDir)
for i in pathDir:
filepath=fileDir+'\\'+i
print(filepath)
filepathDir=os.listdir(filepath)
print(filepathDir)
for a in filepathDir:
print(a)
print(filepath+'\\'+a)
# 创建SR对象...
sr = dnn_superres.DnnSuperResImpl_create()
# 读图
input = cv2.imread(filepath+'\\'+a)
# 读取模型
sr.readModel("D:\DCTDV2\model\EDSR_x4.pb")
# 设定算法和放大比例
sr.setModel("edsr", 4)
# 将图片加载入模型处理,获得超清晰度图片
print("处理图片中...\n")
t0 = time.perf_counter()
upScalePic = sr.upsample(input)
print("处理图片完成\n")
print(time.perf_counter() - t0)
# 输出
tarpath = tarDir+'\\'+i
print(tarpath)
if not os.path.exists(tarpath): # 判断文件夹是否已经存在
os.makedirs(tarpath)
print(tarpath)
cv2.imwrite(tarpath+'\\'+a, upScalePic)
print("输出图片完成\n")
return
if __name__ == '__main__':
fileDir ="D:\DCTDV2\dataset\\train" #源图片文件夹路径
tarDir="D:\DCTDV2\dataset\\trainSR"
Superresolution(fileDir,tarDir)
实现效果:
由于数据为非公开数据,仅展示几个图像的效果,有问题可以后台联系我。
?
本人读研期间发表5篇SCI数据挖掘相关论文,现在在某研究院从事数据挖掘相关工作,对数据挖掘有一定的认知和理解,会不定期分享一些关于python机器学习、深度学习、数据挖掘基础知识与案例。
致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。
关注V订阅号:数据杂坛可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。 ?
|