利用opencv对训练数据图片进行旋转、翻折、放大、模糊、平移、增加噪点操作进行数据扩充

该博客介绍了如何利用opencv库对深度学习训练数据集进行预处理,包括图像的旋转、翻转、放大、模糊、平移及添加噪声等操作,以实现数据扩充,提升模型的泛化能力。
摘要由CSDN通过智能技术生成

博客原文链接:https://blog.csdn.net/weixin_44270815/article/details/105340549


```python
# -*- coding: utf-8 -*-
"""
Created on Sun Apr  5 23:12:45 2020

@author: xbb
"""
import cv2
import numpy as np
import random
import glob

dir_path='C:/Users/hp/Desktop/1/' #读取图片路径
dir_path2='C:/Users/hp/Desktop/out/' #保存图片路径
img=cv2.imread(dir_path)

num=1
out_hight=512
out_wight=512

def salt(src,percentage):
    NoiseImg=src
    rows,cols,_=NoiseImg.shape
    NoiseNum=int(percentage*rows*cols)
    for i in range(NoiseNum):
        randX=np.random.randint(0,rows-1)
        randY=np.random.randint(0,cols-1)
        if random.randint(0,1)<=0.5:
            NoiseImg[randX,randY]=255
        else:
            NoiseImg[randX,randY]=NoiseImg[randX,randY]

    return NoiseImg

for im in glob.glo
Spyder是一个集成开发环境(IDE),主要用于科学计算和数据分析,尤其是Python语言。利用Spyder结合OpenCV进行图像处理操作非常方便。以下是基本步骤: 1. **安装OpenCV**:首先确保你已经安装了Spyder和OpenCV,如果没有,可以使用pip install opencv-python及其相关的数据包。 2. **导入所需库**:在Spyder的Python环境中,导入cv2模块,这是OpenCV在Python中的接口。 ```python import cv2 ``` 3. **读取图片**:使用`cv2.imread()`函数读取图片文件,例如,`img = cv2.imread('image.jpg')`。注意路径要替换为你实际图片的位置。 4. **图片裁剪**:通过指定矩形区域的左上角坐标和宽度高度进行裁剪。比如裁剪右下角100x100像素,可以用`cropped_img = img[0:100, img.shape[1] - 100:]`。 5. **旋转图片**:使用`cv2.getRotationMatrix2D()`创建旋转矩阵,然后应用`cv2.warpAffine()`进行旋转。例如,顺时针90度旋转,可以这样操作: ```python center = (img.shape[1] // 2, img.shape[0] // 2) angle = 90 rot_matrix = cv2.getRotationMatrix2D(center, angle, 1.0) rotated_img = cv2.warpAffine(img, rot_matrix, img.shape[::-1]) ``` 6. **平移操作**:同样地,使用`cv2.warpAffine()`函数,通过设置变换矩阵实现平移。例如,向右移动100像素: ```python translation_matrix = np.float32([[1, 0, 100], [0, 1, 0]]) translated_img = cv2.warpAffine(img, translation_matrix, img.shape) ``` 完成以上步骤后,你可以查看`rotated_img`和`translated_img`结果。记得在每次操作前检查返回值是否成功(如shape变化等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值