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

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

?? globalapi.h

?? 用VC ++編寫的canny邊緣檢測算子!很不錯的!希望大家下載學習!
?? H
字號:
#ifndef _GLOBAL_API
#define _GLOBAL_API


#include <math.h>
#include "cdib.h"
#include "ColorTable.h"
#include <complex>
using namespace std;

//----------------------------------------------------------------------
// DIB處理函數
BOOL DIBShow(CFile* pFile);
BOOL ConvertDDBToDIB(HBITMAP hBitmap, CDib* pDibDest, HPALETTE hPal);
BOOL CopyDIB(CDib* pDibSrc, CDib* pDibDst);
BOOL CopyScreenToDIB(LPRECT lpRect, CDib* pDibDest);
HPALETTE GetSystemPalette() ;
HPALETTE CopyPalette(HPALETTE hPalSrc);
BOOL ReadDIB(CFile* pFile, LPBITMAPINFOHEADER lpBMIH, LPBYTE lpImage);
HPALETTE MakeDIBPalette(LPVOID lpvColorTable,  LPBITMAPINFOHEADER lpBMIH);
BOOL PaintDIB(CDC* pDC, LPBITMAPINFOHEADER lpBMIH, LPBYTE lpImage, CPoint origin, CSize size, HPALETTE hPalette);

//----------------------------------------------------------------------
// 運動檢測
BOOL GetBackground(CString strFilePath, int nTotalFrameNum, int nImageWidth, 
		   int nImageHeight, unsigned char* pUnchBackGround);
BOOL LoadDibSeq(CString strFilePath, int nCurFrameNum, int nTotalFrameNum, CDib* pDib);
CString GetFileName(CString strFilePathName, int nCurFrameNum);
void BinaFrameDiff(unsigned char *pUnchImg1, unsigned char *pUnchImg2, 
		  int nWidth, int nHeight, unsigned char * pUnchResult,
		  int nThreshold=10);
void ErodeFrameDiff(unsigned char *pUnchImg, int nWidth, int nHeight, int nErodeHalfWin, 
	   int nErodeThreshold, unsigned char *pUnchResult);

//----------------------------------------------------------------------
// 圖象分割
void RegionSegFixThreshold(CDib * pDib, int nThreshold=100);
void RobertsOperator(CDib * pDib, double * pdGrad);
void LaplacianOperator(CDib * pDib, double * pdGrad);
void EdgeTrack(CDib * pDib, unsigned char * pUnEdgeTrack);
void RegionGrow(CDib * pDib, unsigned char * pUnRegion, int nThreshold = 10);
void RegionSegAdaptive(CDib * pDib) ;
void SobelOperator(CDib * pDib, double * pdGrad);
void PrewittOperator(CDib * pDib, double * pdGrad);
	// canny 算子
void GaussianSmooth(unsigned char *pUnchImg, int nWidth, int nHeight, double sigma, unsigned char * pUnchSmthdImg);
void MakeGauss(double sigma, double **pdKernel, int *pnWindowSize) ; 
void DirGrad(unsigned char *pUnchSmthdImg, int nWidth, int nHeight,
						 int *pnGradX , int *pnGradY);
void GradMagnitude(int *pnGradX, int *pnGradY, int nWidth, int nHeight, int *pnMag) ; 
void NonmaxSuppress(int *pnMag, int *pnGradX, int *pnGradY, int nWidth, int nHeight,	unsigned char *pUnchRst);
void EstimateThreshold(int *pnMag, int nWidth, int nHeight, int *pnThdHigh,int *pnThdLow, 
											 unsigned char * pUnchEdge, double dRatioHigh, double dRationLow) ;
void Canny(unsigned char *pUnchImage, int nWidth, int nHeight, double sigma,
					 double dRatioLow, double dRatioHigh, unsigned char *pUnchEdge) ;
void Hysteresis(int *pnMag, int nWidth, int nHeight, double dRatioLow, 
								double dRatioHigh, unsigned char *pUnchEdge) ;
void TraceEdge (int y, int x, int nLowThd, unsigned char *pUnchEdge, int *pnMag, int nWidth) ;


