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

📄 lsbanalysisdoc.h

📁 信息隐藏中用于数字隐写的常用算法:LSB替换LSB匹配,包括随机的和排序的,以及对文件和文件夹进行操作,用CxImage类能快速读取各种格式的图象
💻 H
字号:
// LSBAnalysisDoc.h : interface of the CLSBAnalysisDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_)
#define AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_

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

#define	WM_USER_NEWIMAGE WM_USER+1

#define PRN_FILE  "E:\\PRN_DATA.dat.dat"

class CxImage;

class CLSBAnalysisDoc : public CDocument
{
protected: // create from serialization only
	CLSBAnalysisDoc();
	DECLARE_DYNCREATE(CLSBAnalysisDoc)

// Attributes
public:
	BOOL m_bModified;       //图像修改标志
	int nImgType;           //图像后缀名所属的类型
	CString m_strPathName;     //读取图像的文件名
// Operations
public:
	inline CxImage *GetImage() { return image; }
	CString FindExtension(const CString& name);
	int FindType(const CString& ext);

	BYTE* ReadPRNData(DWORD dwCount);   //读取秘密消息
	BYTE* ReadPRNData2(DWORD dwCount);   //读取秘密消息

	void LSBMatchEmbed(BYTE* pImg, BYTE* pData, int* pImgPerm, DWORD dwImgSize, float ratio);    //随机LSB Match
	void LSBMatchEmbed2(BYTE* pImg, BYTE* pData, DWORD dwImgSize, float ratio);    //序贯LSB Match

	void LSBReplaceEmbed(BYTE* pImg, BYTE* pData, int* pImgPerm, DWORD dwImgSize, float ratio);    //随机LSB Replace
	void LSBReplaceEmbed2(BYTE* pImg, BYTE* pData, DWORD dwImgSize, float ratio);    //序贯LSB Replace

	
	BYTE* LSBMatchExtract(BYTE* pImg, int* pImgPerm, DWORD dwImgSize, float ratio);
	BYTE* LSBMatchExtract2(BYTE* pImg, DWORD dwImgSize, float ratio);


	//产生a-b之间的double型随机数
	double uniform(double a,double b,long* seed);   

	//N点数据的置乱	
	void Rand_Perm(int rp[], int N);                 


	//快速排序算法
	void Sort_Qck(int p[], int index[], int N);      
	void QUICKSORT(int R[], int index[], int s1, int t1);
	int PARTITION(int R[], int index[], int l, int h);


	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CLSBAnalysisDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
	virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
	virtual BOOL DoSave(LPCTSTR pszPathName, BOOL bReplace =TRUE);
	//}}AFX_VIRTUAL

// Implementation
public:
	CxImage* image;
	virtual ~CLSBAnalysisDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CLSBAnalysisDoc)
	afx_msg void OnEmbedLsbmatch();
	afx_msg void OnEmbedLsbmatch2();
	afx_msg void OnExtractLsbmatch();
	afx_msg void OnExtractLsbmatch2();
	afx_msg void OnEmbedLsbmatch3();
	afx_msg void OnEmbedLsbmatch4();
	afx_msg void OnEmbedLsbreplace();
	afx_msg void OnEmbedLsbreplace2();
	afx_msg void OnDetectHmm();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_)

⌨️ 快捷键说明

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