globalfunc.cpp

来自「边缘检测原代码. 边缘检测原代码.」· C++ 代码 · 共 47 行

CPP
47
字号
// GLoablFunc.cpp: 是全局函数
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Edge_detection.h"
#include "GlobalFunc.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

void DibXMatrix(CDIB *dib,double *m,int mW,int mH)
{
	int i,j,l,k;
	int width,height,strogeWidth;

	if( dib->BitCount() !=8 ) return;

	width=dib->Width();
	height=dib->Height();
	strogeWidth=dib->StorageWidth();

	CDIB tmpDib;
	tmpDib.CreateDIB(dib);

	for(i=0;i<height+1-mH;i++)
	for(j=0;j<width+1-mW;j++)
	{
		BYTE *pBit = tmpDib.GetPixelAddress(j,height-1-i);
		BYTE *pIBit = dib->GetPixelAddress(j,height-1-i);
		double dValue=0.0;
		for(l=0; l<mH; l++)
		for(k=0; k<mW; k++)
			dValue+= *(pIBit+l*strogeWidth+k)*m[l*mW+k];		
		// 对结果数据进行处理 
		 if(dValue<0)
			 dValue = 0;
		 else if( dValue>255 )
			 dValue=255;

		 *pBit = (BYTE)dValue;
	}
	dib->CreateDIB( &tmpDib,TRUE);
}

⌨️ 快捷键说明

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