// 小波變換函數原型
// Daubechies緊致正交小波基
// 不同支撐區間長度下的濾波器系數如下
const double hCoef[10][20] =
{
	{ .707106781187,  .707106781187},

	{ .482962913145,  .836516303738,  .224143868042, -.129409522551 },

	{ .332670552950,  .806891509311,  .459877502118, -.135011020010, -.085441273882,  .035226291882 },

	{ .230377813309,  .714846570553,  .630880767930, -.027983769417,
	 -.187034811719,  .030841381836,  .032883011667, -.010597401785 },

	{ .160102397974,  .603829269797,  .724308528438,  .138428145901, -.242294887066,
	 -.032244869585,  .077571493840, -.006241490213, -.012580751999,  .003335725285 },

	{ .111540743350,  .494623890398,  .751133908021,  .315250351709, -.226264693965,
	 -.129766867567,  .097501605587,  .027522865530, -.031582039318,  .000553842201,
	  .004777257511, -.001077301085 },

	{ .077852054085,  .396539319482,  .729132090846,  .469782287405, -.143906003929,
	 -.224036184994,  .071309219267,  .080612609151, -.038029936935, -.016574541631,
	  .012550998556,  .000429577973, -.001801640704,  .000353713800 },

	{ .054415842243,  .312871590914,  .675630736297,  .585354683654, -.015829105256,
	 -.284015542962,  .000472484574,  .128747426620, -.017369301002, -.044088253931,
	  .013981027917,  .008746094047, -.004870352993, -.000391740373,  .000675449406,
	 -.000117476784 },

	{ .038077947364,  .243834674613,  .604823123690,  .657288078051,  .133197385825,
	 -.293273783279, -.096840783223,  .148540749338,  .030725681479, -.067632829061,
	  .000250947115,  .022361662124, -.004723204758, -.004281503682,  .001847646883,
	  .000230385764, -.000251963189,  .000039347320 },

	{ .026670057901,  .188176800078,  .527201188932,  .688459039454,  .281172343661,
	 -.249846424327, -.195946274377,  .127369340336,  .093057364604, -.071394147166,
	 -.029457536822,  .033212674059,  .003606553567, -.010733175483,  .001395351747,
	  .001992405295, -.000685856695, -.000116466855,  .000093588670, -.000013264203 }
};

BOOL DWT_1D(double* pDbSrc, int nMaxLevel,int nDWTSteps, int nInv, int nStep, int nSupp);
BOOL DWTStep_1D(double* pDbSrc, int nCurLevel,int nInv, int nStep, int nSupp);
BOOL DWT_2D(double* pDbSrc, int nMaxWLevel, int nMaxHLevel, int nDWTSteps, int nInv, int nStep, int nSupp);
BOOL DWTStep_2D(double* pDbSrc, int nCurWLevel, int nCurHLevel,	int nMaxWLevel, int nMaxHLevel, int nInv, int nStep, int nSupp);	
BOOL ImageDWT(LPBYTE lpImage, int nMaxWLevel, int nMaxHLevel,int nDWTSteps, int nInv, int nStep, int nSupp);
int Log2(int n);
BYTE FloatToByte(double f);
char FloatToChar(double f);


//----------------------------------------------------------------------
// 圖象增強函數
BOOL GraySegLinTrans(CDib* pDib, int nX1, int nY1, 
					 int nX2, int nY2);					// 分段線性變換
BOOL HistogramEqualize(CDib* pDib);						// 直方圖均衡化
BOOL  GeneralTemplate(CDib* pDib,  int nTempWidth, int nTempHeight,	
					 int nTempCenX, int nTempCenY,
					 double* pdbTemp, double dbCoef);	// 通用模板操作
BOOL MedianFilter(CDib* pDib,  int nTempWidth, int nTempHeight, 
				 int nTempCenX, int nTempCenY);			// 中值濾波
unsigned char  GetMedianValue(unsigned char * pUnchFltValue, int iFilterLen);	// 獲取中值
BOOL  ReplaceDIBColorTable(CDib* pDib, LPBYTE  pColorsTable);			// 替換DIB顏色表

void LowPassFilterEnhance(LPBYTE lpImage, int nWidth, int nHeight, int nRadius) ;// 低通濾波
void HighPassFilterEnhance(LPBYTE lpImage, int nWidth, int nHeight, int nRadius);// 高通濾波
void ButterWorthLowPass(LPBYTE lpImage, int nWidth, int nHeight, int nRadius);	//  ButterWorth低通濾波
void ButterWorthHighPass(LPBYTE lpImage, int nWidth, int nHeight, int nRadius);	//  ButterWorth高通濾波
void LinearSharpen (LPBYTE lpImage, int nWidth, int nHeight);			//  線性銳化增強

//-----------------------------------------------------------------------
// imageview.cpp函數原型
BOOL LimbPatternBayer(CDib *pDib);
BOOL DitherFloydSteinberg(CDib *pDib);

