像素

【OpenCV】图像几何变换:旋转,缩放,斜切

大憨熊 提交于 2019-12-08 02:56:45
几何变换 几何变换可以看成图像中物体(或像素)空间位置改变,或者说是像素的移动。 几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定为整数坐标。这时就需要灰度级差值将映射的新坐标匹配到输出像素之间。最简单的插值方法是最近邻插值,就是令输出像素的灰度值等于映射最近的位置像素,该方法可能会产生锯齿。这种方法也叫零阶插值,相应比较复杂的还有一阶和高阶插值。 插值算法感觉只要了解就可以了,图像处理中比较需要理解的还是空间变换。 空间变换 空间变换对应矩阵的 仿射变换 。一个坐标通过函数变换的新的坐标位置: 所以在程序中我们可以使用一个2*3的数组结构来存储变换矩阵: 以最简单的平移变换为例,平移(b1,b2)坐标可以表示为: 因此,平移变换的变换矩阵及逆矩阵记为: 缩放变换:将图像横坐标放大(或缩小)sx倍,纵坐标放大(或缩小)sy倍,变换矩阵及逆矩阵为: 选择变换:图像绕原点逆时针旋转a角,其变换矩阵及逆矩阵(顺时针选择)为: OpenCV中的图像变换函数 基本的放射变换函数: void cvWarpAffine( const CvArr* src,//输入图像 CvArr* dst, //输出图像 const CvMat* map_matrix, //2*3的变换矩阵 int flags=CV_INTER_LINEAR

像素纵横比基础知识(正方形像素,非正方形像素)

冷暖自知 提交于 2019-12-08 02:47:27
像素纵横比是指像素的宽 (x) 与高 (y) 之比。正方形像素的比例为 1:1,但非正方形(矩形)像素的高和宽不相同。这一概念类似于帧纵横比,后者是图像的整个宽度与高度之比。通常,电视像素是矩形,计算机像素是正方形。因此,在计算机显示器上看起来合适的图像在电视屏幕上会变形,显示球形图像时尤其明显。在 Microsoft Expression Encoder 中,可以设置一些选项,以便正确显示非正方形像素媒体,以及输出非正方形像素内容。 请注意,图像的帧纵横比不一定限定像素纵横比。帧纵横比为 16:9 的宽屏图像可以包含正方形或非正方形像素。例如,帧纵横比为 720x486 的数字视频通常被视为宽屏视频,且使用矩形像素创建。但是,帧纵横比相同的图像实际上却可能是在图像编辑程序中创建的,因此是在正方形像素环境中创建的。 像素纵横比 如果使用像素看似正方形但却非正方形的像素对视频源编码,则输出将变形,如下图所示。 使用矩形像素创建的圆(左)和在计算机显示器上显示的同一圆(右) 如果您知道图像源的帧纵横比 (Ix:Iy) 和确切的高和宽,则可以使用以下公式确定像素纵横比的 x 值和 y 值: PixelAspectRatioX / PixelAspectRatioY = (Ix * height) / (Iy * width) 例如,如果图像为 720 x 360 像素,帧纵横比为宽屏

【OpenCV 4】图像像素的归一化

只愿长相守 提交于 2019-12-08 02:30:32
一、编程环境: OpenCV 4.1.0 IDE Visual Studio 2017 Enterprise (15.9.13) 操作系统 Windows 10 x64 中文专业版 (1903) 二、归一化: 归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在一定范围的之内。 首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。 归一化的具体作用是归纳统一样本的统计分布性。 归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。 归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。 三、归一化的方式:(在 base.hpp 中定义) 在 OpenCV 4.1.0 中定义了 9 种方式: enum NormTypes { NORM_INF = 1, NORM_L1 = 2, NORM_L2 = 4, NORM_L2SQR = 5, NORM_HAMMING = 6, NORM_HAMMING2 = 7, NORM_TYPE_MASK = 7, NORM_RELATIVE = 8, NORM_MINMAX = 32 }; 四、OpenCV 归一化函数:normalize()

OpenCV像素值归一化

匆匆过客 提交于 2019-12-08 02:29:11
OpenCV像素值归一化 1.L1归一化:NORM_L1 2.L2归一化:NORM_L2 3.INF归一化:NORM_INF 4.MINMAX归一化:NORM_MINMAX 5.完整代码 像素值归一化 就是要把图片像素值数据经过某种算法 限制在需要的一定范围内 。归一化可以使没有可比性的数据变得具有可比性,同时保持相比较的数据之间的相对关系。OpenCV提供了四种图片像素归一化的方法: L1归一化 : NORM_L1 L2归一化 : NORM_L2 INF归一化 : NORM_INF MINMAX归一化 : NORM_MINMAX(最常用) 使用的API是normalize(): void normalize ( InputArray src , //输入图片 InputOutputArray dst , //输出图片 double alpha = 1 , //norm_type = NORM_MINMAX时下限 double beta = 0 , //norm_type = NORM_MINMAX时上限,norm_type = NORM_INF时最大值 int norm_type = NORM_L2 , int dtype = - 1 , //输出type与输入type相同 InputArray mask = noArray ( ) ) ; 下面以20,80

谈谈个人对移动端视口的理解

我是研究僧i 提交于 2019-12-08 02:09:29
1.笔者发现,同样的一个网页,在电脑端显示清楚,但是如果在移动端没有做自适应,有些情况下同一个网页在 移动端字体会变得很模糊。在开发移动端应用的时候,习惯性的我们会加上一下meta标签。 < meta name= "viewport" content= "width=device-width,initial-scale=1.0" user-scalable= "no;" > 2.为什么需要加上这个标签? (1)首先谈谈自己对于Layout viewport(布局视口)的理解 个人对于布局视口的理解,就是 设备当前选择的分辨率 。默认情况下,如果同一个电脑端网页要在移动端 显示IOS,Android都将这个视口设为980px,设想一般手机的分辨率是400*600px左右,如果要在该手机上呈现一个98 0px的视口,那么显然这个网页会变得模糊不清。 (2)什么是Visual viewport(视觉视口) 视觉视口,个人认为视觉视口与物理像素有关,一般的手机设备物理像素是大大的高于分辨率的, 也就是说视觉视口的大小是远远大于布局视口,下面是一段官方对于视觉视口的解释: visual viewport(视觉视口)备物理屏幕的可视区域,屏幕显示器的物理像素,同样尺寸的屏幕,像素密度大的设备,硬件像素会更多。例如iPhone的物理像素: iPhone5 :640 * 1136 iPhone6

移动端开发总结(一)视口viewport总结

北战南征 提交于 2019-12-08 02:00:04
转载链接:移动端开发中,关于适配问题的一点总结(一) 视口 布局视口layout viewport 视觉视口visual viewport 理想视口 缩放 一个重大区别 最小缩放 和最大缩放 分辨率 物理分辨率dpi 设备像素比 dpr dipsdevice-independent pixels 例子 meta视口 完美的meta 视口 视口 < meta name = "viewport" content = "width=device-width" /> 我们一直在使用这行代码,但是这样写有什么用 ? 加了这个和不加这个到底有什么区别? 要解释这个问题,我们首先要了解一个概念 - 视口 在解释视口之前,我们先回顾一下CSS的基础: css中,在没有声明任何宽度时,每个块级元素的默认宽度都是100% 。那这个100% 是相对于什么的100% 呢? 对了,是它父元素的100% 。 每一个css百分比都是根据它的父元素的宽度来进行计算的,所以宽度为父元素 宽度的100% ,本质是: body , html { //没有制定宽度,默认100%} div .aside { width : 20 % ; } 这里,div.aside占用了它的父元素 body 宽度的100%,但我们没有给body 定义宽度,因此,它占用了它的父元素,也就是html 宽度的100% 。但

移动端1px像素问题及解决办法

[亡魂溺海] 提交于 2019-12-08 01:54:25
在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在某些机型上,1px会比较粗,即是较经典的移动端1px像素问题。首选先看一下,pc时代和移动端时代对1px的对比。 一、像素的理解 像素是网页布局的基础。一个像素就是计算机能够显示一种特定颜色的最小区域。当设备尺寸相同但像素变得更密集时,屏幕能显示的画面的过渡更细致,网站看起来更明快。 1、device pixels 设备像素: 显示屏幕的最小物理单位,每个dp 包含自己的颜色、高宽等,不可再细分。设备像素是在设备出厂是设定的,设备一旦造出来就不会变大小和数量。官方在产品说明书上写的1920x1080就是说的物理像素。 2、dpi 设备独立像素:dpi(Dots Per Inch,每 英寸 点数)是一个量度单位,指每一 英寸 长度中,取样、可显示或输出点的数目。每英寸的像素,类似于密度,即每英寸的像素点数量。 3、css pixels 就是CSS和JS所理解的像素单位,它跟设备屏幕的像素没必然关系,比如windows的桌面显示器,当你修改显示器的硬件分辨率,比如把1920的分辨率改成1024分辨率,你会发现网页里的图形和字体变得很大很大的,同样的显示器,原本能显示全部网页,现在只能显示一半宽度,也就是说CSS像素变大了。所以,CSS像素是可以被硬件和软件任意调节的单位

解决移动端1px边框问题的几种方法

拜拜、爱过 提交于 2019-12-08 01:46:47
本文介绍了解决移动端1px边框问题的5种方法。当然了,在这之前先整理了与这些方法相关的知识:物理像素、设备独立像素、设备像素比和viewport。 物理像素、设备独立像素和设备像素比 在CSS中我们一般使用px作为单位,需要注意的是,CSS样式里面的px和物理像素并不是相等的。CSS中的像素只是一个抽象的单位,在不同的设备或不同的环境中,CSS中的1px所代表的物理像素是不同的。在PC端,CSS的1px一般对应着电脑屏幕的1个物理像素,但在移动端,CSS的1px等于几个物理像素。 物理像素(physical pixel) 物理像素又被称为设备像素、设备物理像素,它是显示器(电脑、手机屏幕)最小的物理显示单位,每个物理像素由颜色值和亮度值组成。所谓的一倍屏、二倍屏(Retina)、三倍屏,指的是设备以多少物理像素来显示一个CSS像素,也就是说,多倍屏以更多更精细的物理像素点来显示一个CSS像素点,在普通屏幕下1个CSS像素对应1个物理像素,而在Retina屏幕下,1个CSS像素对应的却是4个物理像素(参照下文田字示意图理解)。 设备独立像素(device-independent pixel) 设备独立像素又被称为CSS像素,是我们写CSS时所用的像素,它是一个抽像的单位,主要使用在浏览器上,用来精确度量Web页面上的内容。 设备像素比(device pixel ratio)

前端适配

泪湿孤枕 提交于 2019-12-07 23:48:29
移动端开发中,关于适配问题的一点总结(一) 转自:http://www.jianshu.com/p/3a5063028706?nomobile=yes 我们第一次接触移动web的时候,直观印象样应该是:屏幕比pc小很多,所以对pc端设计的界面,不一定(或者说不完全)能很好的适用到移动端。 下面这段代码,做过移动端项目的同学一定不会陌生。 假设你已经见过上面的代码,并有所应用,对响应式设计如何工作有大概的了解,但不一定清楚一些细节。最近在做一个移动端的项目,要求做到精确还原设计稿,像素级。现在我把自己的一些心得分享出来,给大家参考。下面我就关于 像素,视口,分辨率,meta视口 相关的内容展开叙述。 要实现像素级还原,首先我们要搞清楚什么是像素。 #像素 像素(pixel) 是网页布局的基础,web开发者,包括设计师,凭直觉去使用它。我们好像对它很熟悉,但依然还有很多关于这个基础构建模块的东西需要我们去学习。例如,一个像素到底是什么。 乍一看,这似乎是个非常简单的问题,一个像素就是计算机能够显示一种 特定颜色 的最小区域。屏幕上像素越多,你就看到的越多。或者说,同样尺寸的设备,像素越多,效果就越细腻。 对于开发者来说,给一个元素设置 width : 200px ;会发生什么事情呢? //废话 lol ,就是给它设置宽度200px 呗,stupid question..

安卓APP开发中的屏幕适配问题如何解决?

爷,独闯天下 提交于 2019-12-07 23:46:46
1 为什么要进行Android屏幕适配 由于 Android 系统的开放性,任何用户、开发者、 OEM 厂商、运营商都可以对 Android 进行定制,于是导致: Android 系统碎片化 : 小米定制的 MIUI 、魅族定制的 flyme 、华为定制的 EMUI 等等——当然都是基于 Google 原生系统定制的; Android 机型屏幕尺寸碎片化 : 5 寸、 5.5 寸、 6 寸等等; Android 屏幕分辨率碎片化 : 320x480 、 480x800 、 720x1280 、 1080x1920。 屏幕尺寸分布图 据友盟指数显示,统计至 2015 年 12 月,支持 Android 的设备共有 27796 种。 当 Android 系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在不同手机上显示不同的问题。 虽然系统为使您的应用适用于不同的屏幕,会进行缩放和大小调整,但您应针对不同的屏幕尺寸和密度优化应用。 这样可以最大程度优化所有设备上的用户体验,用户会认为您的应用实际上是专为他们的设备而设计,而不是简单地拉伸以适应其设备屏幕。 2 相关概念 2.1 屏幕尺寸 含义:按屏幕对角测量的实际物理尺寸。 为简便起见, Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大 单位 : 英寸( inch ),一英寸≈ 2.54cm 2.2