# Detecting copy-move forgery in images

GROUPS:
 olivier k 2 Votes Mathematica 9 offers new image processing capabilities.There some quite interesting example on Matlab to detect copy-move forgery in images. I was wondering if any one had some ideas to implement such a functionality based on Mathematica 9 ?As good basis to start with some information and Matlab code :A SIFT-based forensic method for copy-move detectionKind regards, Olivier
4 years ago
8 Replies
 Sean Clarke 1 Vote There's a lot to read there. To implement this, you will want to break your problem up into the same parts that the video shows. The first half appears to be some cluster analysis to identify parts of the image that are likely candidates for copied parts. Can you tell us more about how they implement this and what methods they use?The second half is more straightforward and there are built in functions for it. This part involves finding the corresponding points of the matched parts and finding the geometric transfomation that relates them. To do this use ImageCorrespondingPoints and then pass the corresponding points to FindGeometricTransform .
4 years ago
 Jari Kirma 3 Votes It might be worth mentioning that ImageKeypoints provided by Mathematica uses a SURF ( http://en.wikipedia.org/wiki/SURF ) detector to find keypoints. SURF is development partially based on SIFT, which authors of the referred paper have obviously used. ImageCorrespondingPoints and ImageFeatureTrack use SURF data from ImageKeypoints to do their job.
4 years ago
 Matthias Odisio 1 Vote Jari,It is true that ImageKeypoints uses SURF, but ImageFeatureTrack does not. Conceptually, ImageFeatureTrack uses corners.Matthias
4 years ago
4 years ago
 Sam Carrettie 1 Vote Marco, this is such a simple but neat trick! I tried (naively) a bit different approach with resizing image, but that seems to pickup on sharper edges only, I think:img = Import["http://community.wolfram.com/c/portal/getImageAttachment?filename=Unknown.jpeg&userId=48754"];id = ImageDimensions[img];ImageSubtract[#, ImageResize[ImageResize[#, id/5], id]] &@img