像素

Android 中的dp和px

匿名 (未验证) 提交于 2019-12-03 00:32:02
在安卓运用中,配置距离的时候用dp后者px都可以,一般情况下在xml中用dp的时间很多,但是在代码中设置参数的时候,传入的参数却是px。dp的设置跟手机没有关系,固定的dp在每台分辨率不同的手机都显示距离是一样的,所以一般也用dp作为一个固定的设置。 像素点,比如1080*1920的屏幕,就是宽1080个像素点和高1920个像素点。 dpi: 像素密度, 是每一英寸屏幕的像素数量. 关于他的计算方法(以1080*1920的5英寸屏幕为例):屏幕的对角线像素数/屏幕的尺寸 √(1080*1080+1920*1920)/5=441dpi。 dp: 也叫dip设备无关像素。 1dp的概念是,1英寸的尺寸下有160个像素时,1dp = 1px。 也就是 如果你的手机像素密度是320dpi(一英寸有320个像素点)时, 1dp = 2px。 dp和px之间的转换。 public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px (Context context , float dpValue) { final float scale = context.getResources().getDisplayMetrics(). density ; return ( int )

histeq的原理和用法

匿名 (未验证) 提交于 2019-12-03 00:30:01
参考文档: User’s Guide histeq的原理: [MN]=size(H); [counts,x]=imhist(H); location=find(counts~=0); %找到所有像素个数不为0的灰度级 MinCDF=min(counts(location)); %找到包含个数最少的灰度级 %计算各个灰度级像素个数累计分布 %找到图像中等于某个灰度级所有像素点所在位置 %利用灰度换算公式,修改所有位置上的像素值 end 简单的说,就是将每个灰度值利用一个变换公式替换掉。 简单的例子: clc;clear;closeall; H=imread('pout.tif');figure;subplot(121);imshow(H); H=im2double(H); %这个是需要注意的地方,一定要变换成double类型 [N]=size(H); [counts,x]=imhist(H); location=find(counts~=0); %找到所有像素个数不为0的灰度级 MinCDF=min(counts(location)); %找到包含个数最少的灰度级 for j=1:length(location) %计算各个灰度级像素个数累计分布 %找到图像中等于某个灰度级所有像素点所在位置 %利用灰度换算公式,修改所有位置上的像素值 end subplot(122);imshow

对于Android Density 的理解(dp sp pix)

匿名 (未验证) 提交于 2019-12-03 00:26:01
在Android系统开发过程中需要对各种各样的手机版本进行适配,而编写布局文件时希望可以使用相同的布局元素以及空间距离,实现在不同尺寸的屏幕上显示的效果一致。 手机屏幕的像素密度取决于不同的手机本身,与手机的尺寸以及像素值有关。与手机无关“像素”以及可缩放的“像素”可以提供灵活方式在不同的手机上进行适配 每一英寸(2.54厘米)像素点的数目被定义为像素密度,高分辨率的手机比低分辨率的手机在单位英寸上有更多的像素点。 计算像素密度公式:像素密度=屏幕高(宽)的像素点个数/屏幕高(宽)英寸 左图高分辨率图片,右图低分辨率图片 当使用同一像素尺寸来表示UI元素,在高分辨率的手机上显示的会比在低分辨率的手机上显示“小”,如上图所示,因此在布局文件中不可以使用像素值pix来表示布局元素的大小以及位置等。 Density无关性指的是UI元素在屏幕上显示的是同一种样式,但使用的是不同的Density,即不同手机有不同的Density,但使用相同的Density的值可以显示为相同的大小,如下图所示。 左图低分辨率,右图高分辨率 Density无关性,在布局文件中使用dp来表示多种手机的不同Density。 在开发Android应用时,使用dp使得布局元素在不同像素密度的手机上显示为相同的布局的大小。 官方给的dp的计算方式 :dp=(水平方向的像素点*160)/屏幕密度 实际计算方式可以用:dp

高光谱数据集

匿名 (未验证) 提交于 2019-12-03 00:22:01
摘自《基于深度卷积神经网络的高光谱图像分类》徐敏 1.Indian Pines 数据集 145×145 的大小进行标注作为高光谱图像分类测试 用途。 AVIRIS 成像光谱仪成像波长范围为 0.4-2.5μm,是在连续的 220 个波段对地物连续成像的,但是由于第 104-108,第 150-163 和第 220 个波段不能被水反射,因此,我们一般使用的是剔除了这 20 个波段后剩下的 200 个波段作为研究的对象。 该光谱成像仪所成的图像的 空间分辨率约为 20m ,因此,其较容易产生混合像元,给分类带来难度。 图 2.1(a)是抽取其中 3 个波段的二维矩阵叠加作为 RGB 图像三个通道所成的伪彩色图像。该数据总共有 21025个像素,但是其中只有 10249 个像素是地物像素,其余 10776 个像素均为背景像素,在实际分类中,这些像素是需要剔除的,由于截取的这块区域均是庄稼,总共有 16类,因此不同的地物具有较为相似的光谱曲线,而且这 16 类中,样本的分布极不均匀 2.Pavia University 数据集 图像的空间分辨率为 1.3m 。其中 12 个波段由于受噪声影响被剔除,因此一般使用的是剩下 103 个光谱波段所成的图像。该数据的 尺寸为 610×340 ,因此共包含2207400 个像素,但是其中包含大量的背景像素,包含地物的像素总共只有 42776 个

04_相机_20180601

匿名 (未验证) 提交于 2019-12-03 00:22:01
整理出的---希望大家补充 相机 格式 1英寸 2/3英寸 1/2英寸 1/3英寸 1/4英寸 高度 9.6mm 6.6mm 4.8mm 3.6mm 2.4mm 宽度 12.8mm 8.8mm 6.4mm 4.8mm 3.2mm 1、相机的分类 的转换,同时产生数字信号。在相机的选择中,不能大概地说 CCD 相机好还是 CMOS 相机更好,具体选择过程要根据应用的具体需求和所选择相机的参数指标。 1.2 按照传感器结构分: 如何选择线阵相机? 线阵相机的分辨率 通常表示多少 K,如1K(1024), 2K(2048), 3K(4096)等;12KHz 表示相机在 1 秒钟内最多能采集 12000 行图像数据。 1.计算分辨率;幅宽除以最小检测精度得出每行需要的像素。 2.检测精度;幅宽除以像素得出实际检测精度。 3.扫描行数;每秒运动速度长度除以精度得出每秒扫描行数。 根据以上计算结果选择线阵相机 举例如下:如幅宽为 1600 毫米、精度 1 毫米、运动速度 22000mm/s 2. 实际检测精度:1600/2048=0.8; 3. 扫描行数:22000mm/0.8mm=27.5KHz; 所以:应选定相机为 2048 像素 28kHz 相机。 1.3 按照输出模式分类: 被数字相机所替代,模拟相机所占市场份额正越来越小。数字相机具有通用性好、控制简单、可增加更多图像处理功能

两种改进的LPB算法,CLBP和ELBP

匿名 (未验证) 提交于 2019-12-03 00:22:01
最近看了两篇关于CLBP和ELBP的文章。现在对文中提到的LBP相关知识做一个小小的总结 一、LBP简介 1.传统LBP 其中 是中心像素的灰度值, 是其邻域像素的灰度值。通过比较中心像素周围邻域像素与中心像素的大小,大于中心像素为1,小于中心 像素为了,最后按一定顺序进行二进制编码。对于没有完全落在像素中心的邻域点,可以通过线性插值的方法来估算其灰度值。最后通过遍历所有LBP像素值,建立直方图来表示该图的纹理特征。假设图片尺寸是i*j,则直方图表达为: 2.uniform LBP 由上文可知,传统LBP会生成一个非常冗长的直方图,由于巨大维数,H值的估计也十分棘手,并且LBP对噪声十分敏感,围绕中心像素轻微的上下波动,可能导致编码结果大相径庭。因此,Ojala等人提出了统一编码模式: U表示二进制编码0/1跳变的次数。一般情况下,U<=2,称之为统一模式,以p=8为例,共有8*7+3=59个编码值,其中58个为统一模式如下图所示。考虑旋转不变性,行将其分成p+2个值。 3. 由于LBP过分简化了局部结构丢失了纹理信息,Ojala等人通过对每个局部模式进行对比,提出了一个局部互补的描述子,称为 ,并使用2维直方图并联 和 ,这里记为LBP/VAR 二、CLBP 与传统LBP不同,CLBP具有3个描述子。分别是CLBP-C、CLBP-S、CLBP-M。 如图,规定 ,其中 上述公式中

Android中px、dp、dip、sp详解

匿名 (未验证) 提交于 2019-12-03 00:22:01
px, dp, dip, sp之间的区别 废话就不多说了,直接说重点。首先解释下这几个单位的代表意思。 由于过去 通常以像素为单位设计计算机用户界面。当一个像素在80x80的时候,在高分辨率 显示器上运行该程序,则用户界面会显得很小 。所以 采用与分辨率无关的度量单位来开发程序就能够解决这个问题 。而 Android应用开发支持不同的度量单位。 一.解释下: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持 WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 dp: dip是一样的 px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。 pt: point,是一个标准的长度单位,1pt=1/72英寸=0.035厘米,用于印刷业,非常简单易用; sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。 in mm (毫米):长度单位。 当然我们光是了解不会用那就不行了。 二.度量单位的换算公式 在android源码包TypedValue.java中,我们看如下函数: metrics.density: 默认值为DENSITY_DEVICE / (float) DENSITY

ISP算法概述

匿名 (未验证) 提交于 2019-12-03 00:21:02
ISP算法概述 前言: 本篇blog主要为讲述ISP处理流程及其应用场景。 一、概述 依赖于 ISP 才能在不同的光学条件下都能较好的还原现场细节。 Cmos YUV sensor 的 ISP 处理流程如图 1 所示: 再送到数字信号处理芯片( DSP) 中加工处理。所以,从 sensor 端过来的图像是 Bayer 图像,经过黑电平补偿 ( black level compensation)、镜头矫正 ( lens shading correction)、坏像素矫正 ( bad pixel correction)、颜色插值 ( demosaic)、Bayer 噪声去除、 白平衡( awb) 矫正、 色彩矫正( color correction) 、 gamma 矫正、 色彩空间转换( RGB 转换为 YUV) 、 在 YUV 色彩空间上彩噪去除与边缘加强、 色彩与对比度加强,中间还要进行自动曝光控制等, 然后输出 YUV( 或者 RGB) 格式的数据, 再通过 I/O 接口传输到 CPU 中处理。 以下对各个模块的处理算法做简要概述。 图像在将实际的景物转换为图像数据时, 通常是将传感器分别接收红、 绿、 蓝三个分量的信息, 然后将红、 绿、 蓝三个分量的信息合成彩色图像。 该方案需要三块滤镜, 这样价格昂贵,且不好制造, 因为三块滤镜都必须保证每一个像素点都对齐。 通过在黑白

h.264 去块滤波

匿名 (未验证) 提交于 2019-12-03 00:17:01
原作者: https://www.cnblogs.com/TaigaCon h.264 去块滤波 块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact)。 首先我们需要搞清楚块效应产生的原因。h.264在编码过程中对像素残差进行了DCT变换,变换后得到的DCT系数是与每个像素都相关的,这些系数代表了被变换数据的基础色调与细节。h.264在DCT变换后对DCT系数进行了量化,量化能有效去除相邻像素间的空间冗余,也就是说会抹去元素数据的部分细节。比较理想的情况是量化抹去人眼无法识别的细节部分,但是在低码率的情况下就会导致原始数据的细节丢失过多。而且,DCT变换时基于块的,即将8x8或者4x4的像素残差进行变换后得到8x8或者4x4DCT系数,此时如果进行了低码率的量化,就会使得相邻两个块的相关性变差,从而出现块效应。 h.264的运动补偿加剧了由变换量化导致的块效应。由于运动补偿块的匹配不可能绝对准确,各个块的残差大小程度存在差异,尤其是当相邻两个块所用参考帧不同、运动矢量或参考块的差距过大时,块边界上产生的数据不连续就更加明显。 块效应主要有两种形式:一种是由于DCT高频系数被量化为0,使得强边缘在跨边界处出现锯齿状,称为梯形噪声;另一种经常出现在平坦区域

opencv边缘检测

匿名 (未验证) 提交于 2019-12-03 00:12:02
比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易识别这条线作为边缘.也就是 像素的灰度值快速变化的地方 . 对于f(t),其导数f'(t)反映了每一处的变化趋势.在变化最快的位置其导数最大. sobel算子的思路就是模拟求一阶导数. sobel算子是一个离散差分算子.它计算图像像素点亮度值的近似梯度. 图像是二维的,即沿着宽度/高度两个方向. 我们使用两个卷积核对原图像进行处理: 水平方向 很好理解,原始像素灰度值-->(右边像素值-左边像素值),反映了水平方向的变化情况. 垂直方向 这样的话,我们就得到了两个新的矩阵,分别反映了每一点像素在水平方向上的亮度变化情况和在垂直方向上的亮度变换情况. 综合考虑这两个方向的变化 ,我们使用 反映某个像素的梯度变化情况. 有时候为了简单起见,也直接用绝对值相加替代. opencv里可以使用了如下的卷积核,可以"放大像素的变化情况". 可以参考这个函数 Scharr import cv2 as cv def test(): src = cv.imread("/home/sc/disk/keepgoing/opencv_test/sidetest.jpeg") src = cv.GaussianBlur(src, (3, 3), 0) gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) grad