引入numpy及cv2库

import cv2
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

本文操作的示例图片


建立图片变量:

filename = 'lena.jpg'
## [Load an image from a file]
img = cv2.imread(filename)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

显示图片大小:

print(img.shape)

这里我们将处理函数封装在类中,例如图片缩放:

class Resize:def __init__(self, size):self.size=sizedef __call__(self, img):# 此处插入代码return cv2.resize(img,self.size)

调用方式如下:

resize=Resize( (600, 600))#此处写入图像想要改向的尺寸
img2=resize(img)
plt.imshow(img2)

图片翻转:

class Flip:def __init__(self, mode):self.mode=modedef __call__(self, img):# 此处插入代码return cv2.flip(img,self.mode)

图片旋转:

class Rotate:def __init__(self, degree,size):self.degree=degreeself.size=sizedef __call__(self, img):# 此处插入代码(h, w) = img.shape[:2]center = (w // 2, h // 2)M = cv2.getRotationMatrix2D(center,self.degree, self.size)return cv2.warpAffine(img, M, (w, h))

图片亮度调节:

class Brightness:def __init__(self,brightness_factor):self.brightness_factor=brightness_factordef __call__(self, img):# 此处插入代码return np.uint8(np.clip((self.brightness_factor * img + 0), 0, 255))

图片随机裁剪:

import random
import mathclass RandomErasing(object):def __init__(self, EPSILON=0.5, sl=0.02, sh=0.4, r1=0.3,mean=[0., 0., 0.]):self.EPSILON = EPSILONself.mean = meanself.sl = slself.sh = shself.r1 = r1def __call__(self, img):if random.uniform(0, 1) > self.EPSILON:return imgfor attempt in range(100):area = img.shape[0] * img.shape[1]target_area = random.uniform(self.sl, self.sh) * areaaspect_ratio = random.uniform(self.r1, 1 / self.r1)h = int(round(math.sqrt(target_area * aspect_ratio)))w = int(round(math.sqrt(target_area / aspect_ratio)))# 此处插入代码if w < img.shape[0] and h < img.shape[1]:x1 = random.randint(0, img.shape[1] - h)y1 = random.randint(0, img.shape[0] - w)if img.shape[2] == 3:img[ x1:x1 + h, y1:y1 + w, 0] = self.mean[0]img[ x1:x1 + h, y1:y1 + w, 1] = self.mean[1]img[ x1:x1 + h, y1:y1 + w, 2] = self.mean[2]else:img[x1:x1 + h, y1:y1 + w,0] = self.mean[0]return imgreturn imgerase = RandomErasing()
img2=erase(img)
plt.imshow(img2)

**

欢迎前来飞桨Paddle一起学习

**
课程链接:https://aistudio.baidu.com/aistudio/course/introduce/11939?directly=1&shared=1

