数据集预处理

1.目标

将数据集图像通过预处理方法调整为统一大小尺寸,以便于后续模型提取特征。

2.常见的图像数据预处理方法

2.1图像尺度变换

1.图像缩放(使用OpenCV库):

import cv2def resize_image(image, width, height):resized_image = cv2.resize(image, (width, height))return resized_image# 调整图像大小为300x300
resized_image = resize_image(image, 300, 300)

2.图像裁剪:

随机裁剪(使用PIL库):

from PIL import Image
import numpy as npdef random_crop(image, crop_size):image = np.array(image)height, width = image.shape[:2]x = np.random.randint(0, width - crop_size[0] + 1)y = np.random.randint(0, height - crop_size[1] + 1)cropped_image = image[y:y + crop_size[1], x:x + crop_size[0]]return Image.fromarray(cropped_image)# 随机裁剪图像为200x200
cropped_image = random_crop(image, (200, 200))

中心裁剪(使用PIL库):

from PIL import Imagedef center_crop(image, crop_size):width, height = image.sizeleft = (width - crop_size[0]) // 2top = (height - crop_size[1]) // 2right = left + crop_size[0]bottom = top + crop_size[1]cropped_image = image.crop((left, top, right, bottom))return cropped_image# 中心裁剪图像为200x200
cropped_image = center_crop(image, (200, 200))

3.图像翻转(使用OpenCV库):

水平翻转:

import cv2def horizontal_flip(image):flipped_image = cv2.flip(image, 1)return flipped_image# 水平翻转图像
flipped_image = horizontal_flip(image)

垂直翻转:

import cv2def vertical_flip(image):flipped_image = cv2.flip(image, 0)return flipped_image# 垂直翻转图像
flipped_image = vertical_flip(image)

4.图像旋转(使用PIL库,最近邻插值):

from PIL import Imagedef rotate_image(image, angle):rotated_image = image.rotate(angle, resample=Image.NEAREST)return rotated_image# 将图像逆时针旋转90度
rotated_image = rotate_image(image, -90)

5.图像平移(使用OpenCV库):

import cv2
import numpy as npdef translate_image(image, shift_x, shift_y):rows, cols = image.shape[:2]M = np.float32([[1, 0, shift_x], [0, 1, shift_y]])translated_image = cv2.warpAffine(image, M, (cols, rows))return translated_image# 将图像水平平移10个像素,垂直平移20个像素
translated_image = translate_image(image, 10, 20)

灰度化(使用OpenCV库):

import cv2def convert_to_grayscale(image):gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)return gray_image# 将彩色图像转换为灰度图像
gray_image = convert_to_grayscale(image)

图像增强(使用PIL库):

from PIL import ImageEnhancedef enhance_image(image, factor):enhancer = ImageEnhance.Contrast(image)enhanced_image = enhancer.enhance(factor)return enhanced_image# 增强图像对比度为1.5倍
enhanced_image = enhance_image(image, 1.5)
  • 数据增强(使用Keras库的ImageDataGenerator):
    from keras.preprocessing.image import ImageDataGenerator# 创建一个ImageDataGenerator对象来进行数据增强
    datagen = ImageDataGenerator(rotation_range=20,  # 随机旋转图像的角度范围width_shift_range=0.1,  # 随机水平平移图像的比例height_shift_range=0.1,  # 随机垂直平移图像的比例shear_range=0.2,  # 随机剪切变换的强度zoom_range=0.2,  # 随机缩放图像的范围horizontal_flip=True,  # 随机水平翻转图像fill_mode='nearest'  # 填充图像的方法
    )# 使用数据增强生成批量的图像数据
    augmented_data = datagen.flow(x_train, y_train, batch_size=32)
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg-- mp4文件合成1:aac和h264封装(c++实现)

文章目录 流程api核心代码muxer.hmuxer.cppaac 和 h264 封装为视频流,封装为c++的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流,赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int SendHeader(); 写视频流的…

数字乡村引领新风尚:科技赋能农村实现全面进步

随着信息技术的迅猛发展,数字乡村正成为引领农村全面进步的新风尚。科技作为推动农村发展的强大引擎,正在深刻改变着传统农业的生产方式、农村的社会结构以及农民的生活方式,为农村经济社会的全面进步注入了新的活力和动力。本文将从数字乡村…

JVM—内存可见性

什么是可见性 可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 Java内存模型(JMM) Java内存模型(Java Memory Model)描述了Java程序中各种…

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第4节(Self 标识符)

7.4 Self 标识符 ​ 我们已经看到类的方法非常类似于过程和函数。真正的区别在于,方法有一个额外的隐式参数。这是对当前对象的引用,即应用方法的对象。在方法中,您可以使用Self标识符引用这个参数,即当前对象,如前面…

【Java前端技术栈】Vue2、Vue Cli、Axio入门

一、基本介绍 1.Vue 是什么? Vue (读音 /vjuː/,类似于 view) 是一个前端框架, 易于构建用户界面 2. Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或项目整合 3. 支持和其它类库结合使用 4. 开发复杂的单页应用非常方便 5.…

动态规划——数字三角形模型

母题:数字三角形 集合:f[i][j]表示所有从起点走到 ( i , j ) (i,j) (i,j)的路径 属性:f[i][j]存的数是集合中所有路径和的最大值 状态计算:对于每一条从起点到 ( i , j ) (i,j) (i,j) 的路径,其要么是从左上方来的…

