How to detect watermark applied on image in matlab
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I am looking for a method which help me to detect watermark applied on image. The watermark I applied is using patchwork method in which I select random patches from an image half of patches I brighten and half of patches I darken.
how to detect watermarking??
I don't know how about detecting watermarking code.
please help me!
I successed insert watermarking but I can't exctract watermark.
Here is my coding...
clc;
A=imread('C:\Users\hp\Desktop\matlab\pictures\lenna.png');%sample image
rnd_x = randperm(size(A,1)-128,7);%choose 7 random unique points on x-axis
rnd_y = randperm(size(A,2)-128,7);%choose 7 random unique points on y-axis
image(A)
for kk = 1:2
for ii = 1:4
for jj = 5:7
piece{jj} = A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)+1;
A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)= piece{jj}; % add the changed pixel values to the original image A
a=imadjust(jj);
end
piece{ii} = A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)-1;%Convert chosen numbers to image pieces
A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)= piece{ii}; % add the changed pixel values to the original image A
b=imadjust(ii);
end
end
Now I have required a method which helps me to detect this watermark applied on image.
1 Kommentar
DGM
am 11 Okt. 2021
Consider the cleanup:
A=imread('peppers.png');%sample image
% these parameters replicate the original behavior
numblocks = [3 4]; % number of [light dark] blocks
blocksize = 128;
tweakamount = [8 2]; % amount to [lighten darken]
%choose random unique points
rnd_y = randperm(size(A,1)-blocksize,sum(numblocks));
rnd_x = randperm(size(A,2)-blocksize,sum(numblocks));
% only need one loop
adjustedblocks = cell(sum(numblocks),1);
for jj = 1:sum(numblocks)
xrange = (rnd_x(jj):(rnd_x(jj)+blocksize-1));
yrange = (rnd_y(jj):(rnd_y(jj)+blocksize-1));
if jj <= numblocks(1)
% lighten this block
A(yrange,xrange,:) = A(yrange,xrange,:) + tweakamount(1);
else
% darken this block
A(yrange,xrange,:) = A(yrange,xrange,:) - tweakamount(2);
end
adjustedblocks{jj} = A(yrange,xrange,:);
end
imshow(A)
I don't even know about trying to detect this. I spent my curiosity just doing this much.
Antworten (2)
Image Analyst
am 11 Okt. 2021
Not that I know of. If you're just brightening random patches of the image by one gray level, it's not really noticeable - it could be a totally legitimate/unaltered image. The only way I know of is if you have the original image to compare it with (subtract it). But it you don't have the original, I'm not sure how you'd find the random patches that are one gray level brighter.
0 Kommentare
yanqi liu
am 11 Okt. 2021
sir, may be use some decompose method,such as svd、dwt、dct and so on,and use logistics to gen location to make watermark
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/763821/image.png)
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!