图像像素

【先进的应用开发】touchgfx 之 《Using the L8 Image Format》

我的梦境 提交于 2020-01-17 00:52:17
使用L8图像格式 从TouchGFX 4.12.3开始 TouchGFX 4.12现在支持L8标准图像格式格式。 与ARGB8888等相比,L8格式的图像占用较少的闪存,并且绘制速度更快。 L8格式的图像由一个调色板和一个像素阵列组成:调色板最多列出256种不同的颜色,分别以16位格式RGB565、24位格式RGB888或32位格式ARGB8888指定。 像素阵列由每个像素一个字节组成。 该字节是调色板(颜色列表)的索引,指出像素的颜色。 TouchGFX框架通过依次读取像素,查找调色板中的颜色并将其写入帧缓冲区来绘制L8图像。 这会自动发生,并由STM32 Chrom ART硬件加速器加速。 8位至今 像素表示一张L8图像可以使用256种不同的颜色。 另一个L8图像可以使用256种其他颜色,因为两个图像都有各自的调色板。 具有4 x 4像素的L8图像和具有4种颜色的调色板 像素每个为一个字节(8位)。 因此,像素的大小是宽度x高度字节。 调色板颜色可以是16位,24位或32位颜色。 因此,每个颜色定义将占用2、3或4个字节。 如果帧缓冲区是16位(RGB565格式),则纯色图像应存储在L8_RGB565中。 如果帧缓冲区是24位(RGB888),则L8图像必须以L8_RGB888格式存储。 如果图像是透明的,则必须使用32位格式(ARGB8888): 格式 帧缓冲格式

高通camera结构(摄像头基础介绍)

本秂侑毒 提交于 2020-01-16 13:50:48
摄像头基础介绍 一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。 数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。DSP结构框架:   1. ISP(image signal processor)(镜像信号处理器)   2. JPEG encoder(JPEG图像解码器)   3. USB device controller(USB设备控制器) 常见的摄像头传感器类型主要有两种, 一种是CCD传感器 (Chagre Couled Device),即电荷耦合器 。 一种是CMOS传感器 (Complementary Metal-Oxide Semiconductor)即互补性金属氧化物半导体 。 CCD的优势在于成像质量好,但是制造工艺复杂,成本高昂,且耗电高。在相同分辨率下,CMOS价格比CCD便宜,但图像质量相比CCD来说要低一些。CMOS影像传感器相对CCD具有耗电低的优势,加上随着工艺技术的进步,CMOS的画质水平也不断地在提高

图像格式

不羁岁月 提交于 2020-01-16 08:44:14
转:https://blog.csdn.net/woniuye/article/details/89218461 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起。在计算机中, 图像是由一个个像素点组成,像素点就是颜色点,而颜色最简单的方式就是用RGB或RGBA表示, 如图所示 (图1) (图2) 如果有A通道就表明这个图像可以有透明效果。 R,G,B每个分量一般是用一个字节(8位)来表示,所以图(1)中每个像素大小就是3*8=24位图, 而图(2)中每个像素大小是4*8=32位。 这里有三点需要说明: 一、图像y方向正立或倒立 图像是二维数据,数据在内存中只能一维存储,二维转一维有不同的对应方式。比较常见的只有两种方式: 按像素“行排列”从上往下或者从下往上。 如图所示的图像有9个像素点,如果从上往下排列成一维数据是(123456789), 如果是从下往上排列则为(789456123)。 只所以会有这种区别是因为,前一种是以计算机图形学的屏幕坐标系为参考(右上为原点,y轴向下 ),而另后一种是以标准的数学坐标系为参考(右下为原点,y轴向上)。这两个坐标系只是y值不一样,互相转换的公式为: y2 = height-1-y1 y1,y2分别为像素在两个坐标系中的y坐标,height为图像的高度。 不过好像只有bmp图片格式以及windows下的GDI,GDI

用rem适配移动端

