资源简介
阿里巴巴泄露门使用的傅里叶变换隐藏水印(含源码)
相对于空域方法,频域加盲水印的方法隐匿性更强,抵抗攻击能力更强。这类算法解水印困难,你不知道水印加在那个频段,而且受到攻击往往会破坏图像原本内容。本文简要科普通过频域手段添加数字盲水印。对于web,可以添加一个背景图片,来追踪截图者。所谓盲水印,是指人感知不到的水印,包括看不到或听不见(没错,数字盲水印也能够用于音频)。其主要应用于音像作品、数字图书等,目的是,在不破坏原始作品的情况下,实现版权的防护与追踪。添加数字盲水印的方法简单可分为空域方法和频域方法,这两种方法添加了冗余信息,但在编码和压缩情况不变的情况下,不会使原始图像大小产生变化(原来是10MB添加盲水印之后还是10MB)。
代码片段和文件信息
#include “fft2.h“
FFT2::FFT2(QWidget *parent Qt::WFlags flags)
: QMainWindow(parent flags)
{
ui.setupUi(this);
connect(ui.actionOpenSIGNAL(triggered())thisSLOT(SLOT_LoadPixmap()));
}
FFT2::~FFT2()
{
}
bool isPow2(int x)
{
return !(x&(x-1));
}
void FFT2::SLOT_LoadPixmap()
{
QString filename = QFileDialog::getOpenFileName(
this
“Image“
QDir::currentPath()
“Image file (*.*)“);
if (!filename.isNull())
{
if(!m_Resmap.load(filename))
{
QMessageBox::information(this“Error““Could not load target file“QMessageBox::Ok);
return;
}
m_Resmap=m_Resmap.scaled(256256);
SortImage();
}
}
void FFT2::SortImage()
{
complex *pcplx;
int *powerMax;float *Amp;
int wh;
QImage imagetRImagetGImagetBImagefRImagefGImagefBImageRImageGImageBImage;
QColor rgb;
image=m_Resmap.toImage();
RImage=QImage(m_Resmap.width()m_Resmap.height()QImage::Format_ARGB32);
GImage=RImage;
BImage=RImage;
fRImage=RImage;
fGImage=RImage;
fBImage=RImage;
for (int y=0;y {
for (int x=0;x {
rgb=image.pixel(xy);
RImage.setPixel(QPoint(xy)QColor(rgb.red()00).rgba());
GImage.setPixel(QPoint(xy)QColor(0rgb.green()0).rgba());
BImage.setPixel(QPoint(xy)QColor(00rgb.blue()).rgba());
}
}
tRImage=RImage;
tGImage=GImage;
tBImage=BImage;
power=(int *)malloc(sizeof(int)*m_Resmap.height()*m_Resmap.width());
Amp=(float *)malloc(sizeof(float)*m_Resmap.height()*m_Resmap.width());
pcplx=(complex *)malloc(sizeof(complex)*m_Resmap.height()*m_Resmap.width());
//Sort R
//////////////////////////////////////////////////////////////////////////
Max=0;
h=m_Resmap.height();
w=m_Resmap.width();
for (int y=0;y {
for (int x=0;x {
rgb=image.pixel(xy);
pcplx[y*h+x].im=0;
pcplx[y*h+x].re=rgb.red();
}
}
FFT_2(pcplxpcplxh);
FFT_2_Shift(pcplxpcplxh);
for (int y=0;y {
for (int x=0;x {
power[y*h+x]=sqrt(pcplx[y*h+x].im*pcplx[y*h+x].im+pcplx[y*h+x].re+pcplx[y*h+x].re);
Amp[y*h+x]=atan(pcplx[y*h+x].im/pcplx[y*h+x].re);
//power[y*h+x]=log(long double(1+3*power[y*h+x]));
if (power[y*h+x]>Max)
{
Max=power[y*h+x];
}
}
}
for (int y=0;y {
for (int x=0;x {
fRImage.setPixel(xyQColor(power[y*h+x]*255/Maxpower[y*h+x]*255/Maxpower[y*h+x]*255/Max).rgba());
RImage.setPixel(xyQColor((Amp[y*h+x]+1.571)*255/3.1416(Amp[y*h+x]+1.58)*255/3.1416(Amp[y*h+x]+1.58)*255/3.1416).rgba());
}
}
//Sort G
//////////////////////////////////////////////////////////////////////////
Max=0;
h=m_Resmap.height();
w=m_Resmap.width();
for (int y=0;y {
for (int x=0;x {
rgb=image.pixel(xy);
pcplx[y*h+x].im=0;
pcplx[y*h+x].re=rgb.green();
}
}
FFT_2(pcplxpcplxh);
FFT_2_Shift(pcplxpcplxh);
for (int y=0;y {
for (i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-07 10:43 三角函数到傅里叶变换再到语音识别与数字水印\
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\
文件 36 2017-05-24 17:22 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2.opensdf
文件 879 2017-05-22 15:13 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2.sln
文件 22528 2017-05-25 12:27 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2.suo
文件 6781 2017-05-26 15:05 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\fft2.cpp
文件 448 2017-05-25 11:45 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\fft2.h
文件 64 2017-05-22 15:13 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\fft2.qrc
文件 11360 2017-05-25 11:01 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\fft2.ui
文件 10658 2017-05-22 17:20 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\FFT2.vcxproj
文件 2835 2017-05-22 17:20 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\FFT2.vcxproj.filters
文件 575 2017-05-22 17:12 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\FFT2.vcxproj.user
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\Debug\
文件 2758 2017-05-25 11:45 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\Debug\moc_fft2.cpp
文件 668 2017-05-22 17:12 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\qrc_fft2.cpp
目录 0 2017-05-22 15:13 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\Release\
文件 13991 2017-05-25 11:04 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\GeneratedFiles\ui_fft2.h
文件 163 2017-05-22 15:13 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\main.cpp
文件 5362 2017-05-25 11:48 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\Pt_FFT.cpp
文件 532 2017-05-25 09:10 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\Pt_FFT.h
目录 0 2017-05-22 15:13 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\FFT2\Resources\
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\Win32\
目录 0 2017-05-26 15:18 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\Win32\Debug\
文件 102400 2017-05-26 15:05 三角函数到傅里叶变换再到语音识别与数字水印\FFT2 -附件3 二维傅里叶变换\Win32\Debug\FFT2.exe
目录 0 2017-06-07 09:17 三角函数到傅里叶变换再到语音识别与数字水印\ImageSigner - 附件5 Release 版本的ImageSigner\
目录 0 2017-06-07 09:17 三角函数到傅里叶变换再到语音识别与数字水印\ImageSigner - 附件5 Release 版本的ImageSigner\ImageSigner\
文件 36 2017-06-07 09:08 三角函数到傅里叶变换再到语音识别与数字水印\ImageSigner - 附件5 Release 版本的ImageSigner\ImageSigner.opensdf
文件 900 2017-06-02 11:31 三角函数到傅里叶变换再到语音识别与数字水印\ImageSigner - 附件5 Release 版本的ImageSigner\ImageSigner.sln
文件 24064 2017-06-07 00:27 三角函数到傅里叶变换再到语音识别与数字水印\ImageSigner - 附件5 Release 版本的ImageSigner\ImageSigner.suo
............此处省略161个文件信息
- 上一篇:《编程之美》完整版pdf
- 下一篇:机器学习:实用案例解析R语言
相关资源
- 《快速傅里叶变换:算法与应用》P
- 尽在双11:阿里巴巴技术演进与超越
- 阿里巴巴信息采集器 阿里巴巴国际版
- 傅里叶变换相位解包裹程序
- 尽在双十一 阿里巴巴技术演进与超越
- 阿里技术之瞳---高清版.pdf
- 信号与系统分析吴大正.pdf
- 信息光学_(第二版)苏显渝_清晰
- 快速傅里叶变换算法与应用
- 快速傅里叶变换:算法与应用 扫描版
- 分数阶傅里叶变换及其应用 文献
- 《大数据大创新-阿里巴巴云上数据中
- 大数据之路:阿里巴巴大数据实践
- Fourier Transform – Signal Processing傅里叶
- 单片机LED音乐频谱设计
- 企业IT架构转型之道 阿里巴巴中台战
- 傅里叶变换基频获取算法
- 阿里巴巴编码规范 基础技能认证 考题
- 音频信号分析仪(快速傅里叶变换)
- 基于分数阶傅里叶变换的参数估计
- 音频信号分析仪(快速傅里叶变换)
- 傅里叶变换在频分复用中的应用
- 基于分数阶傅里叶变换的相位迭代图
- 图像傅里叶变换简单代码实现
- 计算傅里叶变换全息图实验
- noi2019冬令营 快速傅里叶变换 宋新波
- verilog编写的FFT
- 利用分数阶傅里叶变换对线性调频信
- 细化FFT的短时傅里叶变换方法
- 傅里叶变换-重要公式.pdf
评论
共有 条评论