百度飞桨公开课笔记——OPENCV库实现图像增广相关推荐

  1. 百度飞桨亮相2019 AIIA,四大领先技术剑指落地引开发者点赞

    深度学习技术能让文化底蕴浓厚的老茶馆换上科技的"新装",也能让原本1周的工作量缩短为1个小时,且效果更佳--这些看似稀奇的事已经随着深度学习技术的发展成熟逐渐普及. 11月1-2日 ...

  2. 我做的百度飞桨PaddleOCR .NET调用库

    .NET Conf 2021中国我做了一次<.NET玩转计算机视觉OpenCV>的分享,其中提到了一个效果特别好的OCR识别引擎--百度飞桨PaddleOCR,后来我逐步把它封装了一下,代 ...

  3. 百度飞桨2021李宏毅机器学习特训营学习笔记之回归及作业PM2.5预测

    百度飞桨2021李宏毅机器学习特训营学习笔记之回归及作业PM2.5预测 前言 回归 什么是回归(Regression)? 怎么做回归? 线性回归(Linear Regression) 训练集与验证集 ...

  4. 2021全国人工智能师资培训正式“开课”,百度飞桨助力高校教师提升AI“超能力”...

    点击左上方蓝字关注我们 随着人工智能在各行各业的加速渗透和落地,AI人才缺口问题亟待解决.与此同时,高校教学仍面临着与工业实践脱节.资源差异大等困难,AI师资培训成为人才培养不可忽视的重要一环. 为积 ...

  5. 物流效率提速中,百度飞桨与京东物流激发出时代火花

    点击左上方蓝字关注我们 数字经济的高速发展,给物流产业带来了翻天覆地的变化,以大数据.人工智能等新技术实现的科技赋能对行业的变革作用愈发凸显.9月29日,在AIIA2020人工智能开发者大会百度产业A ...

  6. 支撑千万规模类别分类技术,百度飞桨定义工业级深度学习框架

    2016 年,AlphaGo 横空出世,人工智能时代到来.同年,百度开源自研的深度学习框架 PaddlePaddle(飞桨),成为中国首个开源深度学习框架. 然而,这波由深度学习推动的技术和产业浪潮, ...

  7. 小布助手在百度飞桨实体链指比赛中的实践应用

    本文由百度飞桨举办的千言数据集:面向中文短文本的实体链指任务比赛中取得优异成绩的小布助手算法工程师樊乘源投稿. 背景介绍 实体链指是指对于给定的一个文本(如搜索Query.微博.对话内容.文章.视频. ...

  8. AIIA开发者大会百度飞桨及EasyDL专场:带你看五花八门的产业AI实践

    点击左上方蓝字关注我们 十一前夕,"寒假连暑假"的学生们重新回到校园,开始新一轮的知识遨游,不少AI开发者们也借着这个学习劲头扎进"AI海洋"里,追逐着后疫情时 ...

  9. 基于百度飞桨PaddlePaddle模型训练的手势识别模型控制音乐播放器

    基于百度飞桨paddle模型训练的手势识别模型控制音乐播放器 前言 一.什么是百度飞桨PaddlePaddle? 一.1 飞桨AI Studio 二.实际使用 1.配置虚拟环境 2.安装 三.实战 四 ...

最新文章

  1. Part 2 – Deep analysis using Androguard tools
  2. leetcode-- 338. Counting Bits
  3. .NET Core开发实战(第18课:日志框架:聊聊记日志的最佳姿势)--学习笔记(下)...
  4. [vue] 移动端ui你用的是哪个ui库?有遇到过什么问题吗?
  5. 2017.4.26 组合数问题 思考记录
  6. MAX31855 热电偶至数字输出转换器
  7. 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
  8. ZUST-CCCC选拔赛(L1,L2部分题解)
  9. vue中 key 值的作用
  10. 图书馆借阅系统java参考文献_基于java的图书馆管理系统
  11. MATLAB矩阵的平均值和最大值
  12. android无法格式化sd卡,手机sd卡无法格式化怎么回事?手机sd卡无法格式化解决方法...
  13. C语言:求不确定科目数的加权平均分
  14. bzoj 1853: [Scoi2010]幸运数字 容斥
  15. 转化类操作符:map、mapTo和pluck
  16. Enterprise Architect教程
  17. 哎我就不信了,Java IO有这么难吗?
  18. Windows10下如何创建VHDX(VHD)格式的虚拟硬盘文件
  19. 终身学习 思维导图
  20. Esp32-diy桌面可交互机器人

热门文章

  1. Android-Notes|BottomNavigationView-爱上-Lottie,kotlin声明数组
  2. 如何利用 C# 爬取「互动出版网 - 计算机图书销量榜」!
  3. 虚拟服务器ip是什么,什么是IP型虚拟主机?
  4. python学习笔记第一篇:Python3使用wordcloud制作词云报错OSError: cannot open resource和制作出的词云图乱码问题
  5. having 聚合函数
  6. 【概率论与数理统计】猴博士 笔记 p5-7 条件概率,全概率公式,贝叶斯公式
  7. 【C++】C++的工具库
  8. 在Visual C++中常用到得一些绘图或者控件的语句(mfc)
  9. 简明python教程英语版_简明Python教程(A Byte of Python中文版)
  10. nginx 访问 .php文件变成下载