首页 > 其他分享 >关于RDK X3(旭日X3派)的VPS不能输出300x300照片的临时解决办法参考

关于RDK X3(旭日X3派)的VPS不能输出300x300照片的临时解决办法参考

时间:2024-03-25 10:31:27浏览次数:16  
标签:VPS vps 300 裁剪 320 nv12 X3 RDK

探索工具

使用 Jupyter Notebook逐句运行Python代码,并且可以通过matplotlib模块将nv12格式的图像直接在开发机的浏览器上显示。

**如何为RDK X3安装Jupyter Notebook:**https://developer.horizon.cc/forumDetail/188481611833243692

**如何使用matplotlib将nv12的图像显示出来:**https://developer.horizon.cc/forumDetail/188481611833243698

RDK X3的VPS

RDK X3有一个硬件上的视频处理模块VPS,使能指定camera通道的vps(video process)图像处理功能,可以对nv12格式的图像输入图像完成缩放、旋转、裁剪等功能,时间开销都是微秒级的。

具体请参考 RDK X3 用户手册

**Python接口:**https://developer.horizon.cc/documents_rdk/python_development/pydev_multimedia_api_x3/object_camera

**C/C++接口:**https://developer.horizon.cc/documents_rdk/clang_development/cdev_multimedia_api_x3/vio_api#sp_open_vps

VPS的问题

在使用VPS对一张1080p的图像进行缩小到300*300的操作为,应该输出135000大小的数组,但是输出了144000大小数据。因为300不是32的整数,所以向上取整到320,可以通过后期裁剪来去掉绿色区域。

首先通过Camera获取一张1080p的图像,分辨率为1920 x 1080,格式为nv12,将这张图片转化为BGR8的格式,显示效果如下:

在这里插入图片描述

# 声明一个VPS的对象
vps = srcampy.Camera()
ret = vps.open_vps(2, 1, 1920, 1080, 300, 300)
# mipi_data是1920*1080的nv12图片
mipi_img = np.frombuffer(mipi_data, dtype=np.uint8)
print(mipi_img.shape)  # 输出(3110400,),其中3110400 = 1920*1080*1.5

# 将1080p的图像送入VPS
ret = vps.set_img(mipi_data)
print(ret)  # 输出为0, 表示操作成功

# 从VPS取照片,应该得到300*300的图片,但是得到的是300*320的图片
vps_data = vps.get_img(2, 300, 300)
nv12 = np.frombuffer(vps_data, dtype=np.uint8)
print(nv12.shape)  # 输出(144000,),其中144000 = 320*300*1.5

将这张图片转化为BGR8的格式,显示效果如下:

在这里插入图片描述

暂时的解决方法

暂时的解决方法是利用numpy的接口对获得的nv12图像进行裁剪,将 300 x 320 的nv12图像裁剪为300 x 300 的nv12图像,大约有 2.4ms 的时间开销。

### 对象 nv12 是从VPS获得的数据流,表达为numpy数组的格式 
### 对象 new_nv12 是裁剪后的nv12图像,表达为numpy数组的格式 

# 对Y分量进行裁剪
y_channel = nv12[:300*320].reshape(300,320)[:,:-20]
# 对UV分量进行裁剪
uv_channel =nv12[300*320:].reshape(150,320)[:,:-20]
# 合并
new_nv12 = np.concatenate((y_channel.ravel(), uv_channel.ravel()))

print(new_nv12.shape)  # 输出(135000,),其中135000 = 300*300*1.5

这里将这张图片转化为BGR8的格式,显示效果如下,可以观察到绿边已经被裁剪,原始图像也没有出现问题,裁剪是成功的:

在这里插入图片描述

标签:VPS,vps,300,裁剪,320,nv12,X3,RDK
From: https://blog.csdn.net/SA2672873269/article/details/137006718

