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

📄 morphproc.h

📁 用C++实现的数字图像处理各个算法源代码 我精心整理的 很难的啊 希望可以给大家带来帮助
💻 H
字号:
// MorphProc.h: interface for the CMorphPro class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MORPHPROC_H__DF1FC1F5_F917_4601_BE84_F740376CBE4B__INCLUDED_)
#define AFX_MORPHPROC_H__DF1FC1F5_F917_4601_BE84_F740376CBE4B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DibObject.h"

class CMorphPro : public CObject  
{
	DECLARE_DYNCREATE(CMorphPro)
public:
	//无参构造函数
	CMorphPro();
	//有参构造函数
	CMorphPro(CDibObject *pDibObject);
	//析构函数
	virtual ~CMorphPro();

public:
	//设置DibObject类对象
	void SetDibObjectClass(CDibObject *pDibObject);

	//腐蚀运算
	BOOL Erosion(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//膨胀运算
	BOOL Dilation(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//开运算
	BOOL Opening(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//闭运算
	BOOL Closing(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//击中击不中变换
	BOOL HitMissTran(int *nHmask = NULL, int nHmaskLen = 9, 
				int *nMmask = NULL, int nMmaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//检测外边界
	BOOL OutEdge(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//检测内边界
	BOOL InEdge(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//检测形态学梯度
	BOOL MorphGrads(int *nMask = NULL, int nMaskLen = 9, 
				CDibObject *pDibObject = NULL);
	//薄化运算
	BOOL Thining(int *nHmask = NULL, int nHmaskLen = 9, 
				int *nMmask = NULL, int nMmaskLen = 9, 
				CDibObject *pDibObject = NULL,
				BOOL *bIsBlank = FALSE);
	//厚化运算
	BOOL Thicking(int *nHmask = NULL, int nHmaskLen = 9, 
				int *nMmask = NULL, int nMmaskLen = 9, 
				CDibObject *pDibObject = NULL);

	BOOL ThiningDIB(CDibObject *pDibObject=NULL);

protected:
	unsigned char *GetBitsPoint();
	//腐蚀运算
	BOOL MakeErosion(int *nMask, int nMaskLen, 
 					unsigned char *pOut, unsigned char *pIn,
					int nWidthBytes, int nWidth, int nHeight);
	//膨胀运算
	BOOL MakeDilation(int *nMask, int nMaskLen, 
 					unsigned char *pOut, unsigned char *pIn,
					int nWidthBytes, int nWidth, int nHeight);
	
	void AndBuffer(unsigned char *pOut, unsigned char *pIn, LONG lSize);
	void ReverseBuffer(unsigned char *pIn, LONG lSize);
	void OrBuffer(unsigned char *pOut, unsigned char *pIn, LONG lSize);
	void XorBuffer(unsigned char *pOut, unsigned char *pIn, LONG lSize);
	void CopyBuffer(unsigned char *pOut, unsigned char *pIn, LONG lSize);
	void MoveBuffer(unsigned char *pOut, unsigned char *pIn, LONG lSize);
	void CleanBuffer(unsigned char *pIn, LONG lSize);
	BOOL IsResultBlank(unsigned char *pIn, LONG lSize);

//诊断调试函数
#ifdef _DEBUG
	virtual void Dump( CDumpContext &dc) const;
	virtual void AssertValid() const;
#endif

private:
	CDibObject *m_pDibObject;

};

#endif // !defined(AFX_MORPHPROC_H__DF1FC1F5_F917_4601_BE84_F740376CBE4B__INCLUDED_)

⌨️ 快捷键说明

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