图像数据增强——谈谈Opencv

栏目: 编程工具 · 发布时间: 4年前

内容简介:本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。Opencv简介及涉及领域

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

Opencv简介及涉及领域

Opencv 是一个计算机视觉库,Opencv所提供的函数能非常高效的实现计算机视觉算法。

同时Opencv的应用领域非常广泛,包括图像的拼接、图像的降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶以及图像诊断等等

Opencv 模块的安装及其常用函数

Opencv的安装

这里我们简单谈一下使用Anaconda Prompt安装Opencv,命令如下:

conda install opencv

图像的读取/分割/展示/保存

1 )、导入模块

import cv2   # 这里要注意引入模块时导入的包名是cv2而不是Opencv

(2)、读取图片使用cv2.imread函数 ,将返回的值赋值给img

(3)、切割图片使用img[10:100,20:50], 10:100表示提取原图的第10行到100行

20:50 表示提取原图的第20列到第50列。图像坐标轴如下:

图像数据增强——谈谈Opencv    

(4)、展示裁剪的图片和保存裁剪的图片分别为cv2.imshow,cv2.imwirte

(5)、cv2.waitKey(),这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环) ,如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

示例代码展示:

import  cv2

img=cv2.imread("1.jpg")

crop=img[10:100,20:50]

cv2.imshow("crop",crop)

cv2.imwrite("crop.jpg",crop)

cv2.waitKey(0)

图像的放大缩小和旋转

图像的大小变换使用cv2.resize,内置的参数为:导入的图像img、fx和fy为收缩的比例、cv.INTER_NEAREST为采用最近邻插值。

图像的旋转首先要构造一个旋转矩阵M,使用cv2.getRotationMatrix2D函数,其参数为旋转的中心、角度、缩放比例。然后使用cv2.warpAffine函数实现图像的旋转。

import  cv2

img=cv2.imread("python.jpg")

# 将原图缩小长宽缩小到原来的 0.6

size_down=cv2.resize(img,None,fx=0.6,fy=0.6,interpolation=cv2.INTER_LINEAR)

# 将原图放大到原来的 2

size_up=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_LINEAR)

# 图像的旋转

width=img.shape[1]

height=img.shape[0]

M=cv2.getRotationMatrix2D((width/2,height/2),angle=180,scale=1.0)

rotation=cv2.warpAffine(img,M,(width,height))

cv2.imshow("size_down",size_down)

cv2.imshow("size_up",size_up)

cv2.imshow("rotation",rotation)

cv2.waitKey(0)

  • 结语

阅读到这里大家也许会认为裁剪、缩放、旋转这些图像变化可以依靠手机或者电脑上的一些 工具 就能完成,用代码实现有点麻烦。但是大家可千万别小瞧了这些操作,我们生活中的人工智能识别可都是建立在这些操作之上的。如果大家对图像数据增强有兴趣可以关注微信公众号和我们一起学习。

END

主  编   |   张祯悦

责  编   |  官学琦

where2 go 团队

   

微信号:算法与编程之美          

图像数据增强——谈谈Opencv

长按识别二维码关注我们!

温馨提示: 点击页面右下角 “写留言”发表评论,期待您的参与!期待您的转发!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++沉思录

C++沉思录

Andrew Koenig、Barbara Moo / 黄晓春、孟岩(审校) / 人民邮电出版社 / 2008-1 / 55.00元

《C++沉思录》基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成,融聚了作者10多年C++程序生涯的真知灼见。全书分为6篇32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。全书通过精心挑选的实例,向读者传达先进的程序设计的方法和理念。一起来看看 《C++沉思录》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器