YUV/NV12、ARGB8888图像同比例缩放,不拉伸处理

news2024/11/19 5:38:11

1)图像处理入门级程序设计,分享给将要学习或者正在学习图像开发的同学。

2)内容属于原创,若转载,请说明出处。

3)提供相关问题有偿答疑和支持。

需求:基于SigmaStar平台SSC375,实现图像不拉伸同比例缩放,当原始图像尺寸与目标图像的尺寸宽高比不一致的时候,补充/填充剩余部分颜色为黑色/或者其他颜色;例如原始的16:9图像是1920x1080的图像,缩小到600x480,但是希望保持16:9的宽高比,如下:

如下是处理之后的两种尺寸示意图:

SigmaStar的SSC375平台提供特殊API,用来给到用户对内存中的图像数据做缩放拉升裁剪等操作,但是不支持同比例缩放,看下官方提供的SigmaStar的Doc中SCL的章节使用说明:

其中2.15章节介绍了一个API叫MI_SCL_StretchBuf,用于缩放、拉伸、裁剪指定内存中的图像数据

如下是三个形参:

因此以上API可以看出,其使用就是对内存buf进行操作和填充,因此可以借助这个API进行同比例的缩放,然后差异的部分可以填充黑色或者其他颜色,如下是整个源码的实现,支持YUV(NV12)以及ARGB8888的格式转换:我主页有下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入源码:解析SpotBugs (2) 检测运行流程

1. 架构概述 SpotBugs的架构设计主要围绕以下几个核心组件展开: 分析引擎:这是SpotBugs的核心,负责读取Java字节码(.class文件),并应用预定义的规则集来检测潜在的代码问题。规则集:一组预定义…

『 Linux 』线程控制

文章目录 线程库线程的创建线程库中的线程ID线程等待及线程退出C11 中的线程库线程库的线程与轻量型进程 线程库 在Linux内核中没有实际的线程概念,只有轻量级进程的概念,即使用task_struct内核数据结构模仿线程; 所以本质上在Linux内核中无法直接调用系统调用接口创建线程,只能…

人工智能学习①

LLM背景知识介绍 大语言模型 (LLM) 背景 用于理解和生成人类语言,能够处理诸如文本分类、问答、翻译和对话等多种自然语言任务。 语言模型 (Language Model, LM) :给定一个短语(一个词组或者一句话)语言模型可以生成&#xff0…

机器学习数学基础(1)--线性回归与逻辑回归

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 1 线性回归和逻辑回归与机器学习的关系 线性回归属于机器学习 – 监督学习 – 回归 – 线性回归, 逻辑…

Apache DolphinScheduler Worker Task执行原理解析

大家好,我是蔡顺峰,是白鲸开源的高级数据工程师,同时也是Apache DolphinScheduler社区的committer和PMC member。今天我要分享的主题是《Worker Task执行原理》。 整个分享会分为三个章节: Apache DolphinScheduler的介绍Apache …

数据结构——二叉树定义

