亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dm642main.c

?? DM642算法例程 圖像處理 基于DSPBIOS
?? C
字號:
/********************************************************************/
/*  Copyright 2004 by BTECH Incorporated.							*/
/*  All rights reserved. Property of BTECH Incorporated.				*/
/*  Restricted rights to use, duplicate or disclose this code are	*/
/*  granted through contract.									    */
/*  															    */
/********************************************************************/


/********************************************************************/
/*                     灰度的線性變換                               */
/*                    Db=intFA*Da+intFB;                            */
/********************************************************************/


#include <csl.h>
#include <csl_emifa.h>
#include <csl_i2c.h>
#include <csl_gpio.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include <csl_dat.h>
#include <csl_cache.h>
#include "iic.h"
#include "vportcap.h"
#include "vportdis.h"
#include "TVP51xx.h"
#include "TVP51xx.h"
#include "evmdm642.h"
#include "saa7105.h"


#define COLOR_DISP //是否彩色顯示

int portNumber;

/*圖像句柄的聲明*/
VP_Handle vpHchannel0;
VP_Handle vpHchannel1;
VP_Handle vpHchannel2;

/*確定圖像的參數*/
const int numPixels = 720;//每行720個像素
const int numLines  = 576;//每幀576行(PAL)
const int flamesize = 720*576;

/*線性變換參數設置*/
int intFA = 2;      //斜率
int intFB = -128;   //截距

/*確定處理的范圍*/
/*A             */
/*              */
/*             D*/ 
const int intAPixels = 190;
const int intALines = 59;
const int intDPixels = 530;
const int intDLines = 229; 

/*****畫矩形邊框函數的聲明*****/
void drawRectangle();
/*****進行灰度均衡處理*********/
void inteEqualize();



extern	Uint8 capChaAYSpace[720*588]; 
extern	Uint8 capChaACbSpace[360*588]; 
extern	Uint8 capChaACrSpace[360*588];
extern	Uint8 disChaAYSpace[720*588]; 
extern	Uint8 disChaACbSpace[360*588]; 
extern	Uint8 disChaACrSpace[360*588];

#pragma DATA_SECTION(tmpChaAYSpace, ".external") 
Uint8 tmpChaAYSpace[720*588];
#pragma DATA_SECTION(tmpChaACbSpace, ".external") 
Uint8 tmpChaACbSpace[360*588];
#pragma DATA_SECTION(tmpChaACrSpace, ".external") 
Uint8 tmpChaACrSpace[360*588];

/*采集與顯示緩沖區的首址*/
Uint32 capYbuffer  ;
Uint32 capCbbuffer ;
Uint32 capCrbuffer ;

Uint32 disYbuffer  ;
Uint32 disCbbuffer ; 
Uint32 disCrbuffer ;

Uint32 tempYbuffer ;    //臨時
Uint32 tempCbbuffer ;   //臨時
Uint32 tempCrbuffer ;   //臨時

/*圖像格式標志*/
Uint8 NTSCorPAL = 0;
extern far void vectors();
extern volatile Uint32 capNewFrame;
extern volatile Uint32 disNewFrame;

int i,j;
int intTemp;
	
Uint8 grayMap[256];  //灰度映射表
int intCount[256];   //第i級灰度計數
 
Int intArea ;  		//面積(總的像素)

