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

📄 watermethod.h

📁 站长!这是DCT域的图像数字水印嵌入及提取程序!请查收!暂归入加密解密类别!
💻 H
字号:
// Watermethod.h: interface for the CWatermethod class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_WATERMETHOD_H__C2489399_5F0D_4D19_948F_7C876CC74856__INCLUDED_)
#define AFX_WATERMETHOD_H__C2489399_5F0D_4D19_948F_7C876CC74856__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define	PI 3.1415926535897932
#define	MAXBLOCKHEIGHT 8
#define	MAXBLOCKWIDTH 8
#define	MAXINPUTVECTORS 64*64
#define	MAXVECTORDIMENSION 64
#define MAXENCODEVECTORS 64*64
#define MAXIMAGESIZE 512*512
#define ENCODEMETHODNUMBER 11
#define MAXWATERMARKSIZE 2048
#define BLOCKSIZE 64
#define WMIMAGEWIDTH	128
#define WMIMAGEHEIGHT	128
#define WMIMAGESIZE		128*128
#define WMIMAGEBLOCKNUM	4096
#define WMBLOCKWIDTH	2
#define WMBLOCKHEIGHT	2
#define WMBLOCKSIZE		4
#define WMBLOCKROWNUM	64
#define WMBLOCKCOLNUM	64

class CWatermethod  
{
public:
	CWatermethod();
	virtual ~CWatermethod();
    //The four codebook design methods
	//Bit decomposition and byte composition
    void DCT(unsigned char *OriginalImageBlock[MAXBLOCKHEIGHT],double *DCTBlock[MAXBLOCKHEIGHT],int blockheight,int blockwidth);
	void IDCT(double *DCTBlock[MAXBLOCKHEIGHT],unsigned char *ReconstructedImageBlock[MAXBLOCKHEIGHT],int blockheight,int blockwidth);
    void DCT1(char *OriginalImageBlock[MAXBLOCKHEIGHT],double *DCTBlock[MAXBLOCKHEIGHT],int blockheight,int blockwidth);
	void IDCT1(double *DCTBlock[MAXBLOCKHEIGHT],char *ReconstructedImageBlock[MAXBLOCKHEIGHT],int blockheight,int blockwidth);

	int AddBased(long int blocks,unsigned short  blockheight,unsigned short  blockwidth,unsigned short  hb,unsigned short  wb,unsigned char *SourceVector[MAXINPUTVECTORS],unsigned char *WmSourceVector[MAXINPUTVECTORS],unsigned char *TerminalVector[MAXINPUTVECTORS],int *imageblockvarseqkey,int *wmblockmarknumseqkey);
	int	AddBasedExtract(long int blocks,unsigned short  blockheight,unsigned short  blockwidth,unsigned short  hb,unsigned short  wb,unsigned char *SourceVector[MAXINPUTVECTORS],unsigned char *pp01[MAXINPUTVECTORS],unsigned char *TerminalVector[MAXINPUTVECTORS],int *imageblockvarseqkey,int *wmblockmarknumseqkey);

	int Subsamplingmethod(long int blocks,unsigned short  blockheight,unsigned short  blockwidth,unsigned short  hb,unsigned short  wb,unsigned char *SourceVector1[MAXINPUTVECTORS/4],unsigned char *SourceVector2[MAXINPUTVECTORS/4],unsigned char *SourceVector3[MAXINPUTVECTORS/4],unsigned char *SourceVector4[MAXINPUTVECTORS/4],unsigned char *WmSourceVector1[MAXINPUTVECTORS/4],unsigned char *WmSourceVector2[MAXINPUTVECTORS/4],unsigned char *TerminalVector1[MAXINPUTVECTORS/4],unsigned char *TerminalVector2[MAXINPUTVECTORS/4],unsigned char *TerminalVector3[MAXINPUTVECTORS/4],unsigned char *TerminalVector4[MAXINPUTVECTORS/4],int method);
	int ExtractSubsamplingmethod(long int blocks,unsigned short blockwidth,unsigned short blockheight,unsigned short wb,unsigned short hb,unsigned short wmblockheight,unsigned short wmblockwidth,unsigned char *SourceVector1[MAXINPUTVECTORS/4],unsigned char *SourceVector2[MAXINPUTVECTORS/4],unsigned char *SourceVector3[MAXINPUTVECTORS/4],unsigned char *SourceVector4[MAXINPUTVECTORS/4],unsigned char *pp1[MAXINPUTVECTORS/4],unsigned char *pp2[MAXINPUTVECTORS/4],int method);
	
	void BitDecomposition(unsigned char *bytes,unsigned char *bits,long int numberofbytes);
	void ByteComposition(unsigned char *bits,unsigned char *bytes,long int numberofbytes);
	//Watermark permutation and reverse permutation
	void Permuted(unsigned char *original,unsigned char *permuted,long int *key,long int number,int method);
    void ReversePermuted(unsigned char *permuted,unsigned char *reverse,long int *key,long int number);
    void whiten(unsigned char *input1,unsigned char *input2,char *output1,char *output2,char *totalmean);
    void reversewhiten(char *input1,char *input2,unsigned char *output1,unsigned char *output2,char *totalmean);

};

#endif // !defined(AFX_WATERMETHOD_H__C2489399_5F0D_4D19_948F_7C876CC74856__INCLUDED_)

⌨️ 快捷键说明

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