超分辨率重建数据集制作:裁剪过滤

本文介绍了如何处理高分辨率图像尺寸不一致的问题,通过Python代码实现裁剪过滤,确保生成的图像符合标准要求,并探讨了超分辨率重建数据集的制作过程,包括从PDF获取高分辨率图像和生成低分辨率数据集的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

背景

代码

其他


背景

由于获取到的高分辨率图像尺寸不一,不符合公认的要求,需要有一边长为2040,另一边长不做要求,这里我将其设置为大于648.因此我对图像进行了裁剪过滤,代码如下(请修改输入输出路径,尽量英文路径)

代码

#coding=utf-8
from PIL import Image
import random
import os
dirs = r'C:\Users\Administrator\Desktop\input'
result_dir = r'C:\Users\Administrator\Desktop\result'
name= []
num = 1
list = os.listdir(dirs)
random.shuffle(list)
for i in list:
    fp = open(os.path.join(dirs,i), 'rb')
    image = Image.open(fp)
    x,y = image.size
    flag = 0
    if (x >= 2040):
        if (y >= 648) and (y < 2040):
            flag = 1
    if (y >= 2040):
        if (x >= 648) and (x < 2040):
            flag = 1
    if (x == y == 2040):
        flag = 1
    if flag == 1:


        if (x-2040) >(y-2040) :
            if (y-2040)<0:
                result_x = 2040
                while (y%2!=0 or y%3!=0 or y%4!=0):
                    y = y - 1
                result_y = y
            if (y-2040) >= 0:
                result_y = 2040
                while (x % 2 != 0 or x % 3 != 0 or x % 4 != 0):
                    x = x - 1
                result_x = x
        elif (x - 2040) <(y - 2040) :
            if (x - 2040)<0:
                result_y = 2040
                while (x%2!=0 or x%3!=0 or x%4!=0):
                    x = x - 1
                result_x =x
            if (x - 2040) >= 0:
                result_x = 2040
                while (y % 2 != 0 or y % 3 != 0 or y % 4 != 0):
                    y = y - 1
                result_y = y
        if (result_x >= 2040) or (result_y>= 2040):
            box = (0, 0, result_x, result_y)
            region = image.crop(box)
            s = '%04d' % num
            num = 1 + num
            region.save(os.path.join(result_dir,str(s)+".png"))


其他

 超分辨率重建数据集制作:生成低分辨率数据集:

超分辨率重建数据集制作:生成低分辨率数据集_Alocus的博客-优快云博客

超分辨率重建数据集制作:高分辨率图像采集(从pdf中获取图像)

超分辨率重建数据集制作:高分辨率图像采集(从pdf中获取图像)_Alocus的博客-优快云博客

