转自 http://baike.baidu.com/view/2615333.htm

亚像素   英文 Pixel

定义:

面阵摄像机的成像面以像素为最小单位。例如某CMOS摄像芯片,其像素间距为5.2微米。摄像机拍摄时,将物理世界中连续的图像进行了离散化处理。到成像面上每一个像素点只代表其附近的颜色。至于“附近”到什么程度?就很难解释。两个像素之间有5.2微米的距离,在宏观上可以看作是连在一起的。但是在微观上,它们之间还有无限的更小的东西存在。这个更小的东西我们称之为“亚像素”。实际上“亚像素”应该是存在的,只是硬件上没有个细微的传感器把它检测出来。于是软件上把它近似地计算出来。

计算:

  数码摄像机的成像面的分辨率以像素数量来衡量。隔行TV的分辨率是576x768个像素。 像素中心之间的距离有几个至十几个微米不等。为了最大限度利用图像信息来提高分辨率,有人提出了Sub-Pixel概念。意思是说,在两个物理像素之间还有像素,称之为Sub-Pixel,它完全是通过计算方法的出来的。这里提出计算方法。

  如果原始图像是n行m列的,希望做k细分的Sub-Pixel,这样就有新的行N和列M,有

  N = k*n

  M = k*m

  原来相邻4个像素包含的区域现在变成了(k+1)*(k+1)的区域了;要填满这个(k+1)*(k+1)的区域,实际上就是从一个小正方形映照到一个大正方形的过程。在数学上用双线性插值得算法可以轻松搞定。(二次或者三次样条曲线)。下面是算法的代码:

  XYPNT qdot(

  XYPNT d[4], //d[4] 顺时针排列

  XYPNT a //含有要插入的点的位置

  ){

  XYPNT r; //工作单元

  int i;

  float x0,y0,x1,y1; //

  PNT z[4];

  float ap,bt,ax,ay;

  x0=d[0].q.x;y0=d[0].q.y;

  x1=d[2].q.x;y1=d[2].q.y;

  r=a;

  ax=a.q.x;ay=a.q.y;

  for(i=0;i<4;i++)z[i]=d[i].pnt;

  ap=(ax-x0)/(x1-x0);bt=(ay-y0)/(y1-y0);

  r.pnt.r=(1.-ap)*(1.-bt)*z[0].r+bt*(1.-ap)*z[3].r+ap*(1.-bt)*z[1].r+ap*bt*z[2].r;

  r.pnt.g=(1.-ap)*(1.-bt)*z[0].g+bt*(1.-ap)*z[3].g+ap*(1.-bt)*z[1].g+ap*bt*z[2].g;

  r.pnt.b=(1.-ap)*(1.-bt)*z[0].b+bt*(1.-ap)*z[3].b+ap*(1.-bt)*z[1].b+ap*bt*z[2].b;

  return r;

  }

  其中数据结构:

  struct PNT{BYTE b,g,r;}; //像素的颜色

  struct DXY{short x,y;}; //像素的坐标

  struct XYPNT{ //像素的全信息

  DXY q;

  PNT pnt;};

  调用示例:

  for(i=0;i<HEight;i++)for(j=0;j<WIdth;j++){

  d[0].q.x=j*xf ; d[0].q.y=i*xf; d[0].pnt=*(buf+i*WIdth+j);

  d[1].q.x=(j+1)*xf; d[1].q.y=i*xf; d[1].pnt=*(buf+i*WIdth+j+1);

  d[2].q.x=(j+1)*xf; d[2].q.y=(i+1)*xf; d[2].pnt=*(buf+(i+1)*WIdth+j+1);

  d[3].q.x=j*xf ; d[3].q.y=(i+1)*xf; d[3].pnt=*(buf+(i+1)*WIdth+j);

  for(i0=0;i0<xf;i0++)for(j0=0;j0<xf;j0++){

  aa.q.x=j*xf+j0;aa.q.y=i*xf+i0;

  rr=qdot(d,aa);

  *(Buf+aa.q.y*WIDTH+aa.q.x)=rr.pnt;

  }

  }

  其中xf是插入亚像素的个数,也即放大倍数;Height和Width是原始图像的尺寸;HEIGHT和WIDTH是方大xf倍的尺寸;原始图片存放在buf中,目标图片存放在Buf中。

  亚像素的精度:

  亚像素精度是指相邻两像素之间细分情况。输入值通常为二分之一,三分之一或四分之一。这意味着每个像素将被分为更小的单元从而对这些更小的单元实施插值算法。例如,如果选择四分之一,就相当于每个像素在横向和纵向上都被当作四个像素来计算。因此,如果一张5x5像素的图像选择了四分之一的亚像素精度之后,就等于创建了一张16x16的离散点阵,进而对该点阵进行插值。请参考下图,红色的点代表本来的像素点,黑色点代表新产生的亚像素点。

但是还有一些疑问:

1.亚像素点对图像本身的清晰度有没有什么影响?

