1.平移:

import cv2
import tensorflow as tf
import numpy as np
from PIL import Image
from skimage import transform,data
import matplotlib.pyplot as plt
def Move(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)width,height=image.shape[0],image.shape[1]M=np.float32([[1,0,100],[0,1,50]])image1=cv2.warpAffine(image,M,(height,width))ax[1].imshow(image1)ax[1].set_title('Move Image',fontsize=14)M=np.float32([[1,0,50],[0,1,100]])image2=cv2.warpAffine(image,M,(height,width))ax[2].imshow(image2)ax[2].set_title('Move Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Move(img)

实验效果:

参考链接:https://blog.csdn.net/imxlw00/article/details/112767623
2.旋转:

import cv2
import matplotlib.pyplot as plt

方式一:

def Rotate(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)#     width,height=image.shape[0],image.shape[1]image=cv2.rotate(image,cv2.cv2.ROTATE_90_CLOCKWISE)ax[1].imshow(image)ax[1].set_title('Rotate 90 Image',fontsize=14)image=cv2.rotate(image,cv2.ROTATE_180)ax[2].imshow(image)ax[2].set_title('Rotate 180 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rotate(img)

实验效果:

方式二:

def Rotate(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)width,height=image.shape[0],image.shape[1]
#第一个参数旋转中心,第二个参数旋转角度,第三个参数:缩放比例 M=cv2.getRotationMatrix2D((width/2,height/2),45,1)image=cv2.warpAffine(image,M,(width,height))ax[1].imshow(image)ax[1].set_title('Rotate 45 Image',fontsize=14)M=cv2.getRotationMatrix2D((width/2,height/2),90,1)image=cv2.warpAffine(image,M,(width,height))ax[2].imshow(image)ax[2].set_title('Rotate 180 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rotate(img)

实验效果:

方式三:

import imutils
def Rotate(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)#第一个参数为image,第二个参数为旋转度数image=imutils.rotate(image,90)ax[1].imshow(image)ax[1].set_title('Rotate 90 Image',fontsize=14)image=imutils.rotate(image,180)ax[2].imshow(image)ax[2].set_title('Rotate 180 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rotate(img)

实验效果:

方式四:

from skimage import transform,data
def Rotate(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)#第一个参数为image,第二个参数为旋转度数,第三个参数为是否改变大小image=transform.rotate(image,90,resize=False)ax[1].imshow(image)ax[1].set_title('Rotate 90 Image',fontsize=14)image=transform.rotate(image,180,resize=True)ax[2].imshow(image)ax[2].set_title('Rotate 180 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rotate(img)

实验效果:

参考和引用:
https://blog.csdn.net/weixin_39862871/article/details/116164648
https://blog.csdn.net/qq_37674858/article/details/80708393
https://blog.csdn.net/denny2015/article/details/50532971
3.亮度变换:

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import cv2
from skimage import transform,data,exposure
from PIL import Image
def Chnage_Light(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image1=exposure.adjust_gamma(image,1.5)ax[1].imshow(image1)ax[1].set_title('Change light Image',fontsize=14)image2=exposure.adjust_gamma(image,0.8)ax[2].imshow(image2)ax[2].set_title('Change light Image',fontsize=14)plt.show()
image='D:\\3.jpg'
img=cv2.imread(image)
Chnage_Light(img)

实验效果:

参考和引用:
https://blog.csdn.net/qq_28891989/article/details/95592462
4.翻转:

import cv2
import matplotlib.pyplot as plt
def invert(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image=cv2.flip(image,0)ax[1].imshow(image)ax[1].set_title('Vertical Image',fontsize=14)image=cv2.flip(image,1)ax[2].imshow(image)ax[2].set_title('Horizontal Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
invert(img)

实验效果:

5.添加高斯噪声:

import numpy as np
import cv2
import tensorflow as tf
import matplotlib.pyplot as plt
from PIL import Image
from skimage import transform,data
def AddNoise(image,prob):output = np.zeros(image.shape,np.uint8)thres = 1 - probfor i in range(image.shape[0]):for j in range(image.shape[1]):rdn = random.random()if rdn < prob:output[i][j] = 0elif rdn > thres:output[i][j] = 255else:output[i][j] = image[i][j]return output

方式一:

def Add_Noise(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image1=AddNoise(image,0.1)ax[1].imshow(image1)ax[1].set_title('AddNoise Image',fontsize=14)image2=AddNoise(image,0.3)ax[2].imshow(image2)ax[2].set_title('AddNoise light Image',fontsize=14)plt.show()
image='D:\\3.jpg'
img=cv2.imread(image)
Add_Noise(img)

实验效果:

方式二:

def Gasuss_Noise(image, mean=0, var=0.001):'''添加高斯噪声mean : 均值var : 方差'''image = np.array(image/255, dtype=float)noise = np.random.normal(mean, var ** 0.5, image.shape)out = image + noiseif out.min() < 0:low_clip = -1.else:low_clip = 0.out = np.clip(out, low_clip, 1.0)out = np.uint8(out*255)return out
def Add_GasussNoise(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image1=Gasuss_Noise(image)ax[1].imshow(image1)ax[1].set_title('Add GasussNoise Image',fontsize=14)image2=Gasuss_Noise(image,1,2)ax[2].imshow(image2)ax[2].set_title('Add GasussNoise Image',fontsize=14)plt.show()
image='D:\\3.jpg'
img=cv2.imread(image)
Add_GasussNoise(img)

实验效果:

6.缩放:

import cv2
import imutils
from PIL import Image
import matplotlib.pyplot as plt

方式一:

def Rescale(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image=cv2.resize(image,(64,64))ax[1].imshow(image)ax[1].set_title('Resize 64 Image',fontsize=14)image=cv2.resize(image,(224,224))ax[2].imshow(image)ax[2].set_title('Resize 224 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rescale(img)

实验效果:

方式二:

from skimage import transform,data
def Rescale(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image=transform.resize(image,(64,64))ax[1].imshow(image)ax[1].set_title('Resize 64 Image',fontsize=14)image=transform.resize(image,(224,224))ax[2].imshow(image)ax[2].set_title('Resize 224 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=cv2.imread(image)
Rescale(img)

实验效果:

方式三:

import tensorflow as tf
(x_train,y_train),(x_test,y_test)=tf.keras.datasets.mnist.load_data()

注意:#这里需要非常的注意,transform.rescale中的image是一张灰度图才对,也就是颜色通道为1


def Rescale(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)image=transform.rescale(image,[0.3,0.5])ax[1].imshow(image)ax[1].set_title('Rescale row is 0.3 and col 0.5 Image',fontsize=14)image=transform.rescale(image,[2,2])ax[2].imshow(image)ax[2].set_title('Rescale row is 0.1 and col 0.2 Image',fontsize=14)plt.show()
Rescale(x_train[0])

实验效果:

参考和引用:
https://blog.csdn.net/duanyajun987/article/details/82663224
7.剪裁:

import cv2
import numpy as np
from PIL import Image
import tensorflow as tf
import matplotlib.pyplot as plt
def Crop(image):fig,ax=plt.subplots(nrows=1,ncols=3,figsize=(12,6))ax[0].imshow(image)ax[0].set_title('Original Image',fontsize=14)Crop_Box=[12,12,78,78]image1=image.crop(Crop_Box)ax[1].imshow(image1)ax[1].set_title('Rotate 90 Image',fontsize=14)Crop_Box=[0,0,100,100]image2=image.crop(Crop_Box)ax[2].imshow(image2)ax[2].set_title('Rotate 180 Image',fontsize=14)plt.show()
image='D:\\1.jpg'
img=Image.open(image)
Crop(img)

实验效果:

对于以上内容,我已经将参考和引用部分的文章链接给出。其他部分属于自己实现。

图像数据增强(平移,旋转,亮度变换,翻转,添加高斯噪声,缩放,裁剪)相关推荐

  1. 基于OpenCV做图像数据增强(平移、镜像、缩放、旋转、仿射)

    前言: 基于OpenCV的基本使用,对图像的数据量进行数据增强,使得框架对神经网络进行训练,提高模型的鲁棒性以及准确性. 原图: 1.平移 平移通过自定义平移矩阵以及函数warpAffine实现: 代 ...

  2. 对一幅图像添加高斯噪声

    参考别人的程序写的,因为网上对图像添加高斯噪声的程序很难找到,我就自己整理出来一份. #include "cv.h"   #include "highgui.h" ...

  3. 深度学习之实现图像数据增强

    深度学习之实现图像数据增强 前言 数据增强的意思就是让数据量增多.对于深度学习来说,大的数据量可以训练出更好的深度学习模型. 在图像增强方面,我们常用的手段如下: 旋转 翻转 缩放 平移 尺度变换 对 ...

  4. 目标检测:python实现多种图像数据增强的方法(光照,对比度,遮挡,模糊)

    图像数据增强的内容(可根据需要自定义选择): 1.直方图均衡化 2.clahe自适应对比度直方图均衡化 3.白平衡 4.亮度增强 5.亮度,饱和度,对比度增强 6.去除图像上的高光部分 7.自适应亮度 ...

  5. Python:图像数据增强和保存

    Python:图像数据增强和保存 code 参考博客链接:https://blog.csdn.net/qq_36756866/article/details/108255715 在进行模型分析处理的时 ...

  6. python批量实现图像数据增强(扩增)

    什么是数据扩增? 数据扩增是对数据进行扩充的方法的总称.数据扩增可以增加训练集的样本,可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力. 通常在进行数据扩增操作的时候应该保持图像原本的标 ...

  7. 图像数据增强方法一览(附python代码)

    在图像分类任务中,图像数据增强一般是大多数人会采用的方法之一,这是由于深度学习对数据集的大小有一定的要求,若原始的数据集比较小,无法很好地满足网络模型的训练,从而影响模型的性能,而图像增强是对原始图像 ...

  8. 干货 | 图像数据增强实战

    我目前正在做图像数据增强的深度和有效性的研究.这项研究的目的是学习怎样增加只有有限或少量数据的数据集大小,增强训练的卷积网络模型的鲁棒性. 需要列出所有可以想到的图像增强的方法,并将这些方法进行组合, ...

  9. 【Tool】Augmentor和imgaug——python图像数据增强库

    Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...

最新文章

  1. python 把元组转为列表
  2. 从词袋到Transfomer,NLP十年突破史
  3. Python 初学者的最佳学习资源
  4. python操作mycat只操作主库【解决办法】
  5. 区分基于Ant目标的Gradle任务
  6. Chrome 过滤广告插件暂替办法
  7. JavaScript匿名函数与托付
  8. python组件化软件github_GitHub - 872409/wepy: 小程序组件化开发框架
  9. 【java】java 1.8 之 supplier 理解
  10. 人民币发行量比美元还大吗?
  11. vscode + SFTP 传输文件到服务器,从服务器下载文件
  12. iocomp控件 Crack V512-sp6
  13. java 生成拼音首字母_java 根据汉字生成拼音全拼或拼音首字母的示例
  14. 使用arcpy遇到的那些坑(二)
  15. 深度学习:透过神经网络的内在灵魂与柏拉图的哲学理念
  16. 以大数据架构电商2.0的新时代
  17. 大批量IP查询和IP区域快速查询
  18. android游戏开发教程之基本概念
  19. 逻辑推理:张老师的生日
  20. HDU - 4544 湫湫系列故事——消灭兔子 贪心+优先队列

热门文章

  1. 解决 王爽写的汇编语言的第七个验七- 寻址方式在结构化数据访问中的应用
  2. 【Python基础】手把手教你数据可视化!(附实例讲解)
  3. 精简易懂,30 分钟学会 SVD 矩阵分解,很强!
  4. 图像处理经典图片Lena背后的故事
  5. 浅谈图网络在视觉任务中的应用
  6. 算法理解|从头开始理解梯度提升算法
  7. Java线程:新特征-条件变量
  8. LightOJ 1095 Arrange the Numbers(容斥原理)
  9. Linux命令(基础)
  10. struts1-2,springMVC原理基本对比(单例,多例)-servlet与filter区别