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

📄 icetek-dm642-pci.c

📁 用RBF实现的目标图象识别程序,C实现,可以应用于DSP系统.
💻 C
字号:
#include "ICETEK-DM642-PCI.h" 
#include "BP.h"

//工作变量
#pragma DATA_SECTION(nMemTemp, ".INTPROCBUFF");
#pragma DATA_ALIGN(nMemTemp,128);
unsigned char nMemTemp[720];
#pragma DATA_SECTION(cLines, ".INTPROCBUFF");
#pragma DATA_ALIGN(cLines,128);
unsigned char cLines[MWIDTH*3];
int mi,mj,m_nWork1,m_nWork2;
unsigned int m_nWork,*pWork,m_nOffset1,m_nOffset2,m_nOffset3;
unsigned char *pImg,*pImg1,*pImg2,*pImg3;
unsigned char x1,x2,x3,x4,x5,x6,x7,x8,x9;
#pragma DATA_SECTION(cBuffer, ".INTPROCBUFF");
#pragma DATA_ALIGN(cBuffer,128);
unsigned char cBuffer[9],cWork; 
unsigned char imgHisto[HISTOHIGH*HISTOWIDTH];

void ICETEKDM642PCIBoardInit()
{
	m_nOffset1=0;
	m_nOffset2=MWIDTH;
	m_nOffset3=MWIDTH*2;
	for ( mi=0;mi<MWIDTH*2;mi++ )
		cLines[mi]=0; 
	for ( mi=0;mi<HISTOHIGH*HISTOWIDTH;mi++ )
		imgHisto[mi]=1;
}

#pragma CODE_SECTION(ICETEKDM642PCISobel,".text1")
void ICETEKDM642PCISobel()
{
	unsigned int m_nID;
	
    m_nID=DAT_copy(nMemTemp,cLines+m_nOffset3,MWIDTH);//这里的180指开始检测的像素值
	pImg1=cLines; pImg1+=m_nOffset1;
	pImg2=cLines; pImg2+=m_nOffset2;
	pImg3=cLines; pImg3+=m_nOffset3;
	x1=(*pImg1); pImg1++; x2=(*pImg1); pImg1++;
	x4=(*pImg2); pImg2++; x5=(*pImg2); pImg2++;
	x7=(*pImg3); pImg3++; x8=(*pImg3); pImg3++;
	for ( mi=0;mi<MWIDTH;mi++,pImg1++,pImg2++,pImg3++ )
	{
		x3=(*pImg1); x6=(*pImg2); x9=(*pImg3);
		m_nWork1=x7+x8+x8-x2-x2-x3;
		m_nWork2=x3+x6+x6-x4-x4-x7;
		if ( m_nWork1<m_nWork2 )
			m_nWork1=m_nWork2;
		m_nWork2=m_nWork1+x9-x1;
	//	m_nWork2=x2-x4+9*x5-x6-x8;
		if ( m_nWork2>255 )	m_nWork2=255;
		else if ( m_nWork2<0 )	m_nWork2=0;
	    nMemTemp[mi]=m_nWork2;//这里的180是指显示检测后图像在原图中的起始值
		x1=x2; x2=x3;
		x4=x5; x5=x6;
		x7=x8; x8=x9;
	}
	nMemTemp[mi]=0;
	m_nWork=m_nOffset1; m_nOffset1=m_nOffset2;
	m_nOffset2=m_nOffset3; m_nOffset3=m_nWork;
}

#pragma CODE_SECTION(ICETEKDM642PCIxianshi,".text1")
void ICETEKDM642PCIxianshi()
{
	for ( mi=0;mi<HISTOHIGH*HISTOWIDTH;mi++ )
	{
		imgHisto[mi]=255;
		//puts("yes\n");
	}                   
	pImg=imgHisto; 
	pImg+=((HISTOHIGH-1)*HISTOWIDTH); 
	pImg++;
	for ( mi=1;mi<255;mi++,pImg++ )
	{
		for(mj=0,pImg1=pImg;mj<nMemTemp[mi];mj++,pImg1-=HISTOWIDTH)
		{
			(*pImg1)=HISTOCOLOR;
			fprintf("yes\n");
		}
	}

    
}



⌨️ 快捷键说明

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