≡放荡痞女 提交于 2020-01-16 03:39:21
常见方式: 1. 固定宽度(320)做法:这样前端倒是爽了,可是大页面两边有留白,小页面图标文字又会缩的很小,用户体验极其不好。 2. 流式布局:其实就是用%,这样宽度倒还差不多,高度怎么搞?所以这种布局一般都是宽度自适应高度写死,显的很不协调,另外对设计也有很大的限制,另外还有兼容性方面的问题。 3. 响应式布局:说白了就是利用CSS3中的Media Query(媒介查询),喊的很火,谁用谁知道,简直累死人不要命。 4. 设置viewport进行缩放:以320 宽度为基准,进行缩放,最大缩放为320*1.3 = 416,基本缩放到416都就可以兼容iphone6 plus的屏幕了。<meta name="viewport" content="width=320,maximum-scale=1.3,user-scalable=no"> 5. 利用vh、vw适配:兼容性太差。 rem是什么 rem是一个相对根元素html字体大小的单位,所以它的大小是由html的fontSize大小决定的,假如我把html的fontSize设置为10px,此时的1rem就等于10px,假如我把html的fontSize设置为100px,此时的1rem就等于100px,这也正是我们能用rem做移动端适配的根本原因,就是通过不同屏幕下改变根元素fontSize的大小

立体匹配十大概念综述---立体匹配算法介绍

