数据增强之OpenCV(cv2)

cv2是一个常用的计算机视觉库,全名为OpenCV(Open Source Computer Vision Library)。它提供了丰富的图像处理和计算机视觉相关的函数和工具,可以用于加载、处理、分析和操作图像和视频数据。在使用cv2库之前,我们需要通过pip或者conda安装cv2,然后在代码中导入cv2库。

import cv2

下面介绍一些cv2库中常用的功能:

1.加载和显示图像

image_path = "./1.jpg"
#图片路径
image = cv2.imread(image_path)
cv2.imshow("Image", image)
#显示图像
cv2.waitKey(0)  
# 等待键盘输入,参数为0表示无限等待
cv2.destroyAllWindows()  
# 关闭所有窗口

2.保存图像

使用cv2库中的imwrite函数可以将图像保存到指定文件中。

cv2.imwrite("name.jpg", image)

3.旋转图像

使用cv2库中的getRotationMatrix2DwarpAffine函数可以实现图像的旋转。

import numpy as np

angle = 45  
# 逆时针旋转角度
center = (image.shape[1] // 2, image.shape[0] // 2)  
# 图像中心点坐标
M = cv2.getRotationMatrix2D(center, angle, 1.0)  
# 获取旋转矩阵
rotated_image = cv2.warpAffine(image, M, (image.shape[1], image.shape[0])) 
# 进行旋转

4.裁剪图像

box = (100, 100, 400, 300)  
# 裁剪框的位置 (left, upper, right, lower)
cropped_image = image[box[1]:box[3], box[0]:box[2]]

5.添加文字水印

使用cv2库中的putText函数可以在图像上添加文本水印。需要指定文本内容、位置、字体、大小、颜色等参数。

text = "Watermark"
font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 50)  
# 文本位置
font_scale = 1  
# 字体大小
color = (255, 255, 255)  
# 文本颜色,BGR格式
thickness = 2  
# 文本粗细
cv2.putText(image, text, position, font, font_scale, color, thickness)

6.添加滤镜效果

使用cv2库中的filter2D函数可以为图像应用各种滤镜效果。

import numpy as np
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])  
# 锐化滤镜
filtered_image = cv2.filter2D(image, -1, kernel)

以上是cv2库中的一些常使用的功能。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据增强是指通过对原始数据进行一系列变换和处理,生成更多的训练样本,以增加模型的泛化能力和鲁棒性。在使用OpenCV进行数据增强时,可以使用一些函数和方法来实现不同的增强效果。 其中,旋转是一种常见的数据增强方法。可以使用cv2.getRotationMatrix2D函数来获取旋转矩阵,然后使用cv2.warpAffine函数将图像进行旋转。例如,可以通过以下代码将图像顺时针旋转90度: import cv2 img = cv2.imread("lena.png") rows, cols = img.shape\[:2\] M = cv2.getRotationMatrix2D((cols/2, rows/2), 90, 1) dst = cv2.warpAffine(img, M, (cols, rows)) cv2.imshow("90", dst) cv2.waitKey(0) 此外,缩放也是一种常见的数据增强方法。可以使用cv2.resize函数来调整图像的大小。例如,可以通过以下代码将图像放大为原来的两倍: import cv2 img = cv2.imread("lena.png") height, width = img.shape\[:2\] res = cv2.resize(img, (2*width, 2*height)) cv2.imshow("large", res) cv2.waitKey(0) 除了旋转和缩放,还可以使用其他OpenCV函数和方法来实现更多的数据增强效果,如平移、翻转、裁剪等。根据具体的需求和应用场景,可以选择适合的数据增强方法来提升模型的性能和鲁棒性。 #### 引用[.reference_title] - *1* [Opencv常用数据增强方法:平移+旋转+缩放+模糊+光强+拉伸](https://blog.csdn.net/Jeremy_lf/article/details/103738213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于OpenCV做图像数据增强(平移、镜像、缩放、旋转、仿射)](https://blog.csdn.net/thisiszdy/article/details/87028312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值