LSB就是最不重要位信息隐藏算法,读取出图片中每个点的象素值,然后把信息的bit序列填充到这些象素的最低上.然后在分析检测的时候提取出最低位,就可以恢复原始信息.因为是在最低位上进行隐藏,所以图像的失真是比较小的,肉眼无法察觉,但是它会破坏图像的统计特性,这样通过统计的方法可以检测到有信息的嵌入.此外在图片有损压缩时,隐藏的信息容易丢失.如果嵌入高位,会带来失真,但是嵌入强度高,可以抵御有损压缩.
/*
位操作的类,自己写的.
*
// BitOperate.cpp: implementation of the BitOperate class.
//
//
#include "stdafx.h"
#include "BitOperate.h"
#include "iostream.h"
//
// Construction/Destruction
//
BitOperate::BitOperate()
{
}
BitOperate::~BitOperate()
{
}
/*
功能:把ch从右数的第position位设置为value;
*/
byte BitOperate::bitSet(byte ch, short position, bool value)
{
byte temp = ch;
if(position>8||position<1)
{
cout<<"Out of Bound! Position must be a number between 1 --- 8 "<<endl;
return ch;
}
bool bit = bitAt(temp,position);
if(bit^value)//如果不相同的话
{
if(bit == 0)
{
byte m = (byte)value;
for(int i = 1;i<position;i++)
m = m<<1;
ch+=m;
return ch;
}
else
{
byte m = (byte)bit;
for(int i = 1;i<position;i++)
m = m<<