icetek-dm642-pci.c

来自「本程序也是在CCS下运行的」· C语言 代码 · 共 58 行

C
58
字号
#include "ICETEK-DM642-PCI.h"

//工作变量
#pragma DATA_SECTION(nMemTemp, ".INTPROCBUFF");
#pragma DATA_ALIGN(nMemTemp,128);
unsigned char nMemTemp[720];
#pragma DATA_SECTION(nHisto, ".INTPROCBUFF");
#pragma DATA_ALIGN(nHisto,128);
unsigned int nHisto[256];
unsigned char imgHisto[HISTOHIGH*HISTOWIDTH];
int mi,mj,m_nWork1;
unsigned int m_nWork,*pWork,js;
unsigned char *pImg,*pImg1;

void ICETEKDM642PCIBoardInit()
{
	js=0;
	for ( mi=0;mi<HISTOHIGH*HISTOWIDTH;mi++ )
		imgHisto[mi]=1;
	for ( mi=0;mi<256;mi++ )
		nHisto[mi]=0;
}

#pragma CODE_SECTION(ICETEKDM642PCIStatistic,".text1")
void ICETEKDM642PCIStatistic()
{
	int i;
	for ( i=0;i<720;i++ )
	{
		nHisto[nMemTemp[i]]++;
	}
}

#pragma CODE_SECTION(ICETEKDM642PCIHistogram,".text1")
void ICETEKDM642PCIHistogram()
{
	m_nWork=0;
	for ( mi=0;mi<256;mi++ )
		if ( m_nWork<nHisto[mi] )
			m_nWork=nHisto[mi];//找出最大值			
	m_nWork/=(HISTOHIGH-1);
	for ( mi=0;mi<256;mi++ )//求显示比例
	{
		nHisto[mi]/=m_nWork;//除最大值再*127就是说让最多灰度值的地方显示为最高
	}
	for ( mi=0;mi<HISTOHIGH*HISTOWIDTH;mi++ )
		imgHisto[mi]=1;//直方图最初值为1即背景为黑色
	pImg=imgHisto; pImg+=((HISTOHIGH-1)*HISTOWIDTH); pImg++;
	for ( mi=1;mi<255;mi++,pImg++ )
	{
		for ( mj=0,pImg1=pImg;mj<nHisto[mi];mj++,pImg1-=HISTOWIDTH )
			(*pImg1)=200;
	}
//js++; js%=2;
	for ( mi=0;mi<256;mi++ )
		nHisto[mi]=0;
}

⌨️ 快捷键说明

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