相关文章

  • NCV8702MX33TCG电源管理线性稳压器芯片中文资料PDF数据手册引脚图图片价格
    产品概述:NCV8702是一款200mA低漏静止电流、低漏线性稳压器,带超低噪声特性。它的低噪音结合高电源抑制比(PSRR)使其特别适用于射频、音频或成像应用。该器件采用先进的BiCMOS工艺制造,可提供低电流耗量和卓越噪声性能的强大组合。NCV8702可稳定使用小型低值1µ电容器......
  • NCV8703MX33TCG 线性稳压器芯片中文资料规格书PDF数据手册引脚图图片价格
    产品概述:NCV8703是一款低噪音、低功耗和低漏线性稳压器。该器件具有优异的噪音和PSRR规格,适用于使用射频接收器、成像传感器、音频处理器或需要外部洁净电源的任何部件的产品。NCV8703使用创新的自适应接地电流电路可确保轻负载调节下的超低接地电流。规格书参数:引脚图......
  • 关于使用MAX31865的注意事项
    在采购回的MAX31865模块需要自行焊接,包括插座和板子上的焊点。参考MAX31865和PT100PT1000的小白避坑攻略-CSDN博客 上面的避坑指南,对两线、三线、四线进行焊接说明。非常重要,否则读数不对,或者总是一个固定值。两线: 三线:四线:  具体的Arduino代码可参考:MAX31865RTDS......
  • 旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)
    旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)windows,框架pytorch,python3.7效果模型训练模型转换1、pt模型文件转onnx2、检查onnx模型3、准备校准数据4、onnx转bin上板视频流推理1、图片推理2、视频流推理效果模型训练进官网可克隆yolov5......
  • Angr-Learn-0x3
    Angr-Learn-0x3注意本文可以理解为官方文档的简单翻译+一部分个人理解符号执行与约束求解angr之所以强大并不因为它是一个模拟器,而是它能使用符号变量来执行。使用符号变量算术运算将产生一颗运算树(AST)。AST可以转换为SMT求解器的约束。使用位向量例子:#64-bitbitvectors......
  • python 使用PaddleOCR读取图片文字,并用pyttsx3转为音频
    python小白,纯纯小白,很久之前看了一遍菜鸟官网,但实在没有应用场景,所以过目即忘。最近工作不是很忙,给我出了个题目,觉得挺有意思,就玩一玩。  所以关键点就是,图片提取出文字,然后文字转音频。1.图片提取文字,PaddleOCR出题人士,给出了git上一个ocr的工具库,支持图文信息的抽取。用......
  • 8000MHz高频内存也赢不了AMD!锐龙7 7800X3D VS. i9-14900K网游与单机游戏性能对比
    一、前言:i9-14900K配8000MHz内存能否战胜锐龙77800X3D如今的Intel似乎有些魔怔,为了冲击高频而不顾一切。此前i9-14900K的满载功耗已经高达360W,而即将到来的i9-14900KS据闻峰值功耗已经超过400W,频率也来到了前所未有6.2GHz。与之形成强烈反差的是AMD的锐龙77800X3D,这款当前游戏......
  • Python文本转语音库:pyttsx3 初识
    1.安装pipinstallpyttsx32.示例#coding=utf-8importpyttsx3text="""在这个例子中,使用三引号可以创建多行字符串,换行符会自动包含在字符串中。请注意,在这些方法中,字符串的换行拼接可以根据需要进行布局,以增强代码的可读性和可维护性。"""engine=pyttsx3.init()......
  • Ali Cloud Linux3 : Installing ImageMagick for PHP 7.4
    Step1:Ifnotalreadyinstalled,installthephp-develandgccpackages.$sudoyuminstallphp-develgccTocheckifthepackagesareinstalled,usethefollowingcommands.Ifeithercommandreturnsanemptyresult(orbothdo),you’llneedtoinstallth......
  • 菲律宾VPS服务器,月均只要16.5元/月,优惠推荐
    原文:https://ichochy.com/posts/vps/20240105.htmlMegalayer致力于成为全球电信增值服务提供商,为用户在全球范围内提供优质、稳定的互联网服务,目前已经在香港、日本、美国等地区部署节点,并且将继续在东南亚地区进行战略布局,提升资源优势以及市场优势。资费月资费年资费,最......