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

📄 dib.cpp

📁 一个非常全的vc编程的原程序代码是关于图像处理的!
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}
/*************************************************
4值化
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Quartic()
{
	HDIB hNewDib = QuarticDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
8值化
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Octonary()
{
	HDIB hNewDib = OctonaryDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
low pass filter1
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::LowPass1()
{
	HDIB hNewDib = LowPass1DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
low pass filter2
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::LowPass2()
{
	HDIB hNewDib = LowPass2DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
low pass filter3
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::LowPass3()
{
	HDIB hNewDib = LowPass3DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
high pass filter1
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::HighPass1()
{
	HDIB hNewDib = HighPass1DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
high pass filter2
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::HighPass2()
{
	HDIB hNewDib = HighPass2DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
high pass filter3
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::HighPass3()
{
	HDIB hNewDib = HighPass3DIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
边缘增强
parameter:   int(choice a method)
return:      BOOL
*************************************************/
BOOL CDib::EdgeEnhance1(int choice)
{
	HDIB hNewDib = EdgeEnhance1DIB(m_hDib, choice);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
边缘增强
parameter:   int(choice a method)
return:      BOOL
*************************************************/
BOOL CDib::EdgeEnhance2(int choice)
{
	HDIB hNewDib = EdgeEnhance2DIB(m_hDib, choice);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
Laplace边缘检测
parameter:   int(choice a Laplace convolution kernel)
return:      BOOL
*************************************************/
BOOL CDib::LaplaceEdgeDetect(int choice)
{
	HDIB hNewDib = LaplaceEdgeDetectDIB(m_hDib, choice);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
Sobel边缘检测
parameter:   int(choice a Sobel convolution kernel)
return:      BOOL
*************************************************/
BOOL CDib::SobelEdgeDetect(int choice)
{
	HDIB hNewDib = SobelEdgeDetectDIB(m_hDib, choice);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
模糊
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Blur()
{
	HDIB hNewDib = BlurDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************************
仿射变换
parameter:   int a, b, c, theta --parameters of affine transformation 
			 int mode           --nearest or bilinear interpolation
return:      BOOL
***********************************************************************/
BOOL CDib::Affine(int a, int b, int c, int theta, int mode)
{
	HDIB hNewDib;
	if(mode == NEAREST) 
		hNewDib = AffineDIB(m_hDib, a, b, c, theta);
	else if(mode == BIINTERPO) 
		hNewDib = AffineDIBInterpolation(m_hDib, a, b, c, theta);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
change the canvas size of DIB
parameter:   int nWidth, nHeight, nPosition
return:      BOOL
*************************************************/
BOOL CDib::ChangeCanvasSize(int nWidth, int nHeight, int nPosition)
{
	HDIB hNewDib = ChangeDIBCanvasSize(m_hDib, nWidth, nHeight, nPosition);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
中值滤波
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::MedianFilter()
{
	HDIB hNewDib = MedianFilterDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
腐蚀
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Erosion()
{
	HDIB hNewDib = ErosionDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
膨胀
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Dilation()
{
	HDIB hNewDib = DilationDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
开运算
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Open()
{
	HDIB hNewDib = OpenDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
闭运算
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Close()
{
	HDIB hNewDib = CloseDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
判断一幅图像是否只有黑白两色
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::IsBinary()
{
    return IsBinaryDIB(m_hDib);
}
/*************************************************
SUSAN边缘检测
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::SUSANEdgeDetect()
{
	HDIB hNewDib = SUSANEdgeDetectDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
一个普通的边缘检测算法
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::EdgeDetect()
{
	HDIB hNewDib =EdgeDetectDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
细化
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Thinning()
{
	HDIB hNewDib = ThinningDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************
抽取骨架
parameter:   void
return:      BOOL
*************************************************/
BOOL CDib::Skeletonize()
{
	HDIB hNewDib = SkeletonizeDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
两幅图像作差
parameter:   CString(specify the other DIB file)
return:      BOOL
**********************************************************/
BOOL CDib::Diff(CString FileName)
{
	HDIB hNewDib = m_hDib;
	HDIB htemp = LoadDIB((LPCTSTR)FileName);
	if(htemp == NULL)
		return FALSE;
	hNewDib = DiffDIB(hNewDib, htemp);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
两幅图像相加
parameter:   CString(specify the other DIB file)
return:      BOOL
**********************************************************/
BOOL CDib::Add(CString FileName)
{
	HDIB hNewDib = m_hDib;
	HDIB htemp = LoadDIB((LPCTSTR)FileName);
	if(htemp == NULL)
		return FALSE;
	hNewDib = AddDIB(hNewDib, htemp);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
两幅图像按位或
parameter:   CString(specify the other DIB file)
return:      BOOL
**********************************************************/
BOOL CDib::Or(CString FileName)
{
	HDIB hNewDib = m_hDib;
	HDIB htemp = LoadDIB((LPCTSTR)FileName);
	if(htemp == NULL)
		return FALSE;
	hNewDib = OrDIB(hNewDib, htemp);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
zoom in
parameter:   void
return:      BOOL
**********************************************************/
BOOL CDib::ZoomIn()
{
	HDIB hNewDib = ZoomInDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
zoom out
parameter:   void
return:      BOOL
**********************************************************/
BOOL CDib::ZoomOut()
{
	HDIB hNewDib=ZoomOutDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib=hNewDib;

	return UpdateInternal();
}
/*********************************************************
Canny边缘检测
parameter:   void
return:      BOOL
**********************************************************/
BOOL CDib::CannyEdgeDetect()
{
	HDIB hNewDib = CannyEdgeDetectDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*********************************************************
透视变换
parameter:   int r, f       --10 times of true value
			 int theta, fai --degree
return:      BOOL
**********************************************************/
BOOL CDib::PerspectiveTrans(int r, int theta, int fai, int f)
{
	HDIB hNewDib = PerspectiveTransDIB(m_hDib, r, theta, fai, f);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************************
几何校正
parameter:   POINT piont1...point4 --vertex of selected area
return:      BOOL
**************************************************************/
BOOL CDib::GeometricCorrect(POINT point1, POINT point2, POINT point3, POINT point4)
{
	HDIB hNewDib = GeometricCorrectDIB(m_hDib, point1, point2, point3, point4);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************************
离散傅立叶变换幅度谱
parameter:   void
return:      BOOL
**************************************************************/
BOOL CDib::DFTMagnitude()
{
	HDIB hNewDib = DFTMagnitudeDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************************
离散傅立叶变换相位谱
parameter:   void
return:      BOOL
**************************************************************/
BOOL CDib::DFTPhase()
{
	HDIB hNewDib = DFTPhaseDIB(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************************
调整图像长宽为2的整数次幂
parameter:   void
return:      BOOL
**************************************************************/
BOOL CDib::ModifyWH()
{
	HDIB hNewDib = ModifyDIBHW(m_hDib);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*************************************************************
DCT transformation
parameter:   CString(save the spectrum to this file)
return:      BOOL 
**************************************************************/
BOOL CDib::DCT(CString FileName)
{
	HDIB hNewDib = DCTDIB(m_hDib, FileName);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*****************************************************************
IDCT transformation
parameter:   CString(specify the file in which spectrum is saved)
return:      BOOL 
******************************************************************/
BOOL CDib::IDCT(CString FileName)
{
	HDIB hNewDib = IDCTDIB(m_hDib, FileName);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*****************************************************************
Hough变换检测直线
parameter:   int(the total number of lines that will be found)
return:      BOOL 
******************************************************************/
BOOL CDib::HoughLineDetect(int linenum)
{
    HDIB hNewDib = HoughLineDetectDIB(m_hDib, linenum);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}
/*****************************************************************
Hough变换检测圆
parameter:   int(the total number of circles that will be found)
return:      BOOL 
******************************************************************/
BOOL CDib::HoughCircleDetect(int cirnum)
{
    HDIB hNewDib = HoughCircleDetectDIB(m_hDib, cirnum);
	if(!hNewDib)
		return FALSE;
	Destroy();
	m_hDib = hNewDib;

	return UpdateInternal();
}

⌨️ 快捷键说明

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