如何了解AI基础概念

1. **在线课程和教程:** - 寻找在线AI课程或教程,例如Coursera、edX、Udemy等平台上的课程。这些课程通常会从基础概念开始介绍,逐步深入。 2. **书籍阅读:** - 阅读与AI相关的书籍,如《Python深度学习》、《机…

[Rust] 使用vscode实现HelloWorld程序并进行debug

一、简介 本文介绍了如何使用vscode编写rust,实现打印"Hello, world!"的程序。 二、工具安装 0. 环境介绍: Linux (或者windowswsl) 1. 安装rust编译器rustc和包管理器cargo。 请参考连接:Rust 程序设…

vue集成百度地图,实现关键字搜索并自定义覆盖物,保存成静态图片

vue集成百度地图&#xff0c;实现关键字搜索并自定义覆盖物 index.html引入百度地图js <script type"text/javascript" src"https://api.map.baidu.com/api?v2.0&typewebgl&akxxxxxxwMprS7jIfPt354VdgP"></script>vue页面代码 <…

Android iOS客户端自动化UI自动化airtest从0到1搭建macos

一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 &#xff5c; macOS &#xff5c; jdk1.8 &#xff5c; 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads | Oracle jdk环境变量配置 找到java home qamac ~ % cd /Library/J…

K8s+Nacos实现应用的优雅上下线【生产实践】

文章目录 前言一、环境描述二、模拟请求报错三、配置优雅上下线1.修改nacos配置2.修改depolyment配置3.重新apply deployment后测试4.整体(下单)测试流程验证是否生效 四、期间遇到的问题 前言 我们在使用k8s部署应用的时候&#xff0c;虽然k8s是使用滚动升级的&#xff0c;先…

【AI生成文章】flutter ChangeNotifierProvider 实用场景举例

内容由Ai 大模型生成&#xff0c;不能完全保障真实 ChangeNotifierProvider 是 Flutter 中一个非常实用的工具&#xff0c;用于在应用程序中管理和传递状态。以下是一些实用的场景举例&#xff1a; 1. 用户信息管理 在应用程序中&#xff0c;用户信息&#xff08;如用户名、…

【Android】【Bluetooth Stack】蓝牙音乐协议分析之音频控制与信息加载(超详细)

1. 精讲蓝牙协议栈(Bluetooth Stack):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅,【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待! 目录 1. 音乐信息加载 1.1 歌曲信息 1.1.1 key_c…

selenium自动化登录模块HTMLTestRunner测试报告

1.下载HTMLTestRunner.py放到python的Lib目录下&#xff0c;python3之后的&#xff0c;文件要修改以下内容&#xff1a; 第94行&#xff0c;将import StringIO修改成import io 第539行&#xff0c;将self.outputBuffer StringIO.StringIO()修改成self.outputBuffer io.Strin…

【微服务】微服务架构的最佳实践总结!

目录 推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战构建和管理微服务是一项艰巨的任务。这是因为微服务就像多个并行的整体应用程序,它们都必须处于同步通信和并发运行时间。因此,在设计和构建它们时考虑并应用最佳实践非常重要。以下…

C++ —— 日期计算器

1. 头文件 #pragma once #include <iostream> using namespace std;class Date { public:Date(int year 1, int month 1, int day 1);int GetMonthDay();bool operator>(const Date& d) const;bool operator>(const Date& d)const;bool operator<(c…

单例模式:双重效验锁的懒汉实现方式

单例模式&#xff1a;双重效验锁的懒汉实现方式 单例模式饿汉模式实现懒汉模式实现改进1 (创建多个实例)改进2 (性能比较低)改进3 (volatile禁止指令重排序) 单例模式 单例模式顾名思义就是指实例化一个对象&#xff0c;通过把构造方法私有化来禁止创建实例。 饿汉模式实现 饿汉…

GPU算力池管理工具Determined AI部署与使用教程(2024.03)

1. 概念 1.1 什么是Determined&#xff1f; Determined AI 是一个全功能的深度学习平台&#xff0c;兼容 PyTorch 和 TensorFlow。它主要负责以下几个方面&#xff1a; 分布式训练&#xff1a;Determined AI 可以将训练工作负载分布在多个 GPU&#xff08;可能在多台计算机上…

大模型开发中使用prompt提示最佳实践

在大型模型开发中&#xff0c;使用prompt&#xff08;提示&#xff09;是一种指导模型生成所需输出的方法。以下是在使用prompt时的一些最佳实践&#xff1a; 1、明确的提示&#xff1a;确保prompt提供了明确、清晰的指导&#xff0c;以便模型理解所需生成的内容。避免模棱两可…

IPP-7010 表面贴装 90 度混合耦合器

IPP-7010 表面贴装 90 度混合耦合器 IPP-7010 是一款表面贴装 90 度混合耦合器&#xff0c;工作频率为 800 至 2500 MHz&#xff08;0.8 至 2.5 GHz&#xff09;&#xff0c;平均额定功率为 200 瓦。IPP-7010 采用 0.40 x 1.80 英寸表面贴装封装。IPP-7010的幅度平衡小于0.6dB&…