dibapi.h
来自「一个非常全的vc编程的原程序代码是关于图像处理的!」· C头文件 代码 · 共 252 行
H
252 行
#ifndef VIEWDIB_DIBAPI_H_
#define VIEWDIB_DIBAPI_H_
#include "MACRO.h"
/**********************************************************
base functions declaration go here.
**********************************************************/
//initiate funtion
HDIB CreateDIB(DWORD dwWidth,DWORD dwHeight,WORD wBitCount);
HDIB CreateDefaultDIB(DWORD dwWidth,DWORD dwHeight);
HDIB LoadDIB(LPCTSTR lpFileName);
LPBYTE LoadDIBFromResource(LPTSTR lpszBitmap);
HDIB ReadDIBFile(HANDLE hFile);
BOOL SaveDIB(HDIB hDib,LPCTSTR lpFileName);
void DestroyDIB(HDIB hDib);
//attribute function
DWORD BytesPerLine(LPBYTE lpDib);
DWORD BytesPerLine(HDIB hDib);
DWORD DIBlockSize(LPBYTE lpDib);
DWORD DIBlockSize(HDIB hDib);
DWORD DIBHeight(LPBYTE lpDib);
DWORD DIBHeight(HDIB hDib);
DWORD DIBWidth(LPBYTE lpDib);
DWORD DIBWidth(HDIB hDib);
WORD DIBNumColors(LPBYTE lpDib);
WORD DIBNumColors(HDIB hDib);
WORD DIBBitCount(LPBYTE lpDib);
WORD DIBBitCount(HDIB hDib);
LPBYTE FindDIBBits(LPBYTE lpDib);
WORD PaletteSize(LPBYTE lpDib);
WORD PaletteSize(HDIB hDib);
long XPelsPerMeter(LPBYTE lpDib);
long XPelsPerMeter(HDIB hDib);
long YPelsPerMeter(LPBYTE lpDib);
long YPelsPerMeter(HDIB hDib);
//show function
BOOL PaintBitmap(HDC hDC,LPRECT lpDCRect,HBITMAP hDdb,LPRECT lpDdbRect,HPALETTE hPalette,DWORD dwRop);
BOOL PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDib,LPRECT lpDibRect,HPALETTE hPalette,DWORD dwRop);
BOOL DisplayDIB(CDC* pDC,LPCSTR lpszBitmap);
//operation function
HBITMAP DIBToDIBSection(LPBYTE lpDib);
HBITMAP DIBToDIBSection(HDIB hDib);
HDIB DIBSectionToDIB(HBITMAP hBitmap);
HDIB ConvertDIBFormat(LPBYTE lpDib,UINT nWidth,UINT nHeight,UINT nBpp,BOOL bStretch,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(HDIB hDib,UINT nWidth,UINT nHeight,UINT nBpp,BOOL bStretch,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(LPBYTE lpSrcDib,UINT nBpp,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(HDIB hDib,UINT nBpp,HPALETTE hPalette);
HDIB BitmapToDIB(HBITMAP hBitmap, HPALETTE hPalette);
HDIB BitmapToDIB(HBITMAP hBitmap,HPALETTE hPalette,WORD wBitCount);
HBITMAP DIBToBitmap(HDIB hDib,HPALETTE hPalette);
BOOL CopyColorTable(LPBITMAPINFO lpTarget,LPBITMAPINFO lpSource,HPALETTE hPalSrc);
HDIB ChangeBitmapFormat(HBITMAP hBitmap,WORD biBits,DWORD biCompression,HPALETTE hPalette);
HDIB ChangeDIBFormat(HDIB hDib,WORD wBitCount,DWORD dwCompression);
//palette function
HPALETTE CreateDIBPalette(LPBYTE lpbi);
HPALETTE CreateDIBPalette(HDIB hDib);
HPALETTE CopyPalette(HPALETTE hPalSrc);
HPALETTE CreateIdentifyPalette(HPALETTE hPalSrc);
BOOL DisplayPalette(HDC hDC,LPRECT lpRect,HPALETTE hPal);
HPALETTE GetSystemPalette(void);
int PalEntriesOnDevice(HDC hDC);
BOOL MapDIBColorsToPalette(HDIB hDib,HPALETTE hPalette);
//operation function
HBITMAP CopyScreenToBitmap(LPRECT lpRect);
HBITMAP CopyWindowToBitmap(HWND hWnd,WORD fPrintArea);
HBITMAP CopyClientRectToBitmap(HWND hWnd,LPRECT lpRect);
HDIB CopyScreenToDIB(LPRECT lpRect);
HDIB CopyWindowToDIB(HWND hWnd,WORD);
HDIB CopyClientRectToDIB(HWND hWnd,LPRECT lpRect);
//几何变换
HDIB RotateDIB(HDIB hDib);
HDIB RotateCertainAngleDIB(HDIB hDib,int angle);
HDIB FlipHorzDIB(HDIB hDib);
POINT AffineKer(POINT p,int a,int b,int c,int theta);
HDIB AffineDIB(HDIB hDib,int a,int b,int c,int theta);
HDIB AffineDIBInterpolation(HDIB hDib,int a,int b,int c,int theta);
POINT PerspectiveKer(POINT p,int r,int theta,int fai,int f,
int widthback,int heightback);
HDIB PerspectiveTransDIB(HDIB hDib,int r,int theta,int fai,int f);
HDIB GeometricCorrectDIB(HDIB hDib,POINT point1,POINT point2,POINT point3,POINT point4);
//代数变换
HDIB SelfDiffDIB(HDIB hDib);
HDIB DiffDIB(HDIB h1,HDIB h2);
HDIB OrDIB(HDIB h1,HDIB h2);
HDIB AddDIB(HDIB h1,HDIB h2);
//位运算
HDIB AutoBinaryDIB(HDIB hDib);
HDIB QuarticDIB(HDIB hDib);
HDIB OctonaryDIB(HDIB hDib);
HDIB RevertColorDIB(HDIB hDib);
HDIB ColorDIBToGrayDIB(HDIB hDib);
HDIB PseudoColorDIB(HDIB hDib);
HDIB HistoEquivalizeDIB(HDIB hDib);
int R(int f);
int G(int f);
int B(int f);
HDIB AdjustDIBBrightness(HDIB hDib,int v);
HDIB AdjustDIBContrast(HDIB hDib,double v);
void ChangeRGBBrightness(int nDelta,BYTE *r,BYTE *g,BYTE *b);
void ChangeGrayBrightness(int nDelta,BYTE *l);
void ChangeRGBContrast(double nDelta,BYTE *r,BYTE *g,BYTE *b);
void ChangeGrayContrast(double nDelta,BYTE *l);
//非线性变换
HDIB LnTransDIB(HDIB hDib);
HDIB LogTransDIB(HDIB hDib);
//滤波器
void LP1(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB LowPass1DIB(HDIB hDib);
void LP2(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB LowPass2DIB(HDIB hDib);
void LP3(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB LowPass3DIB(HDIB hDib);
void HP1(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB HighPass1DIB(HDIB hDib);
void HP2(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB HighPass2DIB(HDIB hDib);
void HP3(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB HighPass3DIB(HDIB hDib);
void BlurKer(BYTE *p1, BYTE *p2, BYTE *p3, BYTE *p4, BYTE *p5,
BYTE *p6, BYTE *p7, BYTE *p8, BYTE *p9, BYTE *p10,
BYTE *p11,BYTE *p12,BYTE *p13,BYTE *p14,BYTE *p15,
BYTE *p16,BYTE *p17,BYTE *p18,BYTE *p19,BYTE *p20,
BYTE *p21,BYTE *p22,BYTE *p23,BYTE *p24,BYTE *p25);
HDIB BlurDIB(HDIB hDib);
void MedianFilterKer(BYTE *p1, BYTE *p2, BYTE *p3, BYTE *p4, BYTE *p5,
BYTE *p6, BYTE *p7, BYTE *p8, BYTE *p9, BYTE *p10,
BYTE *p11,BYTE *p12,BYTE *p13,BYTE *p14,BYTE *p15,
BYTE *p16,BYTE *p17,BYTE *p18,BYTE *p19,BYTE *p20,
BYTE *p21,BYTE *p22,BYTE *p23,BYTE *p24,BYTE *p25);
HDIB MedianFilterDIB(HDIB hDib);
//边缘检测
HDIB EdgeDetectDIB(HDIB hDib);
void VE(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void HE(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void VHE(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB EdgeEnhance1DIB(HDIB hDib,int choice);
void Nor(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void EasNor(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void Eas(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void EasSou(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void Sou(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void WesSou(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void Wes(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void WesNor(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB EdgeEnhance2DIB(HDIB hDib,int choice);
void LAP1(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void LAP2(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void LAP3(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB LaplaceEdgeDetectDIB(HDIB hDib,int choice);
void Sobel1(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
void Sobel2(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB SobelEdgeDetectDIB(HDIB hDib,int choice);
HDIB SUSANEdgeDetectDIB(HDIB hDib);
float Gauss(float x,float std);
float DGauss(float x,float std);
void D2Gauss(int n1,float sigma1,int n2,float sigma2,float theta,float *h);
HDIB CannyEdgeDetectDIB(HDIB hDib);
//形态学运算
void ErosionKer(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB ErosionDIB(HDIB hDib);
void DilationKer(BYTE *p1,BYTE *p2,BYTE *p3,
BYTE *p4,BYTE *p5,BYTE *p6,
BYTE *p7,BYTE *p8,BYTE *p9);
HDIB DilationDIB(HDIB hDib);
HDIB OpenDIB(HDIB hDib);
HDIB CloseDIB(HDIB hDib);
HDIB ThinningDIB(HDIB hDib);
HDIB SkeletonizeDIB(HDIB hDib);
//信号处理
int log2(int a);
HDIB ModifyDIBHW(HDIB hDib);
HDIB DFTMagnitudeDIB(HDIB hDib);
HDIB DFTPhaseDIB(HDIB hDib);
HDIB DCTDIB(HDIB hDib,CString FileName);
HDIB IDCTDIB(HDIB hDib,CString FileName);
//Hough变换
HDIB HoughLineDetectDIB(HDIB hDib,int linenum);
HDIB HoughCircleDetectDIB(HDIB hDib,int cirnum);
//其他
BOOL IsBinaryDIB(HDIB hDib);
BOOL IsBlackDIB(HDIB hDib);
HDIB ZoomInDIB(HDIB hDib);
HDIB ZoomOutDIB(HDIB hDib);
HDIB ChangeDIBCanvasSize(HDIB hDIB,int nWidth,int nHeight,int nPosition);
//declaration end here.
///////////////////////////////////////////////////////
//
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?