图像实战 - 图像的镜像

本文详细介绍了如何实现图像的水平和垂直镜像,包括BGR24/RGB24、NV21/NV12、I420/YV12以及YUYV等常见格式的数据镜像操作。这些方法在相机预览显示和图像处理中尤其重要,特别是在处理前置摄像头的镜像效果时。
摘要由CSDN通过智能技术生成

在开发相机相关程序时,由于人们习惯于看镜子,因此开发者们经常会遇到镜像显示预览数据的需求。各个手机厂家也了解这一点,因此一般手机打开相机切换到前置摄像头看到的画面都是镜像的。本文提供了一些常见YUV、RGB数据的水平镜像和垂直镜像方法。

一、按像素点将图像镜像

图像可按水平镜像和垂直镜像。
假设有以下一张图像:

Pixel1  Pixel2  Pixel3  Pixel4

Pixel5  Pixel6  Pixel7  Pixel8


在**水平镜像**后,新的镜像数据内容将会是: >Pixel4  Pixel3  Pixel2  Pixel1
Pixel8  Pixel7  Pixel6  Pixel5

也就是:

  • 原始数据第 0 行第 0 列的像素点将会变成目标数据第 0 行第 width - 1 列的像素点
  • 原始数据第 0 行第 1 列的像素点将会变成目标数据第 0 行第 width - 2 列的像素点
  • 原始数据第 0 行第 width - 1 列的像素点将会变成目标数据第 0 行第 0 列的像素点
  • 原始数据第 height - 2 行第 0 列的像素点将会变成目标数据第 height - 2 行第 width - 1 列的像素点
  • 原始数据第 height - 2 行第 1 列的像素点将会变成目标数据第 height - 2 行第 width - 2 列的像素点
  • 原始数据第 height - 2 行第 width - 1 列的像素点将会变成目标数据第 height - 2 行第 0 列的像素点
  • 原始数据第 height - 1 行第 0 列的像素点将会变成目标数据第 height - 1 行第 width - 1 列的像素点
  • 原始数据第 height - 1 行第 1 列的像素点将会变成目标数据第 height - 1 行第 width - 2 列的像素点
  • 原始数据第 height - 1 行第 width - 1 列的像素点将会变成目标数据第 height - 1 行第 0 列的像素点

垂直镜像后,新的镜像数据内容将会是:

Pixel5  Pixel6  Pixel7  Pixel8

Pixel1  Pixel2  Pixel3  Pixel4

也就是:

  • 原始数据第 0 行第 0 列的像素点将会变成目标数据第 height - 1 行第 0 列的像素点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值