一、二叉树概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。每个子节点本身又可以是一个二叉树。二叉树在计算机科学中有着广泛的应用,例如在搜索算法、排序算法等领域 二叉树(Binary Tree)是n(n…

告别繁琐,2024年PDF合并神器搜罗

有时候我们下载得到的PDF文件可能是被拆分成多份文档,这样对于我们查看文件就会造成一定的困扰。这时候如果把他们合并为一份文件就能方便很多。这次我就介绍几款pdf合并工具来解决这个问题吧。 第一款EIDTOR 福昕PDF 链接:https://editor.foxitsoftwar…

C++ STL 容器之deque

deque与vector同属C STL容器,二者有些相似。deque 采用动态数组来管理元素,提供随机存取,它与vector 几乎一摸一样的接口。不同的是:deque的动态数组头尾都开放,能在头尾两端进行快速安插和散出。下面是deque与vector的…

android前台服务

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、使用2.1 添加权限2.2 新建…

nginx 版本升级

Nginx 的版本最开始使用的是 Nginx-1.18.0 , 由于服务升级,需要将 Nginx 的版本升级到 Nginx-1.19.7 ,要求 Nginx 不能中断提供服务。 为了应对上述的需求,提供两种解决方案: 方案1: make upgrade 完成升…

(二十四)进阶算法

文章目录 (一)埃氏筛法1. 原理2. 代码3. 特点 (二)欧拉筛法1. 原理2. 代码3. 特点 (三)分解质因数1. 原理2. 代码 (四)斐波那契数列1. 递推式2. 代码(1) 方法1(2) 方法2 经过12天的“…

[240728] Wikidata 介绍 | 微软与 Lumen 合作提升人工智能算力

目录 Wikidata 介绍微软与 Lumen 合作提升人工智能算力 Wikidata 介绍 中文: 文言: 粤语: 来源: https://www.wikidata.org/wiki/Wikidata:Introduction/zh 微软与 Lumen 合作提升人工智能算力 为了满足人工智能工作负载不断增长的需求&am…

(2024,通用逼近定理(UAT),函数逼近,Kolmogorov–Arnold定理(KAT),任意深度/宽度的网络逼近)综述

A Survey on Universal Approximation Theorems 公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 1. 简介 2. 神经网络(NN) 3. 通用逼近定理&#xff0…

openssh服务升级到最新版本OpenSSH-9.8p1完全手册---- (只适用于centos6)

[年] 在centos6下编译openssh-9.8p1的rpm包 1、创建用于rpm编译的目录 mkdir -p /root/rpmbuild/SPEC mkdir -p /root/rpmbuild/SOURCES 2、安装rpmbuild和一些其它的基本依赖 yum install gcc gcc-c rpm-build -y 3、上传openssh-9.8p1.tar.gz 这个源码包到centos6服务器上&am…

一篇文章教你如何读懂 JMeter聚合报告参数!

在进行性能测试时,JMeter是一款备受推崇的开源工具。而其中的聚合报告(Aggregate Report)是我们分析测试结果、了解系统性能的重要依据。今天,我们就来深入探讨如何读懂JMeter聚合报告中的各项参数。 面对复杂的聚合报告&#xf…

MySQL创建表完全指南-从零开始学习数据库设计

MySQL创建表快速指南 在大数据时代,掌握数据库技能至关重要。无论你是刚入门的开发者,还是经验丰富的数据分析师,了解如何创建MySQL表格都是必备技能。本文将为你详细讲解MySQL创建表格的全过程,帮助你快速上手数据库设计。 1. 连接到MySQL服务器 首先,确保你已经安装了MyS…

Linux 的超级记事本(代码编辑器) —— vim

Linux 的超级记事本(代码编辑器) —— vim 关于 vimvim 的使用入门级使用——多模式基础使用——多模式插入模式(Insert mode)理解 命令模式(command mode)理解命令集 底行模式(last line mode&…

Logback 快速入门

一、简介 Java 开源日志框架,以继承改善 log4j 为目的而生,是 log4j 创始人 Ceki Glc 的开源产品。 它声称有极佳的性能,占用空间更小,且提供其他日志系统缺失但很有用的特性。 其一大特色是,在 logback-classic 中本…

5G 基站特有的 5 个关键同步挑战

随着 5G 的推出和 O-RAN 联盟等举措,移动设备领域正在遭遇相当大的颠覆,这当然适用于基站和移动回程。 从手机到物联网设备,设备数量呈爆炸式增长,再加上移动视频流、工业物联网和汽车应用等新应用,给移动网络带来了容…

自学JavaScript(放假在家自学第一天)

目录 JavaScript介绍分为以下几点 1.1 JavaScript 是什么 1.2JavaScript书写位置 1.3 Javascript注释 1.4 Javascript结束符 1.5 Javascript输入输出语法 JavaScript(是什么?) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。 2.作用(做什么?)网…