//--------------------------------------------------------------------------
// 圖象分析函數原型
BOOL DIBHOLENUMBER(CDib *pDib);
BOOL DIBMOMENT(CDib *pDib);
BOOL DIBBARYCENTERMOMENT(CDib *pDib);
BOOL DIBFREAMEWORK(CDib *pDib);
BOOL DIBCHESSBOARDDISRESTORE(CDib *pDib);
BOOL DIBSTREETDIS(CDib *pDib);
BOOL DIBOUTLINE(CDib *pDib);
BOOL WINAPI DIBTrace(CDib *pDib);

//-------------------------------------------------------------------------------------
// 圖象變換函數原型
VOID WINAPI FFT_1D(complex<double> * pCTData, complex<double> * pCFData, int nLevel);
VOID WINAPI IFFT_1D(complex<double> * pCFData, complex<double> * pCTData, int nLevel);
VOID WINAPI IFFT_2D(complex<double> * pCFData, complex<double> * pCTData, int nWidth, int nHeight);
VOID WINAPI IDFT_2D(CDib * pDib,double * pTrRstRpart, double * pTrRstIpart);
VOID WINAPI WINAPI DCT(double *f, double *F, int power);
VOID WINAPI WALSH(double *f, double *F, int r);
VOID WINAPI IWALSH(double *F, double *f, int r);
BOOL WINAPI THREECROSS(double *Matrix, int Rank, double *QMatrix, double *MainCross, double *HypoCross);
BOOL WINAPI BSTQ(int Rank, double *MainCross, double *HypoCross, double *Matrix, double Eqs, int MaxT);

BOOL WINAPI DIBDct(CDib *pDib);
BOOL WINAPI DIBWalsh(CDib *pDib);
BOOL WINAPI DIBHOTELLING(CDib *pDib);
VOID WINAPI DIBDFT_2D(CDib * pDib,double * pTrRstRpart, double * pTrRstIpart);
VOID WINAPI DIBFFT_2D(complex<double> * pCTData, int nWidth, int nHeight, complex<double> * pCFData);

//------------------------------------------------------------------------------------
// 圖象復原的函數原型
BOOL WINAPI DIBNoRestriction(CDib *pDib );
BOOL WINAPI DIBInverseFilter (CDib *pDib);
BOOL WINAPI DIBNoiseDegeneration (CDib *pDib);
BOOL WINAPI DIBWinnerFilter (CDib *pDib);
BOOL WINAPI DIBMotionDegeneration(CDib *pDib);
BOOL WINAPI DIBMotionRestore(CDib *pDib);