/*此程序可將四個采集口的數據經過Video Port0送出*/
void main()
{

	int i;	
//	int dp_id,dp_id2;
	sysinit();
/*----------------------------------------------------------*/
	capYbuffer =  (Uint32)capChaAYSpace; 
	capCbbuffer = (Uint32)capChaACbSpace; 
	capCrbuffer = (Uint32)capChaACrSpace;
	disYbuffer  = (Uint32)disChaAYSpace;
	disCbbuffer = (Uint32)disChaACbSpace; 
	disCrbuffer = (Uint32)disChaACrSpace;
	tempYbuffer = (Uint32)tmpChaAYSpace;
	tempCbbuffer = (Uint32)tmpChaACbSpace;
	tempCrbuffer = (Uint32)tmpChaACrSpace;
/*----------------------------------------------------------*/
/*將Vedio Port1設為采集輸入*/
	portNumber = 1;
	vpHchannel1 = bt656_8bit_ncfc(portNumber);
	bt656_capture_start(vpHchannel1);
	/*等待第一幀數據采集完成*/
	while(capNewFrame == 0){}
	/*將數據存入顯示緩沖區,并清采集完成的標志*/
	capNewFrame =0;
	for(i=0;i<numLines;i++)
	{
		/*傳送臨時Y緩沖區*/
		DAT_copy((void *)(capYbuffer + i * numPixels), 
	             (void *)(tempYbuffer + i * numPixels),
	             numPixels);			  
	 }

    /*畫邊框*/    
    drawRectangle(); 
    
	/*進行灰度均衡處理*/
	inteEqualize();
	 
	for(i=0;i<0x33ae0;i++)
	{
	    *((Uint8 *)(disCrbuffer +i)) =0x80;
	    *((Uint8 *)(disCbbuffer +i)) =0x80;

	}

    for(i=0;i<numLines;i++)
	{
		/*傳送Y緩沖區*/
	    DAT_copy((void *)(tempYbuffer + i * numPixels), 
	             (void *)(disYbuffer + i * numPixels),
	             numPixels);			 
	 }		 
	   
	/*啟動顯示模塊*/
	bt656_display_start(vpHchannel2);
	/*建立顯示的實時循環*/
	for(;;)
	{
		/*當采集區的數據已經采集好,而顯示緩沖區的數據已空*/
		if(capNewFrame == 1)
		{
			/*將數據裝入顯示緩沖區,并清采集完成的標志*/
			capNewFrame =0;
			for(i=0;i<numLines;i++)
			{
				/*傳送臨時Y緩沖區*/
				DAT_copy((void *)(capYbuffer + i * numPixels), 
			             (void *)(tempYbuffer + i * numPixels),
			             numPixels);

			   #ifdef COLOR_DISP //是否彩色顯示
				/*傳送Cb緩沖區*/
			   DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)), 
			             (void *)(disCbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*傳送Cr緩沖區*/
			   DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)), 
			             (void *)(disCrbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				#endif          			   
			 }
			 DAT_wait(DAT_XFRID_WAITALL);				    
		    /*畫邊框*/    
		    drawRectangle(); 	
		   
		 	/*進行灰度均衡處理*/
			inteEqualize();
		}
		if(disNewFrame == 1)
		{	
			disNewFrame = 0;
	        for(i=0;i<numLines;i++)
			{
				/*傳送Y緩沖區*/
			    DAT_copy((void *)(tempYbuffer + i * numPixels), 
			             (void *)(disYbuffer + i * numPixels),
			             numPixels);			             			 
			 }
			 DAT_wait(DAT_XFRID_WAITALL);			
		 
		}
		EVMDM642_GPIO_ledblink();//led blink for every frame.
		
	}
	
	for(;;)
	{}
  /*----------------------------------------------------------*/
	/*采集與回放*/
		
}  



