MTK平台视频倒车显示区域图像裁剪---第一部分

2023-10-15 12:20

本文主要是介绍MTK平台视频倒车显示区域图像裁剪---第一部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在倒车显示时,设置预览分辨率是1280x720(AHD)或CVBS(720*576-NTSC制,720*480-PAL制)在LCD1024x600分辨率或1280x720分辨率的屏上显示时,会发现有些摄像头上下左右有黑边,这个时候可以通过ATC芯片内部的倒车模块硬件图像的裁剪功能来达到显示正常图像的目的。必须的TVD图像输出到内部ISP搬运数据到LCD的framebuffer之前进行裁剪,否则显示会有卡顿现象。

方法如下:

使用adb 抓取图像数据:

电脑上执行:
adb root
adb remount
adb shell
进入机器的android运行环境执行:
xxx@xxxx/# setenforce 0
xxx@xxxx/# mkdir /data/mdp/
xxx@xxxx/# setprop dpframework.dumpbuffer.enable 1  // 开始 dump
xxx@xxxx/# setprop dpframework.dumpbuffer.enable 0 // 结束 dump
xxx@xxxx/# exit
电脑上执行:
adb pull /data/sdp .   //将抓取的sdp数据文件拷贝到本地

使用YUV查看工具打开所dump 数据中的 output*.bin(本地电脑的xxxx/mdp/output39635_0.bin)文件,打开格式为YUV422,分辨率选择1024*600,如图可以得出黑边的具体像素大小。

yuv图像工具:https://download.csdn.net/my/uploads中的yuv图像工具

选择1024x600和YUV422_YUYV格式,可以看到左右阴影像素大小,调试的原则,H的设置大小为上面图像显示宽度大小的一半小一点。Y的值为左边从0开始的阴影大小。调整之后根据画面显示大小再进行微调。

如果仍然不行,将X值大小跟Y值设置成一样,仍后再调整W和H值大小,最后左右调整OK之后,再调整Y和H的值,即上下图像的显示即可。

可以使用主界面上的设置菜单中的"显示”——>视频区域裁剪中设置对应参数,经过验证:

是OK的。

那么以上的X、Y和W、H坐标的取值是怎么取的呢?ATC文档中有说需要将参数固化到Metazone中,如下:

那么针对CVBS格式输出到1024x600的LCD屏幕上,针对上面YUV工具得到的黑边,具体是怎么计算上下左右黑边的像素呢,方法如下:

 N制摄像头的分辨率为720*576, P制摄像头的分辨率为720*480,以N制摄像头为例,如下图

这里的裁剪是以视频源的分辨率为标准,假设上图中CVBS画面左右两边均有10px的黑边,那么如果要裁掉坐标的10px的黑边,X取值为10,如果要裁掉右边10px的黑边,那么W为需要显示的宽度,W应该为710-10-10 = 700, 由于上下没有黑边,不用裁剪,那么Y依然为0,H为576。

由于摄像头分辨率为720*576,而屏幕显示分辨率为1024*600,所以从1024*600分辨率屏所测出来的像素并非CVBS 摄像头画面真正的像素,而是通过放大之后的像素,而这个放大就是普通的线性关系,具体为,在1024*600分辨率的屏上,左边17个像素的黑边,那么还原为720 x 576 ,黑边的实际像素为: 17*(720/1024) = 12, 同理,W的值为720-(12-10*(720/1024)) = 701, Y = 0,H = 576。以上均以PAL制摄像头为例,如果是N制摄像头,将576替换成480计算即可。

 

 

 

 

这篇关于MTK平台视频倒车显示区域图像裁剪---第一部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217676

相关文章

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL