图片数据增强-resize(不同插值)、各种模糊

2024-05-27 18:44

本文主要是介绍图片数据增强-resize(不同插值)、各种模糊,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

各种不同的模糊处理

import os
import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍历文件夹下的所有文件for filename in os.listdir(input_folder_path):# 检查文件类型是否为图片if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):# 构建输入图片的完整路径input_image_path = os.path.join(input_folder_path, filename)# 读取图片image = cv2.imread(input_image_path)# 根据不同的模糊方法进行处理for blur_method in ['gaussian', 'mean', 'median', 'bilateral']:# 创建对应的模糊文件夹output_blur_folder_path = os.path.join(output_folder_path, blur_method)os.makedirs(output_blur_folder_path, exist_ok=True)# 根据选择的模糊方法进行处理if blur_method == 'mean':blurred_image = cv2.blur(image, (15, 15))elif blur_method == 'median':blurred_image = cv2.medianBlur(image, 15)elif blur_method == 'bilateral':blurred_image = cv2.bilateralFilter(image, 15, 75, 75)else:blurred_image = cv2.GaussianBlur(image, (15, 15), 0)# 构建输出图片的完整路径output_image_path = os.path.join(output_blur_folder_path, filename)# 保存模糊处理后的图片cv2.imwrite(output_image_path, blurred_image)if __name__ == '__main__':# 文件夹不要有中文!!!!!!!!!# 输入文件夹路径input_folder_path = './data'# 输出文件夹路径output_folder_path = './output'# 调用函数apply_blur_to_images(input_folder_path, output_folder_path)

resize 下采样

import os
import cv2def reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation):# 遍历文件夹下的所有文件for filename in os.listdir(input_folder_path):# 检查文件类型是否为图片if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):# 构建输入图片的完整路径input_image_path = os.path.join(input_folder_path, filename)# 读取图片image = cv2.imread(input_image_path)# 计算目标宽度和高度target_width = int(image.shape[1] * scale_factor)target_height = int(image.shape[0] * scale_factor)# 调整图像尺寸resized_image = cv2.resize(image, (target_width, target_height), interpolation=interpolation)# 构建输出图片的完整路径interpolation_name = get_interpolation_name(interpolation)output_folder = os.path.join(output_folder_path, interpolation_name)os.makedirs(output_folder, exist_ok=True)  # 创建输出文件夹(如果不存在)output_image_path = os.path.join(output_folder, filename)# 保存调整尺寸后的图片cv2.imwrite(output_image_path, resized_image)def get_interpolation_name(interpolation):if interpolation == cv2.INTER_NEAREST:return 'INTER_NEAREST'elif interpolation == cv2.INTER_LINEAR:return 'INTER_LINEAR'elif interpolation == cv2.INTER_CUBIC:return 'INTER_CUBIC'elif interpolation == cv2.INTER_LANCZOS4:return 'INTER_LANCZOS4'else:return 'UNKNOWN'if __name__ == '__main__':# 文件夹不要有中文!!!!!!!!!# 输入文件夹路径input_folder_path = './data'# 输出文件夹路径output_folder_path = './output'# 比例系数scale_factor = 0.5  # 调整为原始图像的一半# 插值方法列表interpolations = [cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_LANCZOS4]# 遍历插值方法for interpolation in interpolations:# 调用函数进行图像尺寸调整reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation)

遍历文件夹,结果以名字命令,方便区分
在这里插入图片描述

这篇关于图片数据增强-resize(不同插值)、各种模糊的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008285

相关文章

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

MySQL数据脱敏的实现方法

《MySQL数据脱敏的实现方法》本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下... 目录一. 数据脱敏的方法二. 字符替换脱敏1. 创建数据脱敏工具类三. 整合到数据库操作1. 创建服务类进行数据库

MySQL中处理数据的并发一致性的实现示例

《MySQL中处理数据的并发一致性的实现示例》在MySQL中处理数据的并发一致性是确保多个用户或应用程序同时访问和修改数据库时,不会导致数据冲突、数据丢失或数据不一致,MySQL通过事务和锁机制来管理... 目录一、事务(Transactions)1. 事务控制语句二、锁(Locks)1. 锁类型2. 锁粒

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC