图像的翻转

这篇具有很好参考价值的文章主要介绍了图像的翻转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在OpenCV中,图像翻转是一种常见的图像处理操作,用于改变图像的方向或视角。它可以水平翻转图像、垂直翻转图像或同时进行水平和垂直翻转。

作用和意义:

  1. 数据增强:图像翻转是数据增强的一种方式,可以增加训练数据的多样性,提高模型的泛化能力。
  2. 校正镜像:有时图像可能是镜像的,需要将其翻转回正常方向。
  3. 视觉效果:在一些应用中,图像翻转可以产生有趣或特殊的视觉效果。

原理和数学解释:
在图像处理中,图像的翻转是以图像的中心为中轴线进行翻转的。具体来说,我们可以将图像的坐标系原点设置在图像的中心,x轴向右延伸,y轴向下延伸。我们设x 和 y 是原始图像中的坐标,x’ 和 y’ 是翻转后图像中的坐标,w和 h分别表示图像的宽度和高度。在这个坐标系下,进行图像翻转的原理如下:

  1. 垂直翻转:以图像中心为中轴线,对图像进行上下翻转。
[x']   [1  0  0 ]   [x]
[y'] = [0 -1 h-1] * [y] 
[1 ]   [0  0  1 ]   [1]

翻转后,图像中每个像素点的新坐标为 (x’, y’),其中 x’ 的计算公式为 x’ = x,而 y’ 的计算公式为 y’ = h - 1 - y。这里的 h 是图像的高度,即图像的行数。

  1. 水平翻转:以图像中心为中轴线,对图像进行左右翻转。
[x']   [-1  0 w-1]   [x]
[y'] = [0   1  0 ] * [y]
[1 ]   [0   0  1 ]   [1]

翻转后,图像中每个像素点的新坐标为 (x’, y’),其中 x’ 的计算公式为 x’ = w - 1 - x,而 y’ 的计算公式为 y’ = y。这里的 w是图像的宽度,即图像的列数。

  1. 水平和垂直同时翻转:以图像中心为中轴线,对图像进行水平和垂直方向上的翻转。
[x']   [-1   0  w-1]   [x]
[y'] = [0   -1  w-1] * [y]
[1 ]   [0    0   1 ]   [1]

翻转后,图像中每个像素点的新坐标为 (x’, y’),其中 x’ 的计算公式为 x’ = w - 1 - x,而 y’ 的计算公式为 y’ = h - 1 - y。

这样,在进行图像翻转时,我们根据图像的中心为中轴线,按照上述公式计算每个像素点的新坐标,从而得到翻转后的图像。请注意,在计算机视觉中,图像的行索引从上到下递增,列索引从左到右递增,因此在矩阵表示中,需要进行坐标的调整以适应这样的索引顺序。所以矩阵中使用了 h - 1 和 w - 1 来进行偏移调整。

具体代码实现过程如下所示:文章来源地址https://www.toymoban.com/news/detail-496916.html

import cv2
import matplotlib.pyplot as plt

class ImageWarp:
	def __init__(self,image_path):
		self.image_path=image_path

	def image_flip(self):
		img=cv2.imread(self.image_path)

		if img is None:
			print("Unable to load image!")
		else:
			imgflip1=cv2.flip(img,0)
			imgflip2 = cv2.flip(img, 1)
			imgflip3 = cv2.flip(img, -1)

			self.image_show(img,imgflip1,imgflip2,imgflip3)

	def image_show(self,img,imgflip1,imgflip2,imgflip3):
		plt.figure(figsize=(9,6))

		plt.subplot(221),plt.axis('off'),plt.title("Original")
		plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

		plt.subplot(222),plt.axis('off'),plt.title("Flipped Horizontally")
		plt.imshow(cv2.cvtColor(imgflip1,cv2.COLOR_BGR2RGB))

		plt.subplot(223),plt.axis('off'),plt.title("Flipped Vertically")
		plt.imshow(cv2.cvtColor(imgflip2,cv2.COLOR_BGR2RGB))

		plt.subplot(224),plt.axis('off'),plt.title("Flipped Horizontally & Vertically")
		plt.imshow(cv2.cvtColor(imgflip3,cv2.COLOR_BGR2RGB))

		plt.show()

imgfile="Images/lena.jpg"
warp=ImageWarp(imgfile)
warp.image_flip()

到了这里,关于图像的翻转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV(图像处理)-基于Python-图像的基本变换-平移-翻转-仿射变换-透视变换

    为了方便开发人员的操作,OpenCV还提供了一些图像变换的API,本篇文章讲简单介绍各种API的使用,并附上一些样例。 图像缩放函数,用于把图像按指定的尺寸放大或缩小。 dst = cv2.resize(src, dsize, fx, fy, interpolation) dst = 生成的目的图像 src:需要变换的原图像 disize:(x, y)需要

    2024年02月08日
    浏览(42)
  • OpenCV-Python学习(21)—— OpenCV 图像几何变换之图像翻转(cv.flip、np.flip)

    1. 学习目标 学习 OpenCV 图像的翻转函数 cv.flip; 学习 NumPy 矩阵的反转函数 np.flip; 自己实现矩阵反转的函数。 2. OpenCV 翻转 翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直镜像是将图像沿水平中轴线进行上下翻转,水平

    2024年02月06日
    浏览(38)
  • opencv-23 图像几何变换02-翻转-cv2.flip()

    在 OpenCV 中,图像的翻转采用函数 cv2.flip()实现 ,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为: 式中:  dst 代表和原始图像具有同样大小、类型的目标图像。  src 代表要处理的原始图像。  flipCode 代表旋转类型。该参数的意

    2024年02月15日
    浏览(31)
  • Opencv-C++笔记 (16) : 几何变换 (图像的翻转(镜像),平移,旋转,仿射,透视变换)

    图像旋转是指图像按照某个位置转动一定的角度的过程,旋转中图像仍保持着原始尺寸。图像旋转后图像水平对称轴、垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应转换。 假设有一个点:P(x,y),它在绕原点 O(0,0) 旋转 β 后,被转换成

    2024年02月14日
    浏览(38)
  • opencv图像旋转和翻转,cv2.flip,cv2.rotate

    目录 翻转图像 图像旋转         opencv中使用cv2.filp可以实现图像翻转 src:输入图像 flipCode:flipCode 一个标志来指定如何翻转数组;0表示上下翻转,正数表示左右翻转,负数表示上下左右都翻转。 dst:输出图像         下面代码对图像进行不同旋转。         opencv中使

    2024年02月15日
    浏览(33)
  • Python opencv 去除图像四周黑边的一种做法

    注意,图像去黑边有很多种算法设计思路,具体能否起作用要视待处理图像的质量等因素来确定。 这里给出的思路为,将图像以黑白的形式读进去,利用opencv的connectedComponentsWithStats函数求连通域。那么对于有黑边的图像来说,图像由内容和黑边组成,因此 最大 的连通域就是

    2024年02月12日
    浏览(34)
  • OpenCV处理图像和计算机视觉任务时常见的算法和功能

    当涉及到OpenCV处理图像和计算机视觉任务时,有许多常见的具体算法和功能。以下是一些更具体的细分: 图像处理算法: 图像去噪 :包括均值去噪、高斯去噪、中值滤波等,用于减少图像中的噪声。 直方图均衡化 :用于增强图像的对比度,特别适用于低对比度图像。 边缘

    2024年02月11日
    浏览(32)
  • “Python OpenCV 图像格式转换:RGB与BGR互转“——使用OpenCV库进行图像处理的过程中,经常需要进行不同格式之间的转换。其中最为常见的就是R...

    “Python OpenCV 图像格式转换:RGB与BGR互转”——使用OpenCV库进行图像处理的过程中,经常需要进行不同格式之间的转换。其中最为常见的就是RGB和BGR格式之间的转换。本文将详细介绍如何使用opencv-python库将图像从RGB格式转换为BGR格式以及从BGR格式转换为RGB格式。 要实现图像格

    2024年02月12日
    浏览(58)
  • Python图像处理丨图像缩放、旋转、翻转与图像平移

    摘要: 本篇文章主要讲解Python调用OpenCV实现图像位移操作、旋转和翻转效果,包括四部分知识:图像缩放、图像旋转、图像翻转、图像平移。 本文分享自华为云社区《[Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移》,作者:eastmount 。 本篇文章主要讲解Pyth

    2024年02月06日
    浏览(43)
  • 图像的翻转

    在OpenCV中,图像翻转是一种常见的图像处理操作,用于改变图像的方向或视角。它可以水平翻转图像、垂直翻转图像或同时进行水平和垂直翻转。 作用和意义: 数据增强:图像翻转是数据增强的一种方式,可以增加训练数据的多样性,提高模型的泛化能力。 校正镜像:有时

    2024年02月10日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包