DM6000处理图像的函数入口

void main()
{
	CSL_init();                                             
    CACHE_clean(CACHE_L2ALL, 0, 0);
    CACHE_setL2Mode(CACHE_64KCACHE);       
    CACHE_enableCaching(CACHE_EMIFA_CE00);
    CACHE_enableCaching(CACHE_EMIFA_CE01);
    DAT_open(DAT_CHAANY, DAT_PRI_LOW, DAT_OPEN_2D);
    
    SCOM_init();

    // name LOG objects to be used for error/warning/general/debug messages.
    tskVideoInputInit();
    tskVideoOutputInit();

    tskVideoInputStart();
    tskVideoOutputStart();//处理的地方,进入...

    /*-------------------------------------------------------*/
    /* create all SCOM and message objects                   */
    /*-------------------------------------------------------*/
	objSCOMINToDIS[0][0] = SCOM_create("IN1TODIS", NULL);
	objSCOMINToDIS[0][1] = SCOM_create("DISTOIN1", NULL);
	
	/*objSCOMINToDIS[1][0] = SCOM_create("IN2ATODIS", NULL);
	objSCOMINToDIS[1][1] = SCOM_create("DISTOIN2A", NULL);
	
	objSCOMINToDIS[2][0] = SCOM_create("IN2BTODIS", NULL);
	objSCOMINToDIS[2][1] = SCOM_create("DISTOIN2B", NULL); */   

}
void tskVideoOutput()
{
   	Int i;
	
	SCOM_Handle fromInput1toDIS,fromDIStoInput1;
//	SCOM_Handle fromInput2atoDIS,fromDIStoInput2a;
//	SCOM_Handle fromInput2btoDIS,fromDIStoInput2b;
		
	FVID_Frame *capFrameBuf;
	FVID_Frame *disFrameBuf;
    /*设置显示的行数*/
    Int numLinesDis = EVMDM642_vDisParamsChan.imgVSizeFld1;
    /*设置采集的行数*/
    Int numLinesCap = (EVMDM642_vCapParamsChan.fldYStop1 -
       			      EVMDM642_vCapParamsChan.fldYStrt1+1);
    /*判断是显示区域大,还是采集区域大,取其小者*/   
    Int numLines = (numLinesDis > numLinesCap) ? numLinesCap : numLinesDis;
    /*设置采集像素数*/
    Int numPixels = (EVMDM642_vCapParamsChan.fldXStop1 - 
       			    EVMDM642_vCapParamsChan.fldXStrt1+1);
    /*设置采集行的增量*/
    Int capLinePitch = (EVMDM642_vCapParamsChan.fldXStop1 - 
                       EVMDM642_vCapParamsChan.fldXStrt1+1);
    /*设置显示行的增量*/
    Int disLinePitch = EVMDM642_vDisParamsChan.imgHSizeFld1;
    
    numLines *= 2; /* both fields */
      		         
    /*打开SCOM模块*/
    fromInput1toDIS = SCOM_open("IN1TODIS");
	fromDIStoInput1 = SCOM_open("DISTOIN1");

    /*申请一个空间*/
    FVID_alloc(disChan, &disFrameBuf); 
    
    while(1)
    {
	 	/*-----------------------------------------------------------*/
	  	/* Wait for the message from the process task to recieve new */
	  	/* frame to be displayed.                                    */
	   	/*-----------------------------------------------------------*/
	 	capFrameBuf = (FVID_Frame *)SCOM_getMsg(fromInput1toDIS, SYS_FOREVER);
		
		/*将数据放入相应的显示缓冲区*/
    	for(i = 0; i < numLines; i ++) 
        {
            DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch, 
                     disFrameBuf->frame.iFrm.y1 + i * disLinePitch,
                     numPixels);
            DAT_copy(capFrameBuf->frame.iFrm.cb1 + i * (capLinePitch >> 1), 
                     disFrameBuf->frame.iFrm.cb1 + i * (disLinePitch >> 1),
                     numPixels>>1);

            DAT_copy(capFrameBuf->frame.iFrm.cr1 + i * (capLinePitch >> 1), 
                     disFrameBuf->frame.iFrm.cr1 + i * (disLinePitch >> 1),
                     numPixels>>1);
        }
        DAT_wait(DAT_XFRID_WAITALL);		         
		CACHE_clean(CACHE_L2ALL,NULL,NULL);
摄像的图像已经送进存储区,在此处写处理函数	
	   	/*-----------------------------------------------------------*/
	   	/* Display the decoded frame.                                */
	  	/*-----------------------------------------------------------*/
	    FVID_exchange(disChan, &disFrameBuf);
	
	  	/*-----------------------------------------------------------*/
		/* Send message to process task to continue                  */ 
		/*-----------------------------------------------------------*/
	 	SCOM_putMsg(fromDIStoInput1, NULL);/* loop forever */
    }	
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值