<think>首先,用户的问题是关于如何获取512x512分辨率的图片数据集。用户没有指定具体的应用场景,所以我需要基于一般知识来回答。 用户提供了几个引用,但这些引用是关于无人机视觉定位数据集超分辨率重建数据集的。用户说“上述引用仅供参考”,所以我不能直接依赖它们,但可以从中提取一些相关信息。 引用[1]:描述了一个无人机视觉定位数据集,包含高分辨率的无人机图像(0.1-0.2米)和卫星影像(0.3米)。数据集大小16.4GB,图像尺寸未指定为512x512。 引用[2]:关于超分辨率重建数据集制作,涉及从PDF获取图像并进行裁剪过滤。 引用[3]:关于生成低分辨率数据集用于超分辨率重建。 用户的核心需求是“获取512x512分辨率的图片数据集”。我需要提供一个结构清晰、逐步的指南。 ### 回答结构 1. **理解需求**:确认用户需要512x512分辨率的图片数据集,可能用于机器学习、计算机视觉等。 2. **来源建议**: - 公开数据集:列出一些常见的公开数据集,其中包含或可以调整到512x512的图像。 - 自定义制作:如果用户需要特定内容,指导如何创建自己的数据集。 3. **步骤指南**:如何获取或创建这样的数据集。 4. **注意事项**:如版权、分辨率调整方法等。 5. **生成相关问题**:基于系统指令,在回答末尾添加相关问题。 ### 关键点 - **分辨率调整**:许多数据集不是固定512x512,但可以通过裁剪或缩放调整。 - **数据集推荐**:基于常见知识: - ImageNet:可以下载子集并调整大小。 - CelebA:人脸数据集,图像可以调整。 - COCO:用于物体检测,图像尺寸多样。 - FFHQ:高分辨率人脸数据集,可以下采样。 - 用户提到的引用中,引用[2]和[3]涉及裁剪超分辨率,可以借鉴。 - **工具**:使用Python库如PIL或OpenCV进行图像处理。 ### 生成相关问题 基于系统指令,我需要生成相关问题。例如: 1. 如何调整图像分辨率到512x512? 2. 哪些公开数据集支持512x512尺寸? 3. 如何确保数据集的多样性和质量? ### 引用处理 用户提供了引用,但说“仅供参考”。在回答中,如果引用相关内容,自然地添加引用标识。例如: - 如果提到裁剪方法,参考引用[2]。 - 如果提到超分辨率,参考引用[3]。 但用户需求是获取数据集,不是制作。所以,可能不需要直接引用,除非相关。 ### 回答框架 1. **介绍**:解释512x512分辨率的重要性(如用于深度学习模型输入)。 2. **方法一:使用现有公开数据集**: - 列出数据集,并说明如何获取或调整。 3. **方法二:创建自定义数据集**: - 从网络收集图像。 - 使用工具裁剪或缩放。 - 参考引用[2]中的裁剪方法。 4. **工具和代码**:提供简单代码示例(如Python)。 5. **注意事项**:版权、数据质量。 6. **相关问题**:在末尾添加。 ### 代码示例 基于引用[2],用户分享了裁剪代码。我可以提供一个简化版用于调整大小。 ```python from PIL import Image import os def resize_images(input_dir, output_dir, size=(512, 512)): if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): if filename.endswith(('.jpg', '.png', '.jpeg')): img_path = os.path.join(input_dir, filename) img = Image.open(img_path) img_resized = img.resize(size, Image.ANTIALIAS) # or Image.LANCZOS output_path = os.path.join(output_dir, filename) img_resized.save(output_path) # 使用示例 input_dir = 'path/to/your/images' output_dir = 'path/to/resized_images' resize_images(input_dir, output_dir) ``` ### 相关问题 - 1. 如何确保512x512数据集的质量? - 2. 有哪些工具可以批量处理图像分辨率? - 3. 512x512数据集在哪些AI应用中常见?</think>### 获取512×512分辨率的图片数据集指南 要获取512×512分辨率的图片数据集,您可以通过以下两种主要方式实现:使用现有公开数据集或自定义创建数据集。以下是结构化的步骤指南,确保方法可靠且易于操作。 #### 一、使用现有公开数据集(推荐) 许多公开数据集提供高分辨率原始图像,可通过简单处理调整为512×512尺寸。以下是推荐数据集及处理方法: 1. **FFHQ (Flickr-Faces-HQ)** - **特点**:包含70,000张高质量人脸图像,原始分辨率为1024×1024。 - **获取方式**: - 访问 [GitHub仓库](https://github.com/NVlabs/ffhq-dataset) 下载。 - 使用Python调整尺寸: ```python from PIL import Image import os input_dir = "ffhq_images" # 原始图像目录 output_dir = "ffhq_512" # 输出目录 target_size = (512, 512) for filename in os.listdir(input_dir): img = Image.open(os.path.join(input_dir, filename)) img_resized = img.resize(target_size, Image.LANCZOS) # 高质量缩放 img_resized.save(os.path.join(output_dir, filename)) ``` - **优势**:图像多样性高,可直接用于训练GAN或分类模型[^1]。 2. **COCO (Common Objects in Context)** - **特点**:包含33万张日常场景图像,尺寸多样(多数≥512×512)。 - **获取方式**: - 官网下载:https://cocodataset.org - 使用OpenCV批量调整: ```python import cv2 import os input_dir = "coco_images" output_dir = "coco_512" for img_name in os.listdir(input_dir): img = cv2.imread(os.path.join(input_dir, img_name)) img_resized = cv2.resize(img, (512, 512), interpolation=cv2.INTER_AREA) cv2.imwrite(os.path.join(output_dir, img_name), img_resized) ``` 3. **卫星与无人机数据集(如引用[1])** - 引用[1]中的无人机图像(分辨率0.1-0.2米)可通过裁剪生成512×512子图: ```python # 基于引用[2]的裁剪逻辑优化 from PIL import Image import os def crop_center(image_path, output_dir, crop_size=512): img = Image.open(image_path) width, height = img.size left = (width - crop_size) // 2 top = (height - crop_size) // 2 img_cropped = img.crop((left, top, left + crop_size, top + crop_size)) img_cropped.save(os.path.join(output_dir, os.path.basename(image_path))) ``` #### 二、自定义创建数据集 如果现有数据集不满足需求,可自主构建: 1. **图像采集** - 来源建议: - 免费图库:如Unsplash、Pexels(注意版权许可)。 - PDF提取:使用PyMuPDF从PDF提取图像(参考引用[2])。 - 工具代码: ```python import fitz # PyMuPDF pdf_path = "document.pdf" output_dir = "extracted_images" doc = fitz.open(pdf_path) for page_num in range(len(doc)): page = doc.load_page(page_num) pix = page.get_pixmap() pix.save(os.path.join(output_dir, f"page_{page_num}.png")) ``` 2. **分辨率统一处理** - **步骤**: 1. 过滤非图像文件(如文本)。 2. 批量调整为512×512(避免拉伸失真): ```python from PIL import Image import os def resize_and_pad(image_path, output_path, target_size=(512, 512)): img = Image.open(image_path) ratio = min(target_size[0]/img.width, target_size[1]/img.height) new_size = (int(img.width * ratio), int(img.height * ratio)) img_resized = img.resize(new_size, Image.LANCZOS) # 填充至目标尺寸 new_img = Image.new("RGB", target_size, (0, 0, 0)) new_img.paste(img_resized, ((target_size[0]-new_size[0])//2, (target_size[1]-new_size[1])//2)) new_img.save(output_path) ``` - **关键点**:优先使用裁剪(保留核心内容)或填充(保持比例),避免扭曲图像[^3]。 #### 三、注意事项 1. **版权合规**:确保数据集用于研究或遵守源平台许可(如CC-BY)。 2. **质量把控**: - 移除模糊/低对比度图像(可用OpenCV计算清晰度得分)。 - 确保多样性:覆盖不同场景、光照条件。 3. **存储优化**:512×512 RGB图像约占用0.75MB/张,1万张约需7.5GB空间。 #### 四、工具与资源推荐 - **处理工具**:Python(PIL/OpenCV)、FastStone Photo Resizer(图形界面)。 - **数据集平台**: - Kaggle:搜索 "512x512 dataset"(如"512x512 Chest X-rays")。 - Hugging Face Datasets:https://huggingface.co/datasets
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值