//-------------------------------------------------------------------------------------
// 圖象編碼函數原型
BOOL WINAPI WRITE2IMG(CDib * pDib, CFile& file);
BOOL WINAPI LOADIMG(CDib * pDib, CFile& file);
BOOL WINAPI DIBBITPLANE(CDib *pDib,BYTE bBitNum);
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品久久久久久久久99蜜臂| 久久久不卡网国产精品二区| 91麻豆精品国产91久久久久久 | 亚洲综合一区二区| 久久精品免费观看| av亚洲精华国产精华精华| 制服丝袜亚洲精品中文字幕| 亚洲欧美另类综合偷拍| 国产一区二区三区黄视频| 欧美在线看片a免费观看| 国产蜜臀97一区二区三区| 日本系列欧美系列| 精品视频在线免费| 亚洲欧美日韩在线不卡| 成人手机电影网| 26uuu欧美日本| 秋霞午夜av一区二区三区| 欧美日韩一卡二卡三卡| 亚洲精品伦理在线| 成人不卡免费av| 中文一区二区在线观看| 国产精品性做久久久久久| 日韩美女主播在线视频一区二区三区| 亚洲va在线va天堂| 欧美性极品少妇| 一区二区三区不卡视频| 97成人超碰视| 亚洲伦理在线免费看| 成人av片在线观看| 国产精品传媒视频| 91首页免费视频| 亚洲人xxxx| 制服丝袜av成人在线看| 一区二区三区四区不卡在线| 91原创在线视频| 亚洲综合在线五月| 欧美在线免费视屏| 亚洲一线二线三线久久久| 欧美性大战久久久久久久蜜臀| 亚洲色图制服丝袜| 在线观看91精品国产入口| 亚洲综合一二三区| 欧美剧情电影在线观看完整版免费励志电影 | 国产清纯美女被跳蛋高潮一区二区久久w | 麻豆成人综合网| 欧美v国产在线一区二区三区| 乱中年女人伦av一区二区| 日韩视频在线永久播放| 久久99在线观看| 欧美高清在线视频| 色综合久久99| 天天色 色综合| 2021久久国产精品不只是精品| 国产真实乱偷精品视频免| 国产精品五月天| 精品视频在线免费观看| 麻豆精品新av中文字幕| 国产女人aaa级久久久级| 一本色道久久综合精品竹菊| 日韩国产欧美三级| 国产精品美女久久久久aⅴ| 91久久精品国产91性色tv| 三级精品在线观看| 久久精品亚洲一区二区三区浴池 | 日本道免费精品一区二区三区| 亚洲mv在线观看| 国产情人综合久久777777| 色狠狠综合天天综合综合| 蜜乳av一区二区三区| 国产精品理论片在线观看| 欧美人xxxx| 成人免费视频app| 午夜精品久久久久久不卡8050| 久久久久97国产精华液好用吗| 色哟哟在线观看一区二区三区| 久久精品免费看| 夜夜爽夜夜爽精品视频| 国产网站一区二区| 欧美精品第一页| 91网页版在线| 国产精品一品二品| 日韩成人精品在线观看| 亚洲同性gay激情无套| 日韩一区二区三| 色综合天天综合色综合av| 国产一区二区三区免费在线观看| 一区二区三区精品在线| 欧美极品美女视频| 日韩精品一区二区三区中文不卡| 91尤物视频在线观看| 国产一区二区视频在线| 亚洲不卡一区二区三区| 亚洲免费观看高清| 欧美国产成人在线| 久久综合色婷婷| 欧美电影免费观看完整版| 欧美亚男人的天堂| 成人黄色av网站在线| 国产乱色国产精品免费视频| 美女一区二区三区在线观看| 亚洲成人免费在线| 亚洲狼人国产精品| 亚洲欧洲日韩综合一区二区| 国产女人18水真多18精品一级做 | 亚洲国产电影在线观看| 精品久久五月天| 日韩一区二区精品| 欧美一区二区三区精品| 欧美日韩高清影院| 欧美日韩激情一区二区| 欧美日韩一二三| 欧美日韩在线三级| 欧美日韩国产高清一区| 欧美影视一区在线| 欧美系列亚洲系列| 欧美日免费三级在线| 欧美日韩中文字幕一区| 欧美视频自拍偷拍| 欧美日韩视频一区二区| 在线成人免费观看| 日韩一区二区三区四区| 日韩视频免费直播| 久久久久国产精品厨房| 国产日韩欧美制服另类| 国产精品每日更新在线播放网址| 欧美高清在线视频| 亚洲欧美另类小说视频| 午夜久久久久久久久久一区二区| 三级亚洲高清视频| 精品一区二区在线视频| 成人综合激情网| 99久久精品99国产精品 | 日本午夜一本久久久综合| 三级久久三级久久| 国内外精品视频| 成人爱爱电影网址| 欧美午夜视频网站| 日韩一区二区三区高清免费看看| 26uuu国产电影一区二区| 国产精品乱码久久久久久| 玉米视频成人免费看| 青青草原综合久久大伊人精品优势| 精品一区二区成人精品| 成人激情免费视频| 91精品国产全国免费观看| 久久蜜桃香蕉精品一区二区三区| 国产精品久久看| 天堂av在线一区| 91免费视频网| 欧美视频一区在线| 久久久不卡影院| 尤物视频一区二区| 韩国成人精品a∨在线观看| 本田岬高潮一区二区三区| 欧美日韩和欧美的一区二区| 久久综合狠狠综合久久综合88 | 一区二区三区国产精华| 九色综合国产一区二区三区| 99re热视频精品| 精品美女一区二区| 亚洲激情综合网| 国产在线视频精品一区| 欧美三级日韩在线| 国产精品久久久久7777按摩| 日日夜夜精品免费视频| 99精品视频在线观看免费| 日韩欧美的一区二区| 亚洲一二三四区| 国产成人在线视频网站| 欧美一区二区视频在线观看2020| 中文字幕国产精品一区二区| 日韩在线一区二区三区| 日本乱人伦一区| 国产精品美女久久久久久久久 | 国产成人精品影院| 欧美一区国产二区| 亚洲在线一区二区三区| 成人av影视在线观看| 久久综合九色综合97婷婷| 青青草原综合久久大伊人精品优势| 色综合久久久久久久久久久| 国产日产欧美一区二区三区| 蜜桃久久久久久久| 欧美这里有精品| 中文字幕亚洲成人| 粉嫩一区二区三区性色av| 精品日本一线二线三线不卡 | 亚洲女人小视频在线观看| 国产精品一区二区男女羞羞无遮挡 | 精品国产免费视频| 日韩1区2区3区| 欧美天天综合网| 亚洲精品国产第一综合99久久| 成人性生交大片免费看在线播放| 久久久久久一级片| 国产精品一区二区在线观看不卡 | 中文字幕在线一区免费| 粉嫩av一区二区三区粉嫩 | 亚洲影视在线播放| 欧美性猛交xxxx乱大交退制版 |