2.为什么要使用亚像素呢?

亚像素(Pixel)相关推荐

  1. 亚像素Sub Pixel

    亚像素Sub Pixel 评估图像处理算法时,通常会考虑是否具有亚像素精度. 亚像素概念的引出: 图像处理过程中,提高检测方法的精度一般有两种方式:一种是提高图像系统的光学放大倍数和CCD相机的分辨率 ...

  2. 深入理解——亚像素 / sub-pixel、亚像素卷积

    目录 1.1 亚像素理解 1.2 何谓亚像素? 1.3 何谓亚像素精度? 摘要: 2 图像处理中的sub-pixel是什么意思? 3 PixelShuffle(像素重组) 1.1 亚像素理解 在相机成 ...

  3. cv::cornerSubPix()亚像素角点检测

    转自https://blog.csdn.net/guduruyu/article/details/69537083 cv::goodFeaturesToTrack()提取到的角点只能达到像素级别,在很 ...

  4. 图像处理之角点检测与亚像素角点定位

    图像处理之角点检测与亚像素角点定位 角点是图像中亮度变化最强地方反映了图像的本质特征,提取图像中的角点可以有效提高图像处理速度与精准度.所以对于整张图像来说特别重要,角点检测与提取的越准确图像处理与分 ...

  5. OpenCv-C++-亚像素级别角点检测(检测子像素中的corner的位置)

    使用亚像素级别角点检测,返回角点的浮点数值,它的精度比整数像素更准确.可以用cornerSubPix()函数将角点定位到子像素,从而取得亚像素级别的角点检测效果. 使用函数: void cv::cor ...

  6. opencv亚像素边缘精度_opencv 亚像素 算法

    亚像素算法亚像素算法的基本思路就是将一个像素再分为更小的单位. 也就是说 1 个像素的灰度值分为 256 级. 所以, 以这类系统为例, 进行亚像素计算就要把像 素分为 255 个小单位. 或许, 可 ...

  7. psf python_python-从图像堆叠星型PSF;对齐亚像素中心

    我有一个(1727,1853)大小数组(图像),在其中确定了恒星以模拟点扩散函数.数组的每个索引对应于一个图像坐标,但是,每个星星的质心由一个子像素坐标给出.我必须执行以下操作 >制作每个星星的 ...

  8. 【深度学习笔记】亚像素 / sub-pixel、亚像素卷积

    近段时间需要用到亚像素卷积的知识,因此上网查阅了论文和资料,此文是根据网上的博文以及相关论文,依据个人的理解整理而来. 总而言之,拾人牙慧而已. Content 1 亚像素的定义 1.1 亚像素理解 ...

  9. Zernik矩亚像素边缘检测

    Zernik矩亚像素边缘检测 在网上看到有人写的Zernike矩亚像素边缘检测,发现存在很大的问题,赌气自己写了一个版本,力求精简,没有做过多优化.模板采用(7,7),借用Opencv的数据结构.如有 ...

最新文章

  1. 花了两天,终于把 Python 的 setup.py 给整明白了
  2. Docker Desktop添加对Kubernetes的支持
  3. dom不刷新 vue 加数据后_高频出现的Vue 面试题及答案
  4. Microsoft photosynth(图片三维展示)
  5. 流感传染(信息学奥赛一本通-T1191)
  6. C/C++中位运算操作符的使用
  7. (26) CSS3 2D转换transform
  8. indesign如何画弧线_【美妆】鼻影怎么画,才能拥有比例完美的鼻子?
  9. 洛谷 P2324 [SCOI2005]骑士精神
  10. idea 搜索不到gsonformat_idea之GsonFormat插件使用
  11. 5分钟搞懂如何在Spring Boot中Schedule Tasks
  12. 远程服务器学习总结篇1:ssh
  13. VFP用Foxjson玩转JSON,超简单的教程
  14. 一部电影晓生活-韩国
  15. 前端实现Word在线预览
  16. 服务器c盘有个inetpub文件夹,inetpub是什么文件夹
  17. 无线通信学习笔记(三)
  18. 寄给J.Keisler教授的一电子生日贺卡
  19. 微信小程序——打开地图 选择位置 完整功能实现代码(定位,检索周边,可移动选点,可搜索,腾讯地图API)
  20. 面试过程中经常会问到的职业规划,该如何作答

热门文章

  1. 计算机网教答辩,计算机论文答辩老师一般问些什么问题?需要怎么回答?
  2. Blackbox_exporter概述
  3. tensorflow入门教程(三十五)facenet源码分析之MTCNN--人脸检测及关键点检测
  4. 【计算几何7】帝国边界划分问题【Voronoi图的原理】
  5. Cannot open output file: Permission denied 的处理方式
  6. 开发Python用什么工具好?
  7. 15 个 “高效实用” 的Python工具库!
  8. 开源推荐 | 基于 Laravel 的博客 CMS 系统
  9. MIPS微程序CPU设计
  10. mca允许安装任何来源