智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1800|回复: 6
打印 上一主题 下一主题

CCD采集问题

[复制链接]

9

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
威望
240
贡献
120
兑换币
128
注册时间
2014-12-31
在线时间
39 小时
跳转到指定楼层
1#
发表于 2015-2-1 12:36:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CCD在采集第一个点时,前边有一个延时,就是这个
    for(i = 0; i < 250; i++) {                    //更改250,让CCD的图像看上去比较平滑
      SamplingDelay() ;  //200ns                  //把该值改大或者改小达到自己满意的结果。
    }


这句怎么会使图像平滑,为什么要有这一句? 还有在官方测试自适应例程中,那个开始曝光函数有什么用,感觉有没有无所谓的样子。就是这个
void StartIntegration(void) {

    unsigned char i;

    SI_SetVal();            /* SI  = 1 */
    SamplingDelay();
    CLK_SetVal();           /* CLK = 1 */
    SamplingDelay();
    SI_ClrVal();            /* SI  = 0 */
    SamplingDelay();
    CLK_ClrVal();           /* CLK = 0 */

    for(i=0; i<127; i++) {
        SamplingDelay();
        SamplingDelay();
        CLK_SetVal();       /* CLK = 1 */
        SamplingDelay();
        SamplingDelay();
        CLK_ClrVal();       /* CLK = 0 */
    }
    SamplingDelay();
    SamplingDelay();
    CLK_SetVal();           /* CLK = 1 */
    SamplingDelay();
    SamplingDelay();
    CLK_ClrVal();           /* CLK = 0 */
} 求大神指点一二,新手上路,勿喷。

回复

使用道具 举报

9

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
威望
240
贡献
120
兑换币
128
注册时间
2014-12-31
在线时间
39 小时
2#
 楼主| 发表于 2015-2-1 12:38:38 | 只看该作者
来人啊
回复 支持 反对

使用道具 举报

9

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
威望
240
贡献
120
兑换币
128
注册时间
2014-12-31
在线时间
39 小时
3#
 楼主| 发表于 2015-2-1 12:39:23 | 只看该作者
:time::time:
回复 支持 反对

使用道具 举报

24

主题

1090

帖子

0

精华

常驻嘉宾

不会做车,只会瞎BB的毕业考研狗

Rank: 8Rank: 8

积分
5429

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
3088
贡献
663
兑换币
2343
注册时间
2012-11-4
在线时间
839 小时
毕业学校
河北联合大学
4#
发表于 2015-2-1 15:04:32 | 只看该作者
那延时不是第一个点之前延时,是每个点都延时,就像那个SamplingDelay();延时稍微长点确实有点让图像更好的效果,我试的时候发现的,不太理解为啥。还有那个自适应曝光的开始曝光函数,作用就是开启曝光,虽然采集的同时也可以曝光,但是为了可以调节曝光时间又不影响周期。还有觉得自适应曝光算法也就那么回事。
回复 支持 反对

使用道具 举报

9

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
威望
240
贡献
120
兑换币
128
注册时间
2014-12-31
在线时间
39 小时
5#
 楼主| 发表于 2015-2-1 15:43:59 | 只看该作者
旋风麦林 发表于 2015-2-1 15:04
那延时不是第一个点之前延时,是每个点都延时,就像那个SamplingDelay();延时稍微长点确实有点让图像更好的 ...

不是吧,
void ImageCapture(unsigned char * ImageData) {

    unsigned char i;
    extern u8 AtemP ;

    SI_SetVal();            /* SI  = 1 */
    SamplingDelay();
    CLK_SetVal();           /* CLK = 1 */
    SamplingDelay();
    SI_ClrVal();            /* SI  = 0 */
    SamplingDelay();

    //Delay 10us for sample the first pixel
    /**/
    for(i = 0; i < 250; i++) {                    //更改250,让CCD的图像看上去比较平滑
      SamplingDelay() ;  //200ns                  //把该值改大或者改小达到自己满意的结果。
    }

    //Sampling Pixel 1

    *ImageData =  ad_once(ADC1, AD6b, ADC_8bit);
    ImageData ++ ;
    CLK_ClrVal();           /* CLK = 0 */

    for(i=0; i<127; i++) {
        SamplingDelay();
        SamplingDelay();
        CLK_SetVal();       /* CLK = 1 */
        SamplingDelay();
        SamplingDelay();
        //Sampling Pixel 2~128

       *ImageData =  ad_once(ADC1, AD6b, ADC_8bit);
        ImageData ++ ;
        CLK_ClrVal();       /* CLK = 0 */
    }
    SamplingDelay();
    SamplingDelay();
    CLK_SetVal();           /* CLK = 1 */
    SamplingDelay();
    SamplingDelay();
    CLK_ClrVal();           /* CLK = 0 */
}这是完整的采集,后边127个是在第一个结束之后采的吧

回复 支持 反对

使用道具 举报

24

主题

1090

帖子

0

精华

常驻嘉宾

不会做车,只会瞎BB的毕业考研狗

Rank: 8Rank: 8

积分
5429

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
3088
贡献
663
兑换币
2343
注册时间
2012-11-4
在线时间
839 小时
毕业学校
河北联合大学
6#
发表于 2015-2-1 20:45:25 | 只看该作者
第一个点先采了,为啥循环还循环128次,我就不懂了。
回复 支持 反对

使用道具 举报

14

主题

69

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1489
威望
734
贡献
437
兑换币
458
注册时间
2013-10-22
在线时间
159 小时
7#
发表于 2015-2-1 20:50:19 | 只看该作者
能把 这个例程  发过来看看不
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-29 14:13 , Processed in 0.045513 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表