强颜欢笑 提交于 2020-01-15 17:04:24
立体匹配十大概念综述—立体匹配算法介绍 来自:https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立体匹配算法主要是通过建立一个能量代价函数,通过此能量代价函数最小化来估计像素点视差值。立体匹配算法的实质就是一个最优化求解问题,通过建立合理的能量函数,增加一些约束,采用最优化理论的方法进行方程求解,这也是所有的病态问题求解方法。 二、主要立体匹配算法分类 1)根据采用图像表示的基元不同,立体匹配算法分为: A、区域立体匹配算法(可获取稠密视差图。缺点:受图像的仿射畸变和辐射畸变影响较大;像素点约束窗口的大小与形状选择比较困难,选择过大,在深度不连续处,视差图中会出现过度平滑现象;选择过小,对像素点的约束比较少,图像信息没有得到充分利用,容易产生误匹配。) B、基于特征的立体匹配算法(可获得稀疏的视差图,经差值估计可获得稠密视差图。可提取点、线、面等局部特征,也可提取多边形和图像结构等全局特征。缺点:特征提取易受遮挡、光线、重复纹理等影响较大;差值估计计算量大) C、基于相位立体匹配算法(假定在图像对应点中,其频率范围内,其局部相位是相等的,在频率范围内进行视差估计) 2)依据采用最优化理论方法的不同,立体匹配算法可以分为: A、局部的立体匹配算法 B、全局的立体匹配算法 三、匹配基元(match

抗锯齿处理

▼魔方 西西 提交于 2020-01-15 05:22:09
抗锯齿处理可应用调色技术将图形边缘锯齿缓和。 概述 简单地说主要是应用调色技术将图形边缘的“锯齿”缓和,边缘更平滑。抗锯齿是相对来说较复杂的技术,一直是高档加速卡的一个主要特征。目前的低档3D加速卡大多不支持反锯齿。 原理及作用 抗锯齿(Anti-aliasing):标准翻译为”抗图像折叠失真“。由于在3D图像中,受分辨的制约,物体边缘总会或多或少的呈现三角形的锯齿,而抗锯齿就是指对图像边缘进行柔化处理,使图像边缘看起来更平滑,更接近实物的物体。它是提高画质以使之柔和的一种方法。如今最新的全屏抗锯齿(FullSceneAnti-Aliasing)可以有效的消除多边形结合处(特别是较小的多边形间组合中)的错位现象,降低了图像的失真度。全景抗锯齿在进行处理时,须对图像附近的像素进行2-4次采样,以达到不同级别的抗锯齿效果。简单的说也就是将图像边缘及其两侧的像素颜色进行混合,然后用新生成的具有混合特性的点来替换原来位置上的点以达到柔化物体外形、消除锯齿的效果。 右面是两张效果图,通过图片可以很清楚的看到抗锯齿的效果。点击图片看大图。 类型 超级采样抗锯齿(SSAA) 超级采样抗锯齿(Super-Sampling Anti-aliasing,简称SSAA)此是早期抗锯齿方法,比较消耗资源,但简单直接,先把 图像映射 到缓存并把它放大,再用超级采样把放大后的图像像素进行采样

RDSNet:一种用于交互对象检测和实例分割的新型深度体系结构

馋奶兔 提交于 2020-01-15 05:12:33
译者:蓝燕子 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 摘要 目标检测和实例分割是计算机视觉的两项基本任务。它们密切相关,但他们之间的关系在以往的大多数工作中还没有得到充分的探讨。本文提出了一种新的用于交互目标检测和实例分割的深度结构RDSNet。为了回应这两个任务,我们设计了一个两个流结构以共同学习对象级别(即边界框)和像素级别(即实例掩码)上的特征。在这个结构中,来自两个流的信息是交替融合,即对象层的信息引入实例意识和翻译差异到像素级,像素级的信息-在对象级别细化对象的定位精度作为回报。具体地说,相关模块和裁剪模块被提议产生实例掩码,以及基于掩模的边界求精模块边界框。通过对COCO数据集的大量实验分析和比较,证明了该方法的有效性以及RDSNet的效率。源代码位于 https://github.com/wangsr126/RDSNet 。 1. 引言 目标检测和实例分割是计算机视觉中两个基本的、密切相关的任务论对象层次上的渐进图像理解像素级别。由于应用了deep神经网络,近年来见证了这两项任务的重大进展。然而,他们的关系但在之前的大部分工作中都进行了充分的探索。因此,通过利用交互来提高这两个任务的性能仍然是有意义和具有挑战性的在对象级和像素级信息之间。 目标检测的目标是用矩形边界框并将其分类为特定类别。在这项任务中,最关键的挑战之一在于对象定位

A Taxonomy of Deep Convolutional Neural Nets for Computer Vision

霸气de小男生 提交于 2020-01-14 20:01:03
A Taxonomy of Deep Convolutional Neural Nets for Computer Vision 基本信息 摘要 1. Introduction 2. Introduction to Convolutional Neural Networks 2.1. Building Blocks of CNNs 2.1.1. Why Convolutions? 2.1.2. Max-Pooling 2.1.3. Non-Linearity 2.2. Depth 2.3. Learning Algorithm 2.3.1. Gradient-Based Optimization 2.3.2. Dropout 2.4. Tricks to Increase Performance 2.5. Putting It All Together: AlexNet 2.6. Using Pre-Trained CNNs 2.6.1. Fine-Tuning 2.6.2. CNN Activations as Features 2.7. Improving AlexNet 3. CNN Flavors 3.1. Region-Based CNNs 3.2. Fully Convolutional Networks 3.3. Multi-Modal Networks 3.4.

直线提取与边界追踪

ε祈祈猫儿з 提交于 2020-01-14 02:17:41
文章目录 1.用霍夫变换提取直线 2.边界跟踪 图像的基本特征之一是直线。一般物体平面图像的轮廓可近似为直线及弧线的组合,对物体轮廓的检测与识别可以转化为对这些基元的检测与提取。另外,在运动图像分析和估计领域也可以采用直线对应法实现刚体旋转量和位移量的测量,所以直线检测对图像算法的研究具有重要意义。 边缘是一个局部的概念,一个区域的边界是一个整体的概念,边界追踪是一种串行的图像分割技术。图像由于噪声以及光照不均匀等原因,边缘点可能是不连续的,边界追踪可以将其变为有意义的信息。下面分别介绍直线的提取与边界追踪。 1.用霍夫变换提取直线 Hough变换是一种利用图像的全局特征将特定形状的边缘连接起来,形成连续平滑边缘的一种方法。它通过将原图像上的点映射到用于累加的参数空间,实现对已知解析式曲线的识别。由于利用了图像的全局特性,所以受噪声和边界间断的影响较小,鲁棒性能好。Hough变换常用来对图像中的直线进行识别。 图像上任意直线区域都可以一一对应参数空间中的点,而图像上的任意像素都同时存在于很多直线区域之上。将图像上的直线区域想象为容器,把特定像素想象成放在容器中的棋子,只不过在这里,每个棋子都可以同时存在于多个容器中。那么Hough变换可以理解为依次检查图像上的每个棋子(特定像素),对于每个棋子,找到所有包含它的容器(平面上的直线区域),并为每个容器的计数器加1

Python 处理图片 -- pillow库

只谈情不闲聊 提交于 2020-01-13 22:46:59
pip install pillow 基本使用 from PIL import Image # new 创建一张图片 im1 = Image.new('RGB', (500, 300), (50, 100, 150)) # show 用默认的图片打开方式打开图片 im1.show() # save 保存图片 im1.save('xyz.png') # open 打开一张图片 im2 = Image.open('xyz.png') # filename 文件名 print(im2.filename) # mode 模式 print(im2.mode) # 图片大小:size、宽度:width、高度:height print(im2.size, im2.width, im2.height) # rotate:旋转 expand : 保存边角 im2_rotate = im2.rotate(80, expand=True) im2_rotate.show() # crop 切图 # 前两个值为左上角坐标 # 后两个值为右下角坐标 im2_crop = im2.crop((30, 30, 100, 100)) im2_crop.show() # 设置图片大小 resize im3 = im2.resize((200, 200)) print(im3.size) im3.show() #