/*畫矩形邊框函數的定義*/
void drawRectangle()
{
    int i,j;
    /*畫上邊*/
    //奇數行
    for(i=intALines-4;i<intALines;i++)  //邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}	
	
	//偶數行
	for(i=numLines/2+intALines-4;i<numLines/2+intALines;i++)  //邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}


	/*畫下邊*/
	//奇數行
    for(i=intDLines;i<intDLines+4;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
	for(i=numLines/2+intDLines;i<numLines/2+intDLines+4;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}	

	
	/*畫左邊*/
	//奇數行
    for(i=intALines;i<intDLines;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intAPixels;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intAPixels;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	
	/*畫右邊*/
	//奇數行
    for(i=intALines;i<intDLines;i++)//邊框長度
	{
	    for(j=intDPixels;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//邊框長度
	{
	    for(j=intDPixels;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
} 

/*進行灰度均衡處理*/
void inteEqualize()
{
	
	 intArea = (intDPixels-intAPixels)*(intDLines-intALines)*2;  //面積(總的像素)
	/*重置計數為0*/ 
	for(i=0;i<256;i++)
	{
		//清零
		intCount[i]=0;		
	}	 
	 
	/*計算各個灰度值得計數*/
	//方框內奇數行
	for(i=intALines;i<intDLines;i++)
	{
	    for(j=intAPixels;j<intDPixels;j++) 
	    {		
            intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);          
		    //計數加1
		    intCount[intTemp]++;   
		}	 
	}
	
	//方框內偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)
	{
	    for(j=intAPixels;j<intDPixels;j++) 
	    {		
            intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);          
		    //計數加1
		    intCount[intTemp]++;  
		}	 
	}
	
	/*計算灰度映射表*/
	for(i=0;i<256;i++)
	{
		//初始化為0
		intTemp = 0;
		for(j=0;j<=i;j++)
		{
			intTemp+=intCount[j];
		}
		//計算對應的新灰度值
		grayMap[i] = (Uint8)(intTemp*255/intArea);
	}
	
	/*進行灰度均衡,重新賦值*/
	//方框內奇數行

	for(i=intALines;i<intDLines;i++)
	{
	    for(j=intAPixels;j<intDPixels;j++) 
	    {		
            intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);          
		    //賦新的灰度值
		    *(Uint8 *)(tempYbuffer + i*numPixels + j) = grayMap[intTemp]; 
		}	 
	}
	//方框內偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)
	{
	    for(j=intAPixels;j<intDPixels;j++) 
	    {		
            intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);          
		    //賦新的灰度值
		    *(Uint8 *)(tempYbuffer + i*numPixels + j) = grayMap[intTemp];  
		}	 
	}	
}


 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产福利在线观看| **性色生活片久久毛片| 色爱区综合激月婷婷| 成人午夜短视频| 91美女精品福利| 欧美人狂配大交3d怪物一区| 91.xcao| 精品国产凹凸成av人导航| 国产欧美日韩视频在线观看| 99视频有精品| 欧美亚洲自拍偷拍| 久久久久久久综合色一本| 国产精品成人在线观看| 亚洲一区二区三区自拍| 韩国v欧美v亚洲v日本v| 99re视频精品| 日韩女优av电影| 91在线国产观看| 日韩一区二区在线看片| 1区2区3区国产精品| 日本不卡的三区四区五区| 不卡一区二区在线| 欧美一区二区久久久| 国产精品国产三级国产aⅴ原创| 亚洲精品日韩综合观看成人91| 日韩国产高清影视| 成av人片一区二区| 欧美精彩视频一区二区三区| 午夜欧美一区二区三区在线播放| 国产主播一区二区三区| 8v天堂国产在线一区二区| 精品粉嫩超白一线天av| 日韩美女视频19| 欧美日韩电影一区| 国产在线精品一区二区| 中文字幕日韩av资源站| 欧美人与性动xxxx| 粉嫩绯色av一区二区在线观看| 亚洲精品久久7777| 精品国产电影一区二区| 欧美日韩黄色影视| 免费人成黄页网站在线一区二区| 精品日韩一区二区三区| 91小视频在线| 国产不卡在线播放| 日韩成人免费在线| 亚洲精品中文字幕乱码三区| 精品日本一线二线三线不卡| 在线观看免费一区| 蜜臀av在线播放一区二区三区 | 亚洲成人一区二区在线观看| 一区二区三区高清| 欧美一级日韩一级| 成人性生交大片免费看在线播放| 国产精品国产三级国产三级人妇 | 一区二区中文字幕在线| 欧美色手机在线观看| 国产成人自拍高清视频在线免费播放| 国产精品毛片高清在线完整版| 91麻豆国产福利精品| 婷婷国产在线综合| 精品成人a区在线观看| av在线这里只有精品| 日韩电影免费一区| 亚洲综合无码一区二区| 亚洲色图在线看| 亚洲电影视频在线| 久久精品99久久久| 日韩av中文在线观看| 亚洲一区免费观看| 一区二区三区中文字幕在线观看| 亚洲精品一区二区精华| 欧美一区二区三区在线看| 91麻豆精品国产91| 欧美一二三区在线观看| 国内精品视频666| 激情欧美一区二区三区在线观看| 欧美久久一二区| 日韩欧美成人激情| 国产丝袜美腿一区二区三区| 亚洲人成人一区二区在线观看| 最好看的中文字幕久久| 国产女同互慰高潮91漫画| 不卡的av在线| 亚洲美女视频在线| 精品国产亚洲一区二区三区在线观看 | 久久免费电影网| 精品三级av在线| 奇米精品一区二区三区在线观看一| 26uuu另类欧美亚洲曰本| 一本色道久久综合亚洲91| 波多野结衣在线一区| 日韩av一级片| 日本怡春院一区二区| 日韩三级免费观看| 欧美一区二区视频在线观看| 91精品国产综合久久福利| 日韩精品一区二| 国产视频亚洲色图| 中文字幕日韩精品一区| 亚洲五月六月丁香激情| 偷拍自拍另类欧美| 久久91精品久久久久久秒播| 激情综合色播激情啊| 国产精品一区二区久久不卡| 国产精品一区二区男女羞羞无遮挡 | 九色综合狠狠综合久久| 国产一区二区女| 91丝袜呻吟高潮美腿白嫩在线观看| 一本大道综合伊人精品热热| 欧美高清性hdvideosex| 久久久美女艺术照精彩视频福利播放| 久久久99久久| 洋洋av久久久久久久一区| 免费在线欧美视频| 成人综合激情网| 欧美日本一区二区三区| 精品国产乱码久久久久久老虎 | 中文字幕一区二区三中文字幕| 亚洲午夜久久久久久久久电影院| 美日韩一区二区三区| 99九九99九九九视频精品| 欧美精品 国产精品| 日本韩国精品在线| 成人国产免费视频| 欧美女孩性生活视频| 国产婷婷一区二区| 丝袜诱惑亚洲看片| 成人ar影院免费观看视频| 91精品国产一区二区三区蜜臀 | 一区二区三区在线视频免费| 蜜臀久久99精品久久久画质超高清 | 精品综合久久久久久8888| av电影天堂一区二区在线| 欧美电影一区二区三区| 亚洲欧洲国产日本综合| 精品一区二区三区不卡 | 欧美日韩三级在线| 国产精品色呦呦| 免费高清在线视频一区·| 色综合一区二区| 欧美韩国日本综合| 国产性天天综合网| 国产成人免费在线观看| 欧美日韩小视频| 欧美午夜影院一区| 国产精品久久久久影院亚瑟 | 亚洲人精品午夜| 91蝌蚪porny成人天涯| 国产无一区二区| 国产伦精品一区二区三区免费| 综合欧美一区二区三区| 国产精品1区2区| 中文字幕一区二区三区乱码在线| 欧洲精品中文字幕| 欧美日韩在线不卡| 精品国产凹凸成av人导航| yourporn久久国产精品| 日韩视频一区二区在线观看| 亚洲成av人片在线观看无码| 色爱区综合激月婷婷| 亚洲女同ⅹxx女同tv| jlzzjlzz国产精品久久| 久久精品亚洲乱码伦伦中文| 美洲天堂一区二卡三卡四卡视频| 91精品国产综合久久久蜜臀粉嫩| 精品视频全国免费看| 亚洲一级在线观看| 在线看不卡av| 亚洲一卡二卡三卡四卡无卡久久| 91在线观看美女| 亚洲另类中文字| 色94色欧美sute亚洲线路一久| 中文字幕在线免费不卡| www.成人在线| 一区二区三区在线看| 日本精品免费观看高清观看| 亚洲午夜电影网| 日韩小视频在线观看专区| 久久国产三级精品| 国产午夜久久久久| av在线不卡观看免费观看| 欧美高清在线视频| 99久久精品一区二区| 国产精品久久久久精k8| 亚洲午夜在线观看视频在线| 欧美高清精品3d| 激情欧美一区二区| 中文久久乱码一区二区| 99精品视频在线观看免费| 一区二区三区在线观看视频 | 不卡的电视剧免费网站有什么| 国产精品第五页| 欧美午夜一区二区| 另类成人小视频在线| 久久久久99精品国产片| 色综合久久精品| 免费在线观看日韩欧美| 国产视频不卡一区| 欧美三级日韩在线|