图片数据增强-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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则