⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icetek-dm642-pci.c

📁 ICETEK-DM642-EDUlabv1.3.rar
💻 C
字号:
#include "math.h"
#include "ICETEK-DM642-PCI.h"

//工作变量
unsigned char m_dbFrameY[SIMGWIDTH*SIMGHEIGHT];
unsigned char m_dbFrameU[SIMGWIDTH1*SIMGHEIGHT1];
unsigned char m_dbFrameV[SIMGWIDTH1*SIMGHEIGHT1];
unsigned char m_dbTargetImageR[SIMGWIDTH*SIMGHEIGHT];
unsigned char m_dbTargetImageG[SIMGWIDTH*SIMGHEIGHT];
unsigned char m_dbTargetImageB[SIMGWIDTH*SIMGHEIGHT];
unsigned int m_uVideoStatus,m_bFreeze;

void ICETEKDM642PCIBoardInit()
{
	m_uVideoStatus=m_bFreeze=0;
}

void ICETEKDM642PCIYUVRGB()
{
	int i,j;
	int r,g,b,y,u,v;
	unsigned char *py,*pu,*pv,*pr,*pg,*pb;
	
	py=m_dbFrameY; pu=m_dbFrameU; pv=m_dbFrameV;
	pr=m_dbTargetImageR; pg=m_dbTargetImageG; pb=m_dbTargetImageB;
	for ( i=0;i<SIMGHEIGHT;i++ )   
	{  
		for ( j=0;j<SIMGWIDTH;j+=2 )   //列720点,360个32bit,
		{
			u=(*pu); v=(*pv); y=(*py);
			u-=128; v-=128;
			r=y+1.402*u;
			g=y-0.34414*u-0.71414*v;
			b=y+1.772*v;
			if ( r>255 )	r=255;
			else if ( r<0 )	r=0;
			if ( g>255 )	g=255;
			else if ( g<0 )	g=0;
			if ( b>255 )	b=255;
			else if ( b<0 )	b=0;
			(*pr)=r; pr++;
			(*pg)=g; pg++;
			(*pb)=b; pb++;
			py++; y=(*py);
			r=y+1.402*u;
			g=y-0.34414*u-0.71414*v;
			b=y+1.772*v;
			if ( r>255 )	r=255;
			else if ( r<0 )	r=0;
			if ( g>255 )	g=255;
			else if ( g<0 )	g=0;
			if ( b>255 )	b=255;
			else if ( b<0 )	b=0;
			(*pr)=r; pr++;
			(*pg)=g; pg++;
			(*pb)=b; pb++;
			py++; pu++; pv++;
		}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -