import cv2
import os.path
def countFile(dir):
tmp = 0
for item in os.listdir(dir):
if os.path.isfile(os.path.join(dir, item)):
tmp += 1
else:
tmp += countFile(os.path.join(dir, item))
return tmp
filenum = countFile("D:\\model\\super-resolution\\.div2k\images\\DIV2K_train_LR_bicubic\\X4")
print(filenum)
n = 4
index = 1
num = 0
for i in range(1,filenum+1):
if index < 10:
filename = "D:\\model\\super-resolution\\.div2k\images\\DIV2K_train_LR_bicubic\\X4\\000"+str(i)+".png"
elif index < 100:
filename = "D:\\model\\super-resolution\\.div2k\images\\DIV2K_train_LR_bicubic\\X4\\00"+str(i)+".png"
else:
filename = "D:\\model\\super-resolution\\.div2k\images\\DIV2K_train_LR_bicubic\\X4\\0"+str(i)+".png"
print(filename)
original_image = cv2.imread(filename)
if n == 2:
img_1 = cv2.pyrDown(original_image)
if n == 4:
img_1 = cv2.pyrDown(original_image)
img_1 = cv2.pyrDown(img_1)
if index < 10:
cv2.imwrite("D:\\model\\super-resolution\\.div2k\\1\\000" + str(index) + ".png", img_1)
elif index < 100:
cv2.imwrite("D:\\model\\super-resolution\\.div2k\\1\\00" + str(index) + ".png", img_1)
else:
cv2.imwrite("D:\\model\\super-resolution\\.div2k\\1\\0" + str(index) + ".png", img_1)
num = num + 1
print("正在为第"+ str(num) + "图片采样......")
index = index + 1
x1 = np.linspace(1, 4096, 1024)
x_new = np.linspace(1, 4096, 4096)
from scipy import interpolate
tck = interpolate.splrep(x1, data)
y_bspline = interpolate.splev(x_new, tck)
其中y_bspline就是从1024插值得到的4096的数据
但是,scipy中好像并没有进行下采样的函数,嗯..难道是因为太过
file_root = './'#当前文件夹下的所有图片
file_list = os.listdir(file_root)
save_out = "../****/"#保存图片的文件夹名称
for img_name in file_list:
if img_name.endswith('.tif'):
img_path = file_root + img_name
I = cv2.imread(img_path...
基于Python+OpenCV对多张图片进行全景图像拼接源码+项目使用说明(课程设计大作业).zip
【图片全景拼接】消除鬼影,消除裂缝
对多张图片进行基于SIFT的特征检测算法,如果符合最小拼接要求大的关键点matchKeypoints数量,使用OpenCV-Python自带的stitching方法进行全景拼接
【使用方法】
python image_stitching.py --images images/scottsdale --output output.png --crop 1
其中images/scottsdale为待拼接图像所在文件夹,output.png为处理拼接保存后的图像;这里使用了相对路径,因为在工程根目录下运行了终端。不确定在根目录最好使用完整的绝对路径。 --crop 1为是否裁剪黑色边框,缺省则不裁剪。
for info in os.listdir(path):
domain = os.path.abspath(path)
info1 = os.path.join(domain,info)
img = cv2.imread(info1)
cv2.imshow('original',img)
b=i+1
img_name = str(a)
img = cv2.imread("C:/Users/10230/Desktop/resource_photo/"+img_name+".p
文章目录导读环境文件目录结构详细步骤
深度学习作为机器视觉研究的热点,每训练一个模型都要经过数据采集与处理、设计网络模型、训练模型、验证模型、测试模型等阶段。俗话说“万事开头难”,由于深度学习需要大量数据,而且构造不同的数据集相对复杂,这就需要有一定批量处理数据的能力。在这里以批量处理图片数据为例,用矩形框标出文件夹下所有图片中的缺陷。本文章记录批量处理数据的方法,以备后续学习。
python3.7.7+opencv3.4.11+pycharm社区版+windows10 环境很好搭建 到官网下
图像金字塔是指由一组图像且不同分别率的子图集合,它是图像多尺度表达的一种,以多分辨率来解释图像的结构,主要用于图像的分割或压缩。它将图像在每个方向上扩大为原图像的2倍,新增的行和列均用0来填充,并使用与“向下取样”相同的卷积核乘以4,再与放大后的图像进行卷积运算,以获得“新增像素”的新值。显而易见,原始图像Gi具有M×N个像素,进行向下取样之后,所得到的图像Gi+1具有M/2×N/2个像素,只有原图的四分之一。输出结果如图6-17所示,每次向上取样均为上次图像的四倍,但图像的清晰度会降低。
本篇文章主要总结了图像的采样以及量化的原理以及操作,在此基础上添加了图像的马赛克处理以及图像金子塔,其中参考的一些文章的链接也添加了进去,如果需要更深入的了解和学习可以点进去学习