MATLAB Answers

0

I want to conclude that image is forged or not depending on below code.Please suggest solution.

Asked by Pranav Joshi on 16 Sep 2018
Latest activity Commented on by Pranav Joshi on 21 Sep 2018
function ela = generate_ela(filename)
if nargin > 1 | nargin < 1
error('usage: generate_ela(filename)');
end
img_orig = filename;
ula = imfinfo(img_orig);
disp(ula);
orig = imread(img_orig);
%msgbox(filename);
tempfile = 'H:\temp.jpg';
imwrite(orig,tempfile,'jpeg','Quality',73);
temp = imread(tempfile);
%delete(tempfile);
idiff = uint8(abs(double(orig)-double(temp))*30);
me = max(max(max(idiff)));
idiff = uint8(double(idiff)*255/double(me));
imwrite(idiff,'ela.jpg');
figure;
imshow(idiff);
end

  3 Comments

The resulting image mostly detects sharp edges. It would be difficult to relate that to image forgery. For example run your code on car1.jpg
@jonas Forged in the sense whether original image is tampered or not i.e edited in photoshop or any other editing tool

Sign in to comment.

1 Answer

Answer by Image Analyst
on 16 Sep 2018

Looks like you're just seeing the image images are equal or not. So you can bail on that code and just simply use isequal():
if isequal(orig, temp)
% No forgery
else
% Forgery - images don't match.
end