Sub Pixel====亚像素值

原创 2012年03月30日 11:10:11

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

Sub Pixel;

  数码摄像机的成像面的分辨率以像素数量来衡量。隔行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的离散点阵,进而对该点阵进行插值。请参考下图,红色的点代表本来的像素点,黑色点代表新产生的亚像素点。

lcd刷新率计算方法

Framerate=pixel_rate/total_pixel; total_pixel=(X+h_b+h_f+h_w)*(Y+v_b+v_f_v_w); pixel_rate=Pclk...
  • liwei405499
  • liwei405499
  • 2014年12月18日 23:19
  • 431

【论文笔记】未分类_2016

【1】Kemelmacher-Shlizerman I, Seitz S M. Collection flow[C]//Computer Vision and Pattern Recognition ...
  • shaoxiaohu1
  • shaoxiaohu1
  • 2016年06月29日 17:24
  • 1802

【超分辨率】Efficient Sub-Pixel Convolutional Neural Network

论文全称: 《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional...
  • shwan_ma
  • shwan_ma
  • 2017年11月03日 22:44
  • 360

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neur...
  • weinidakaishijian
  • weinidakaishijian
  • 2017年07月20日 19:57
  • 988

下载Pixel, Nexus等谷歌亲儿子的源码的方法

如何下载Pixel, Nexus等机器的源码?强烈建议参考谷歌官方的下载文档,写的很详细,我这里把干的东东都提炼出来了,欢迎大家来参考. 细分版本 分支 版本 支持的设备 ...
  • jlspypxa1
  • jlspypxa1
  • 2017年07月27日 20:06
  • 903

像素是什么(What Is a Pixel)

像素是什么?也许大多数人并没有认真考虑过这个问题。很多人会说,像素?不就是个有颜色的小方块嘛。唔,其实它比你认为的要复杂一些。Blinn大神有一篇关于这个主题的非常好的文章,相信读完它你会对像素有个全...
  • natsu1211
  • natsu1211
  • 2014年04月25日 13:20
  • 1525

《A Sub-Pixel Edge Detector: an Implementation of the Canny/Devernay Algorithm》

论文《A Sub-Pixel Edge Detector: an Implementation of theCanny/Devernay Algorithm》提出了一种基于canny算法进行亚像素级边...
  • piaoxuezhong
  • piaoxuezhong
  • 2017年12月01日 21:41
  • 192

Opencv2.4.9源码分析——phaseCorrelate

相位相关法(phase correlate)可以用于检测两幅内容相同的图像之间的相对位移量。它是基于傅立叶变换的位移定理:一个平移过的函数的傅立叶变换仅仅是未平移函数的傅立叶变换与一个具有线性相位的指...
  • zhaocj
  • zhaocj
  • 2015年12月03日 11:10
  • 5873

[水文]生成模型1-PixelRNN

这里主要记录阅读NIPS 2016 Tutorial: Generative Adversarial Networks[1][视频]的一些笔记,还没有很深的理解...
  • PeaceInMind
  • PeaceInMind
  • 2017年03月03日 19:30
  • 3201

Python中正则表达式sub函数用法总结

正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub方法提供一个替换值,可以是字符串或函数,和一个要被处理的字符串。 1、这里的sub方法,是被编译成‘Reg...
  • hzliyaya
  • hzliyaya
  • 2016年09月10日 15:32
  • 14246
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sub Pixel====亚像素值
举报原因:
原因补充:

(最多只允许输入30个字)