在图像处理中为了处理上的方便经常需要对图像进行分块,分块后需要对整块进行处理。
此处给出了两种定位篡改块的处理方式。
lilizong【at】gmail
方式1:直接对所在块操作。
%%%%%%%%%%%%
clear;
clc;
key1=32;
key2=32;
A=imread('../image/hetong.bmp');
V=imread('../image/2.bmp');
A=im2bw(A);
V=im2bw(V);
[m,n]=size(A);
AC=cell(key1,key2);%将图像分为8*8的块
mkey1=floor(m/key1);
nkey2=floor(m/key2);
for i=1:mkey1
for j=1:nkey2
AC{i,j}=A((i-1)*key1+1:i*key1,(j-1)*key2+1:j*key2);
end
end
VC=cell(key1,key2);%将图像分为8*8的块
for i=1:mkey1
for j=1:nkey2
VC{i,j}=V((i-1)*key1+1:i*key1,(j-1)*key2+1:j*key2);
end
end
a=zeros(key1,key2);
%用来作为临时数组,保存从每个8*8块中提取出来的数值
B=zeros(mkey1,nkey2);
%用来存放8*8分块的均值
for i=1:(mkey1)
for j=1:(nkey2)
a=AC(i,j);
ab=cell2mat(a);
%取得当前的块,并将之转化
w=0;
for ii=1:key1
for jj=1:key2
w=w+ab(ii,jj);
end
end
v=VC(i,j);
av=cell2mat(v);
%取得当前的块,并将之转化
w2=0;
for ii=1:key1
for jj=1:key2
w2=w2+av(ii,jj);
end
end
if w~=w2
B(i,j)=0;
else
B(i,j)=1;
end
end
end
subplot(1,3,1),imshow(A);
set(gca,'Title',text('String','原始图像'))
subplot(1,3,2),imshow(V);
set(gca,'Title',text('String','篡改图像'))
subplot(1,3,3),imshow(B,[]);
set(gca,'Title',text('String',[num2str(key1),'*',num2str(key2),'定位图像']))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
方式2:直接将分块处理为一个像素,然后再对定位图像进行缩放。
A=imread('../image/hetong.bmp');
V=imread('../image/2.bmp');
av=xor(A,V);
A=av;
figure,imshow(av);
key1=8;
key2=8;
mkey1=512/key1;
nkey2=512/key2;
B=cell(key1,key2);%将图像分为8*8的块
for i=1:mkey1
for j=1:nkey2
B{i,j}=A((i-1)*key1+1:i*key1,(j-1)*key2+1:j*key2);
end
end
a=zeros(key1,key2);
%用来作为临时数组,保存从每个8*8块中提取出来的数值
averageB=zeros(mkey1,nkey2);
%用来存放8*8分块的均值
for i=1:(mkey1)
for j=1:(nkey2)
b=B(i,j);
b=cell2mat(b);
%取得当前的块,并将之转化
w=0;
for ii=1:key1
for jj=1:key2
if b(ii,jj)==1
w=100;
end
end
end
if w==100
averageB(i,j)=0;
else
averageB(i,j)=255;
end
end
end
w=imresize(averageB,key1);
figure,imshow(w,[]);
w=double(w);
imwrite(w,'../image/re.bmp');
分享到:
相关推荐
实验结果表明,该方法能够区分旋转与缩放的操作历史痕迹,进行篡改伪造图像的自动判断与篡改区域定位; 并且当 伪造图像再次经历重采样操作后,仍能区分出图像中的不同插值区域,即对再次重采样操作具有一定的鲁棒性...
摘 要:针对医学图像面临恶意篡改、信息窃取和泄露等...另外,如果图像遭到篡改,通过计算差值图像,则能精确定位篡改位置及篡改形状。实验结果表明,该方案不仅具有较好的安全性,而且达到良好的篡改检测和定位效果。
基于深度学习的JPEG图像篡改检测技术,运用深度学习强大的特征学习和模型表达能力,提取JPEG压缩图像的特征信息,通过实现对篡改图像的检测与篡改区域的定位,提高篡改检测准确率和篡改区域的定位精度。
ADQ图像篡改定位算法与样例,代码内有详细解释说明
利用JPEG压缩机制实现图像篡改区域的定位,注:在实现前需安装JPEG工具箱。
提出一种改进的图像篡改定位及恢复的双水印算法,首先将图像分成2 2 大小的图像块,提取每个图像 块的特征信息, 2 个图像块的特征信息形成的水印加密后嵌入在另外2个不重叠的图像块中,在篡改定位中, 不 仅采用校验码的...
最后,通过块特征的类间匹配定位篡改区域。所提算法通过图像块分类和类间匹配,在保证检测效果的同时,有效地降低了特征匹配定位篡改区域阶段的时间复杂度。实验结果表明,所提算法检测准确率为97.79%,召回率为90....
针对目前图像篡改定位与恢复的水印算法在篡改定位精度和篡改恢复性能方面存在的不足, 提出一种 精确的图像篡改定位与恢复的三水印算法 该算法在最低有效位( LSB) 方法的基础上, 采用二进制编码的方式生成 检测水印...
利用脆弱水印对图像进行完整性保护,能够进行篡改定位。压缩包内容包括matlab源码工程和word报告,源码注释清晰
定位篡改实体组的矢量地图脆弱水印算法.docx
可用于检测图像被篡改位置的脆弱水印 matlab实现
HRDA-Net:面向真实场景的图像多篡改检测与定位算法.docx
档案管理中电子文件防篡改技术的应用及启示.pdf
利用混沌对初值极端敏感性的特点,能够定位检测对加入水印图像的篡改,且水印提取不需要原始图像。实验结果表明,嵌入水印后的图像的视觉好;算法具有图像内容局部篡改检测的有效性、敏感性以及良好的篡改定位能力。
图像篡改定位效果呵呵
数据签名防篡改工作原理和例子
篡改猴 4.19.0.crx
包含各种java防篡改方式,主要介绍代码混淆和加密源文件两种方式的基本原理。
将最大变换尺度的小波近似系数以向量形式表示各子块,一个子块集组成一个矩阵,利用主成分分析方法(PCA)对这两个特征矩阵进行二次特征提取,利用Pearson相关系数法对二次提取后的子块特征进行篡改检测,标记出篡改...
1、实现效果:见链接:...2、基于帧间相关性和K-means的视频篡改检测(Matlab代码) 3、适用于计算机,电子信息工程等专业的大学生课程设计和毕业设计。