接触式图像传感器的信号读取与补偿技术

来源:电子工程世界 作者:—— 时间:2010-07-07 09:00

图1是表示CIS的实际输出值的状态图(补偿前),首先把所有点中,最大的明输出值定义为Vpmax,最小的暗输出值定义为Vdmin。从图1中可以看出,每一点的明输出Vpi、暗输出Vdi与Vpmax、Vdmin之间都有一个偏差值ΔVp、ΔVd,所谓补偿就是要消除每一点的偏差值对画质的影响。

  补偿前,首先逐点测量CIS的明输出Vpi与暗输出Vdi,存入存储器。然后计算各点的补偿系数αi,并存入存储器,图2大体表达了明输出与补偿系数的分布,黑影部分就是当以为Vpmax目标时,每点需要补偿的值。

  αi =(Vpmax—Vdmin)/(Vpi—Vdi

  接下来介绍补偿系数αi的应用方法。

  扫描图像时,首先用A/D转换器对图像信息进行采样、量化,并取得各点的实际输出值Vi,然后利用下面的公式求得补偿后的数值Wi

  Wii×(Vi—Vdi

  图3中,白影部分表示的是实际输出值Vi,黑影部分表示的是补偿后的输出值Wi,它们的关系就如同上面介绍的补偿公式的关系。通过Wi就可以得到真实的图像信息。


用软件实现

  用C语言来实现计算过程。

  设明输出Vpi的文件名为MOUT

  设暗输出Vdi的文件名为AOUT

  设采样值Vi的文件名为CAI

  计算后αi的输出文件名为ALFA

  计算后Wi的输出文件名为WIV

  #include <stdio.h>
  main()
  { FILE *mfp, *afp, *cfp, *mbfp, *abfp,*af, *wi;
  FLOAT A,B,C,D,W,MAX,MIN;
  mfp=fopen(“MOUT”,“rb”);
  mbfp=mfp;
  afp=fopen(“AOUT”,“rb”);
  abfp=afp;
  cfp=fopen(“CAI”,“rb”);
  MAX=0.0;
  MIN=0.0;
  While(!feof(mfp))
  { scanf(mfp,“%f”,&A);
  scanf(afp,“%f”,&B);
  if (A>MAX) then MAX=A;
  if (B<MIN) then MIN=B;};
  mfp=mbfp;
  afp=abfp;
  af=fopen(“ALFA”,“wb”);
  wi=fopen(“WIV”,“wb”);
  while(!feof(mfp))
  { scanf(mfp,“%f”,&A);
  scanf(afp,“%f”,&B);
  scanf(cfp,“%f”,&C);
  D=(MAX-MIN)/(A-B);
  W=D*(C-B);
  fprintf(af,“%f”,D);
  fprintf(wi,“%f”,W);
  }
  fclose(mfp);fclose(afp);fclose(cfp);fclose(af);fclose(wi);

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子