1.1 数字水印的研究
1.2 JAVA语言介绍
3.1 二维DCT变换介绍
3.1.1 二维DCT变换原理
3.1.2 二维DCT变换举例
3.2 二维图像FDCT的JAVA实现
4.1 DFT原理
4.1.2 二维DFT的性质
4.2 一维FFT
4.3 二维FFT的JAVA实现
4.4 二维图像FFT的 JAVA实现
4.4.1 二维图像FFT幅度谱JAVA实现
4.4.2 二维图像FFT数字水印JAVA实现
5.1 卷积运算JAVA实现
5.2 一维FDWT的JAVA实现
5.3.1 二维FDWT原理
5.3.3 二维FIDWT的JAVA实现
5.5 二维图像FDWT数字水印JAVA实现
6.1.2 费尔码和欧拉定理
6.3.1 素数生成JAVA实现
6.3.3 e类JAVA实现
6.3.5 微型RSA算法JAVA实现
6.3.6 260 bits素数JAVA实现
6.3.7 130 bit e、d和518 bits n的JAVA实现
6.3.8 RSA算法的JAVA实现
7.1 DCT视觉感知模型
7.1.2 Watson视觉感知模型
7.2 小波视觉感知模型
8.1 仿射变换
8.2 灰度图与图像分割
8.2.1 灰度图
8.3 图像不变矩
8.3.1 平移旋转
8.3.3 抽取绿色分量预处理JAVA实现
8.3.5 Hu不变矩提取二值图像特征值JAVA实现
9.1 J2ME概述
9.2 J2ME安装与运行
9.2.2 J2ME环境下的开发步骤
9.3.2 J2ME常用的类和方法
9.4 J2ME对于图像的操作
9.4.2 通过像素生成图像
1.1 数字水印的研究
1.2 JAVA语言介绍
Java语言的主要特点如下:
2、分布式
3、解释型
4、稳定性和安全性
5、多线程
6、平台无关性
JAVA目前有3个版本:
2.1 可见图像数字水印JAVA程序设计
2.2 JPG-24BPP可见图像数字水印JAVA实现
JDK平台的安装和程序的运行
JAVA试验用源程序
JAVA试验用源程序
2.3 BMP-8BPP可见图像数字水印JAVA实现
JAVA试验用源程序
//这一部和读取不同,它先是得到一个IIOImage对象
2.4 JPG-8BPP可见图像数字水印JAVA实现
JAVA试验用源程序
}else
BufferedImage outImage = new BufferedImage
JAVA试验用源程序
} catch(IOException e) {
//得图像WritableRaster,得到图像高度和宽度像素
// 定义长为oWidth*oHeight一维数组存储图像像素
/*定义BufferedImage大小和原始图像一样大,格式为
} catch(IOException e) {
3.1 二维DCT变换介绍
3.2 二维图像FDCT的JAVA实现
JAVA试验用源程序
C2=0.923879532, C3=0.831469612, C4=0.707106781,
S0734=S07+S34;
S1625=S16+S25;
D0734=S07-S34;
D1625=S16-S25;
S0734=S07+S34;
S1625=S16+S25;
D0734=S07-S34;
D1625=S16-S25;
//将BufferedImage对象写入磁盘
JAVA试验用源程序
//得rgb图像三层矩阵,mRgbPixels[0]表示b层分量
//把嵌入水印的结果写到BufferedImage对象
"bmp");//将BufferedImage对象写入磁盘
4.1 DFT原理
2、二维DFT定义
设二维函数,其二维DFT为:
4.2.1 DIT-FFT算法基本原理
4.2.2 DIT-FFT编程思路
3、旋转因子
4、蝶型运算
4.2.3 一维IFFT的JAVA实现
JAVA试验用源程序
// []xr与[]xi分别为时/频域信号实部序列与虚部序列
JAVA试验用源程序
//原始序列虚部
6.0,11.48528137423857,
18.0,-5.4852813742385695,
1.216143118998150E-16,
JAVA试验用源程序
JAVA试验用源程序
JAVA试验用源程序
// 将绿色分量幅度谱以图像文件的形式写到缓冲区
} catch (IOException ee) {
JAVA试验用源程序
//读取原始图像的像素值
//将原始图像绿色分量分为8×8像素块,将这些像素块
//若水印图像像素为0值,我们将绿色分量的FFT域中
File outWaterFile =
JAVA试验用源程序
//读取原始图像绿色分量的像素
5.1 卷积运算JAVA实现
(3)将{6,-1}补0扩展成和m补0后相同长度,补0共有:
(m补0后长度)-(n长度)+1=6-2+1=5种情况。定义:
(4)将补零变换后的数组m与数组n(i)对应的元素相乘,然后各乘积相加得到第i个卷积结果。例如:
JAVA试验用源程序
5.2 一维FDWT的JAVA实现
5.2.1 一维FDWT原理
={-1/,-1/
(J-1=1,k)={-1/
(J-1=1,k)*L(-n)={3/
5.2.2 一维FIDWT原理
5.2.3 一维FDWT的JAVA实现
JAVA试验用源程序
JAVA试验用源程序
5.2.4 一维FIDWT的JAVA实现
JAVA试验用源程序
// 目的 :用于一维小波反变换变换演示实验
//定义输入数组值
5.3 二维FDWT的JAVA实现
{ 3, 5, 0,-2 }
{ 5, 5 }
{-2, 2 }
JAVA试验用源程序
//最大分辨率表示最多能进行几层小波分解
//定义一维变换高频系数
//定义一维变换低频系数
//高低系数
//低高系数
//低低系数
//下面对列进行一维小波变换
LL低频:{{ 3, 7},{ 5, 5}}
JAVA试验用源程序
5.4 二维图像FDWT的JAVA实现
JAVA试验用源程序
BufferedImage _image =
BufferedImage bImage =
BufferedImage gImage =
BufferedImage rImage =
// 将lRGB、hRGB、vRGB、dRGB赋值给temp
//分别输出R、G和B层一共12个图片
//调MathTool类matrixToArray把int型矩阵转向量
BufferedImage aImage =
5.5 二维图像FDWT数字水印JAVA实现
(3)在oblk的四个位置嵌入wblk的四比特信息;
JAVA试验用源程序(1)
JAVA试验用源程序(2)
BufferedImage mImage =
BufferedImage oImage =
//得到图像的WritableRaster对象
//定义结果矩阵
//创建输出图像的BufferedImage对象
//将像素写入到Raster
6.1 公钥密码算法预备知识
(5)如果,
(1)
6.1.2 费尔码和欧拉定理
(1)对于任一素数,有:
6.2 RSA公钥密码算法
RSA算法的描述:
(4)随机选取整数,满足
6.3 RSA算法JAVA实现
6.3.1 素数生成JAVA实现
JAVA试验用源程序
JAVA试验用源程序
JAVA试验用源程序
JAVA试验用源程序
6.3.5 微型RSA算法JAVA实现
JAVA试验用源程序
BigInteger b1=new BigInteger("35");//密文
6.3.6 260 bits素数JAVA实现
JAVA试验用源程序
// 目的 : 用于JAVA课RSA中随机生成素数(质数)演示
6.3.7 130 bit e、d和518 bits n的JAVA实现
JAVA试验用源程序
6.3.8 RSA算法的JAVA实现
JAVA试验用源程序
BigInteger a2(BigInteger a2_n,BigInteger
JAVA试验用源程序
String n1=
String e1=
String d1=
6.4 图像RSA公钥加密JAVA实现
JAVA试验用源程序
//对图像数据进行加密
//对加密后的图像数据进行解密
String msg) {
6.5 图像RSA公钥数字水印JAVA实现
(2)对oImage进行8*8分块,记为oblk,
(4)将得到的图像存入磁盘,命名为result.bmp
(1)读取嵌入水印的图像即result.bmp,得到mImage,
(3)将mblk[2][2]位置上用下列公式来求加密的水印信息
(4)将JMark解密,得解密后水印信息mark,存盘mark.bmp
JAVA试验用源程序(1)
//把水印结果写磁盘,创建输出图像BufferedImage对象
JAVA试验用源程序(2)
BufferedImage mImage =
String msg) {
7.1 DCT视觉感知模型
7.2 小波视觉感知模型
//得到原始图像的BufferedImage对象
//得到水印图像的BufferedImage对象
//把像素向量形式变成double型
//将像素向量变成矩阵形式
BufferedImage mImage =
BufferedImage oImage =
//得到图像的WritableRaster对象
//定义结果矩阵
//提取算法
} else
} else
}else
}else
8.1仿射变换
8.3.1 平移旋转
JAVA试验用源程序
} catch (IOException ee) {
JAVA试验用源程序
JAVA试验用源程序
// 目的 :Hu不变矩实验
//原始图片二值分割后在水平方向扭曲10度后得到的Hu值
//原始图片二值分割后旋转5度的Hu值
//原始图片二值分割后对图像垂直方向收缩80%
7.770426927759421E-4
7.382736247566968E-4
7.729153250761352E-4
9.1 J2ME概述
9.2 J2ME安装与运行
9.2.2 J2ME环境下的开发步骤
9.3 MIDP编程
StartApp()方法
PauseApp()方法
DestroyApp()方法
Display类
List组件
Graphics类
Command时间处理
(1)新建一个j2ME工程prj_1;
JAVA试验用源程序
Display.getDisplay(this).setCurrent
JAVA试验用源程序
CommandListener {
//依据Logo修改Alpha分量,从而产生透明效果的水印
JAVA试验用源程序
CommandListener {
} catch (IOException e) {
Display.getDisplay(mainMidlet).setCurrent(
Display.getDisplay(mainMidlet).setCurrent(
Imread
MATLAB实验用源程序
MATLAB实验用源程序
2、模糊控制器的设计
(b)输入输出量选择框,输入输出量是“词”而非数值;
3、运行过程说明
4、再次运行说明
5、实验
MATLAB实验用源程序
2、嵌入过程
MATLAB实验用源程序
MATLAB实验用源程序
1、方法rgb2gray
3、方法edge
1997,6(12):1673-1687