├── .gitignore ├── README.md ├── articles ├── Q_K_2013_IP.pdf ├── farid-sigproc09.pdf └── forensic1.pdf ├── docs ├── Image_splicing_detection.docx ├── SotA_D2.1_MOD4.docx ├── experiments │ ├── experiments.docx │ ├── face_classification │ │ ├── classification_output_dsi_crossvalidation.mat │ │ ├── classification_output_dsi_dso.mat │ │ ├── classification_output_dso_crossvalidation.mat │ │ ├── classification_output_dso_dsi.mat │ │ ├── train_dsi_crossvalidation.jpg │ │ ├── train_dsi_crossvalidation_pr_rec.jpg │ │ ├── train_dsi_test_dso.jpg │ │ ├── train_dsi_test_dso_prec_rec.jpg │ │ ├── train_dso_crossvalidation.jpg │ │ ├── train_dso_crossvalidation_prec_rec.jpg │ │ ├── train_dso_test_dsi.jpg │ │ └── train_dso_test_dsi_prec_rec.jpg │ ├── region_module │ │ ├── prec_rec_normal.jpg │ │ ├── roc_normal_detection_map.jpg │ │ ├── roc_svm_detection_map.jpg │ │ ├── roc_svm_global_detection_map.jpg │ │ ├── train_cc │ │ │ ├── prec_rec_normal.jpg │ │ │ ├── prec_rec_normal_global.jpg │ │ │ ├── prec_rec_svm.jpg │ │ │ ├── prec_rec_svm_global.jpg │ │ │ ├── roc_normal.jpg │ │ │ ├── roc_normal_global.jpg │ │ │ ├── roc_svm.jpg │ │ │ └── roc_svm_global.jpg │ │ └── train_dso │ │ │ ├── prec_rec_normal.jpg │ │ │ ├── prec_rec_normal_global.jpg │ │ │ ├── prec_rec_svm.jpg │ │ │ ├── prec_rec_svm_global.jpg │ │ │ ├── roc_normal.jpg │ │ │ ├── roc_normal_global.jpg │ │ │ ├── roc_svm.jpg │ │ │ └── roc_svm_global.jpg │ └── variance analysis │ │ ├── variance_examples_blue.png │ │ ├── variance_examples_blue_spliced.png │ │ ├── variance_examples_green.png │ │ ├── variance_examples_green_spliced.png │ │ ├── variance_examples_red.png │ │ ├── variance_examples_red_spliced.png │ │ ├── variance_examples_y.png │ │ ├── variance_examples_y_compare.png │ │ └── variance_examples_y_spliced.png ├── pipeline │ ├── beamercolorthemetorinoth.sty │ ├── beamerfontthemetorinoth.sty │ ├── beamerinnerthemetorinoth.sty │ ├── beamerouterthemetorinoth.sty │ ├── beamerthemeTorinoTh.sty │ ├── contents.tex │ ├── firenze.jpg │ ├── hf-tikz.sty │ ├── images │ │ ├── cakes.jpg │ │ ├── difference.jpg │ │ ├── difference_plot.jpg │ │ ├── iic.jpg │ │ ├── metrics.jpg │ │ ├── results.jpg │ │ ├── riess.jpg │ │ ├── rois.jpg │ │ └── victor.jpg │ ├── pipeline.pptx │ ├── proof.sty │ ├── references.tex │ ├── slides.aux │ ├── slides.dvi │ ├── slides.nav │ ├── slides.out │ ├── slides.pdf │ └── slides.tex ├── report.docx ├── review │ ├── beamercolorthemetorinoth.sty │ ├── beamerfontthemetorinoth.sty │ ├── beamerinnerthemetorinoth.sty │ ├── beamerouterthemetorinoth.sty │ ├── beamerthemeTorinoTh.sty │ ├── contents.tex │ ├── firenze.jpg │ ├── hf-tikz.sty │ ├── images │ │ ├── cakes.jpg │ │ ├── carvalho.jpg │ │ ├── carvalho2.jpg │ │ ├── dichromatic-plane.jpg │ │ ├── ducks.jpg │ │ ├── image-editing.jpg │ │ ├── lighting-based.jpg │ │ ├── reflectance.jpg │ │ ├── riess.jpg │ │ ├── tampered-image.jpg │ │ └── victor.jpg │ ├── proof.sty │ ├── references.tex │ ├── slides.aux │ ├── slides.dvi │ ├── slides.nav │ ├── slides.out │ ├── slides.pdf │ └── slides.tex ├── slides │ ├── beamercolorthemetorinoth.sty │ ├── beamerfontthemetorinoth.sty │ ├── beamerinnerthemetorinoth.sty │ ├── beamerouterthemetorinoth.sty │ ├── beamerthemeTorinoTh.sty │ ├── contents.tex │ ├── discorso_tesi.txt │ ├── firenze.jpg │ ├── hf-tikz.sty │ ├── images │ │ ├── bush.jpg │ │ ├── cakes.jpg │ │ ├── carvalho.jpg │ │ ├── carvalho2.jpg │ │ ├── detectionmapresult.jpg │ │ ├── detectionmapresult_2.jpg │ │ ├── dichromatic-plane.jpg │ │ ├── dsi_sample_spliced.jpg │ │ ├── dso_sample_spliced.jpg │ │ ├── facedetectionoutput.jpg │ │ ├── facedetectionoutput_letters.jpg │ │ ├── iic.jpg │ │ ├── image-editing.jpg │ │ ├── iraq.jpg │ │ ├── lighting-based.jpg │ │ ├── pipeline_faces_1.jpg │ │ ├── pipeline_faces_2.jpg │ │ ├── pipeline_faces_3.jpg │ │ ├── pipeline_faces_3_stroke.jpg │ │ ├── pipeline_faces_4.jpg │ │ ├── pipeline_faces_5.jpg │ │ ├── pipeline_faces_6.jpg │ │ ├── pipeline_regions_1.jpg │ │ ├── pipeline_regions_2.jpg │ │ ├── pipeline_regions_3.jpg │ │ ├── pipeline_regions_4.jpg │ │ ├── pipeline_regions_5.jpg │ │ ├── pipeline_regions_5_OLD.jpg │ │ ├── reflectance.jpg │ │ ├── regionalresult.jpg │ │ ├── regionalresult_2.jpg │ │ ├── regiondetectionoutput.jpg │ │ ├── riess.jpg │ │ ├── splicedcchor.jpg │ │ ├── spliceddsover.jpg │ │ ├── tampered-image.jpg │ │ └── victor.jpg │ ├── proof.sty │ ├── references.tex │ ├── slides.aux │ ├── slides.dvi │ ├── slides.nav │ ├── slides.out │ ├── slides.tex │ └── slides_cioni.pdf └── thesis │ ├── 8bit.def │ ├── AdobeColorProfiles.tex │ ├── AdobeExternalProfiles.tex │ ├── ICC_LICENSE.txt │ ├── abstract.pdf │ ├── abstract.tex │ ├── algorithm2e.sty │ ├── algorithmic.sty │ ├── appendice.tex │ ├── armglyphs.dfu │ ├── bibliography.bib │ ├── capitolo1.tex │ ├── capitolo2.tex │ ├── capitolo3.tex │ ├── coated_FOGRA39L_argl.icc │ ├── conclusioni.tex │ ├── figure │ ├── LOGO.pdf │ ├── bush.jpg │ ├── colorchecker_sample.jpg │ ├── colormap_jet.png │ ├── compareknnweights.jpg │ ├── detectionmapresult.jpg │ ├── dichromatic_reflection_model.png │ ├── dsi_sample_normal.jpg │ ├── dsi_sample_spliced.jpg │ ├── dso_sample.jpg │ ├── dso_sample_spliced.jpg │ ├── facedetected.jpg │ ├── facedetectionoutput.jpg │ ├── facesplicingdetectionoutput.jpg │ ├── firenze.eps │ ├── firenze.jpg │ ├── firsttampered.png │ ├── forgerydetectionclass.jpg │ ├── iic_space.jpg │ ├── illuminant_maps.jpg │ ├── imagesplicing.jpg │ ├── iraq.jpg │ ├── ojsimpson.jpg │ ├── pipeline_faces.jpg │ ├── pipeline_regions.jpg │ ├── regiondetectionoutput.jpg │ ├── regionsmethod.jpg │ ├── shadows.jpg │ ├── shadows_inconsistencies.jpg │ ├── splicedcchor.jpg │ ├── splicedccver.jpg │ ├── spliceddsohor.jpg │ ├── spliceddsover.jpg │ ├── splicing-33.jpg │ ├── splicing-33_gge_map.jpg │ ├── splicing-33_gge_map_faces.jpg │ ├── splicing-33_iic_map.jpg │ ├── splicing-56-mask.jpg │ ├── splicing-56.jpg │ ├── tiago_method_extraction.jpg │ ├── tiago_method_full.jpg │ ├── train_cc │ │ ├── prec_rec_normal.jpg │ │ ├── prec_rec_normal_global.jpg │ │ ├── prec_rec_svm.jpg │ │ ├── prec_rec_svm_global.jpg │ │ ├── roc_normal.jpg │ │ ├── roc_normal_global.jpg │ │ ├── roc_svm.jpg │ │ └── roc_svm_global.jpg │ ├── train_dsi_crossvalidation.jpg │ ├── train_dsi_crossvalidation_prec_rec.jpg │ ├── train_dsi_test_dso.jpg │ ├── train_dsi_test_dso_prec_rec.jpg │ ├── train_dso │ │ ├── prec_rec_svm.jpg │ │ ├── prec_rec_svm_global.jpg │ │ ├── roc_svm.jpg │ │ └── roc_svm_global.jpg │ ├── train_dso_crossvalidation.jpg │ ├── train_dso_crossvalidation_prec_rec.jpg │ ├── train_dso_test_dsi.jpg │ ├── train_dso_test_dsi_prec_rec.jpg │ ├── uni.eps │ └── uni.jpg │ ├── glyphtounicode-cmr.tex │ ├── ieee.bst │ ├── index.pdf │ ├── introduzione.tex │ ├── l8uarb.def │ ├── l8uarm.def │ ├── l8ucyr.def │ ├── l8udev.def │ ├── l8uenc.def │ ├── l8ugrk.def │ ├── l8ulat.def │ ├── l8umath.def │ ├── pdfa.xmp │ ├── pdfa.xmpi │ ├── pdfe.xmp │ ├── pdfvt.xmp │ ├── pdfx.sty │ ├── pdfx.xmp │ ├── phdthesis.sty │ ├── phdthesis_it_eng.sty │ ├── ringraziamenti.tex │ ├── sRGB_IEC61966-2-1_black_scaled.icc │ ├── tesi.blg │ ├── tesi.dvi │ ├── tesi.ilg │ ├── tesi.ind │ ├── tesi.pdf │ ├── tesi.tex │ ├── tesi.xmpdata │ ├── thesis.pdf │ └── verbments.sty ├── modules └── inm_apr_2017.pdf └── source ├── README.md ├── classification.py ├── config.py ├── data ├── face_module │ ├── DSI-1 │ │ ├── model_GGE_acc.pkl │ │ ├── model_GGE_bic.pkl │ │ ├── model_GGE_ccv.pkl │ │ ├── model_GGE_lch.pkl │ │ ├── model_GGE_sasi.pkl │ │ ├── model_GGE_unser.pkl │ │ ├── model_IIC_acc.pkl │ │ ├── model_IIC_bic.pkl │ │ ├── model_IIC_ccv.pkl │ │ ├── model_IIC_lch.pkl │ │ ├── model_IIC_sasi.pkl │ │ └── model_IIC_unser.pkl │ ├── DSO-1 │ │ ├── model.pkl │ │ ├── model.pkl_01.npy │ │ ├── model.pkl_02.npy │ │ ├── model.pkl_03.npy │ │ ├── model.pkl_04.npy │ │ ├── model.pkl_05.npy │ │ ├── model.pkl_06.npy │ │ ├── model.pkl_07.npy │ │ ├── model.pkl_08.npy │ │ ├── model.pkl_09.npy │ │ ├── model.pkl_10.npy │ │ ├── model.pkl_11.npy │ │ ├── model_GGE_acc.pkl │ │ ├── model_GGE_bic.pkl │ │ ├── model_GGE_ccv.pkl │ │ ├── model_GGE_lch.pkl │ │ ├── model_GGE_sasi.pkl │ │ ├── model_GGE_unser.pkl │ │ ├── model_IIC_acc.pkl │ │ ├── model_IIC_bic.pkl │ │ ├── model_IIC_ccv.pkl │ │ ├── model_IIC_lch.pkl │ │ ├── model_IIC_sasi.pkl │ │ ├── model_IIC_unser.pkl │ │ ├── model_acc.pkl │ │ ├── model_bic.pkl │ │ ├── model_dso1.pkl │ │ └── model_svr_dso1.pkl │ ├── haarcascade_frontalface_alt.xml │ ├── haarcascade_frontalface_alt2.xml │ └── haarcascade_frontalface_default.xml ├── regions_module │ ├── distances_gge_maps │ │ ├── distancesNegative_grayedge.txt │ │ ├── distancesNegative_grayworld.txt │ │ ├── distancesNegative_maxrgb.txt │ │ ├── distancesNegative_secondgrayedge.txt │ │ ├── distancesNegative_shadesofgray.txt │ │ ├── distancesPositive_grayedge.txt │ │ ├── distancesPositive_grayworld.txt │ │ ├── distancesPositive_maxrgb.txt │ │ ├── distancesPositive_secondgrayedge.txt │ │ └── distancesPositive_shadesofgray.txt │ ├── features │ │ ├── trained_features_horizontal_colorchecker.txt │ │ ├── trained_features_horizontal_dso.txt │ │ ├── trained_features_vertical_colorchecker.txt │ │ └── trained_features_vertical_dso.txt │ └── models │ │ ├── trained_model_horizontal_colorchecker.pkl │ │ ├── trained_model_horizontal_colorchecker_global.pkl │ │ ├── trained_model_horizontal_dso.pkl │ │ ├── trained_model_horizontal_dso_global.pkl │ │ ├── trained_model_vertical_colorchecker.pkl │ │ ├── trained_model_vertical_colorchecker_global.pkl │ │ ├── trained_model_vertical_dso.pkl │ │ └── trained_model_vertical_dso_global.pkl └── sample.png ├── descriptors.py ├── descriptors ├── acc │ └── source │ │ ├── Makefile │ │ ├── README.txt │ │ ├── app │ │ ├── Makefile │ │ ├── acc.so │ │ ├── acc_distance.c │ │ ├── acc_extraction.c │ │ ├── acc_plugin.c │ │ ├── acc_teste.so │ │ ├── black.txt │ │ ├── car.txt │ │ ├── house_bin.txt │ │ └── white.txt │ │ ├── bin │ │ └── acc_extraction │ │ ├── include │ │ ├── acc.h │ │ ├── adjacency.h │ │ ├── cimage.h │ │ ├── color.h │ │ ├── common.h │ │ ├── comptime.h │ │ ├── featurevector.h │ │ ├── gch.h │ │ ├── heap.h │ │ ├── histogram.h │ │ ├── image.h │ │ ├── libcolordescriptors.h │ │ ├── mathematics.h │ │ ├── metrics.h │ │ ├── queue.h │ │ ├── set.h │ │ ├── sort.h │ │ └── stack.h │ │ ├── lib │ │ └── libcolordescriptors.a │ │ ├── obj │ │ ├── acc.o │ │ ├── adjacency.o │ │ ├── cimage.o │ │ ├── color.o │ │ ├── common.o │ │ ├── comptime.o │ │ ├── featurevector.o │ │ ├── gch.o │ │ ├── heap.o │ │ ├── histogram.o │ │ ├── image.o │ │ ├── mathematics.o │ │ ├── metrics.o │ │ ├── queue.o │ │ ├── set.o │ │ ├── sort.o │ │ └── stack.o │ │ └── src │ │ ├── acc.c │ │ ├── adjacency.c │ │ ├── cimage.c │ │ ├── color.c │ │ ├── common.c │ │ ├── comptime.c │ │ ├── featurevector.c │ │ ├── gch.c │ │ ├── heap.c │ │ ├── histogram.c │ │ ├── image.c │ │ ├── mathematics.c │ │ ├── metrics.c │ │ ├── queue.c │ │ ├── set.c │ │ ├── sort.c │ │ └── stack.c ├── bic │ └── source │ │ ├── Makefile │ │ ├── app │ │ ├── Makefile │ │ ├── bic.so │ │ ├── bic_distance.c │ │ ├── bic_extraction.c │ │ └── bic_plugin.c │ │ ├── bin │ │ ├── bic_extraction │ │ ├── dd.txt │ │ ├── face-2.ppm │ │ ├── face-2.txt │ │ ├── test.ppm │ │ └── test.txt │ │ ├── include │ │ ├── adjacency.h │ │ ├── bic.h │ │ ├── cbc.h │ │ ├── ccv.h │ │ ├── cimage.h │ │ ├── color.h │ │ ├── common.h │ │ ├── comptime.h │ │ ├── emd.h │ │ ├── featurevector.h │ │ ├── gch.h │ │ ├── heap.h │ │ ├── histogram.h │ │ ├── image.h │ │ ├── irm.h │ │ ├── lch.h │ │ ├── libcolordescriptors.h │ │ ├── libcolordescriptors_bkp.h │ │ ├── mathematics.h │ │ ├── metrics.h │ │ ├── queue.h │ │ ├── set.h │ │ ├── sort.h │ │ └── stack.h │ │ ├── lib │ │ └── libcolordescriptors.a │ │ ├── obj │ │ ├── adjacency.o │ │ ├── bic.o │ │ ├── cimage.o │ │ ├── color.o │ │ ├── common.o │ │ ├── comptime.o │ │ ├── featurevector.o │ │ ├── gch.o │ │ ├── heap.o │ │ ├── histogram.o │ │ ├── image.o │ │ ├── mathematics.o │ │ ├── metrics.o │ │ ├── queue.o │ │ ├── set.o │ │ ├── sort.o │ │ └── stack.o │ │ └── src │ │ ├── adjacency.c │ │ ├── bic.c │ │ ├── cimage.c │ │ ├── color.c │ │ ├── common.c │ │ ├── comptime.c │ │ ├── featurevector.c │ │ ├── gch.c │ │ ├── heap.c │ │ ├── histogram.c │ │ ├── image.c │ │ ├── mathematics.c │ │ ├── metrics.c │ │ ├── queue.c │ │ ├── set.c │ │ ├── sort.c │ │ └── stack.c ├── ccv │ └── source │ │ ├── Makefile │ │ ├── app │ │ ├── Makefile │ │ ├── ccv.so │ │ ├── ccv_distance.c │ │ ├── ccv_extraction.c │ │ ├── ccv_plugin.c │ │ └── england.desc │ │ ├── bin │ │ └── ccv_extraction │ │ ├── include │ │ ├── adjacency.h │ │ ├── bic.h │ │ ├── cbc.h │ │ ├── ccv.h │ │ ├── cimage.h │ │ ├── color.h │ │ ├── common.h │ │ ├── comptime.h │ │ ├── emd.h │ │ ├── featurevector.h │ │ ├── gch.h │ │ ├── heap.h │ │ ├── histogram.h │ │ ├── image.h │ │ ├── irm.h │ │ ├── lch.h │ │ ├── libcolordescriptors.h │ │ ├── libcolordescriptors_bkp.h │ │ ├── mathematics.h │ │ ├── metrics.h │ │ ├── queue.h │ │ ├── set.h │ │ ├── sort.h │ │ └── stack.h │ │ ├── lib │ │ └── libcolordescriptors.a │ │ ├── obj │ │ ├── adjacency.o │ │ ├── bic.o │ │ ├── cbc.o │ │ ├── ccv.o │ │ ├── cimage.o │ │ ├── color.o │ │ ├── common.o │ │ ├── comptime.o │ │ ├── emd.o │ │ ├── featurevector.o │ │ ├── gch.o │ │ ├── heap.o │ │ ├── histogram.o │ │ ├── image.o │ │ ├── irm.o │ │ ├── lch.o │ │ ├── mathematics.o │ │ ├── metrics.o │ │ ├── queue.o │ │ ├── set.o │ │ ├── sort.o │ │ └── stack.o │ │ └── src │ │ ├── adjacency.c │ │ ├── bic.c │ │ ├── cbc.c │ │ ├── ccv.c │ │ ├── cimage.c │ │ ├── color.c │ │ ├── common.c │ │ ├── comptime.c │ │ ├── emd.c │ │ ├── featurevector.c │ │ ├── gch.c │ │ ├── heap.c │ │ ├── histogram.c │ │ ├── image.c │ │ ├── irm.c │ │ ├── lch.c │ │ ├── mathematics.c │ │ ├── metrics.c │ │ ├── queue.c │ │ ├── set.c │ │ ├── sort.c │ │ └── stack.c └── lch │ └── source │ ├── Makefile │ ├── app │ ├── Makefile │ ├── eiffel.lch │ ├── england.lch │ ├── india.lch │ ├── lch.so │ ├── lch_distance.c │ ├── lch_extraction.c │ └── lch_plugin.c │ ├── bin │ ├── face-1.ppm │ ├── face-1.txt │ ├── generatebic_bkp │ ├── lch_distance │ └── lch_extraction │ ├── include │ ├── adjacency.h │ ├── bic.h │ ├── cbc.h │ ├── ccv.h │ ├── cimage.h │ ├── color.h │ ├── common.h │ ├── comptime.h │ ├── emd.h │ ├── featurevector.h │ ├── gch.h │ ├── heap.h │ ├── histogram.h │ ├── image.h │ ├── irm.h │ ├── lch.h │ ├── libcolordescriptors.h │ ├── libcolordescriptors_bkp.h │ ├── mathematics.h │ ├── metrics.h │ ├── queue.h │ ├── set.h │ ├── sort.h │ └── stack.h │ ├── lib │ └── libcolordescriptors.a │ ├── obj │ ├── adjacency.o │ ├── bic.o │ ├── cbc.o │ ├── ccv.o │ ├── cimage.o │ ├── color.o │ ├── common.o │ ├── comptime.o │ ├── emd.o │ ├── featurevector.o │ ├── gch.o │ ├── heap.o │ ├── histogram.o │ ├── image.o │ ├── irm.o │ ├── lch.o │ ├── mathematics.o │ ├── metrics.o │ ├── queue.o │ ├── set.o │ ├── sort.o │ └── stack.o │ └── src │ ├── adjacency.c │ ├── bic.c │ ├── cbc.c │ ├── ccv.c │ ├── cimage.c │ ├── color.c │ ├── common.c │ ├── comptime.c │ ├── emd.c │ ├── featurevector.c │ ├── gch.c │ ├── heap.c │ ├── histogram.c │ ├── image.c │ ├── irm.c │ ├── lch.c │ ├── lch_old.c │ ├── mathematics.c │ ├── metrics.c │ ├── queue.c │ ├── set.c │ ├── sort.c │ └── stack.c ├── distanceMetrics.py ├── experiments.py ├── faceSplicingDetector.py ├── illuminantMaps.py ├── illuminants ├── CMakeLists.txt ├── COPYING ├── README.txt ├── build │ ├── CMakeFiles │ │ ├── 3.5.0 │ │ │ ├── CMakeCXXCompiler.cmake │ │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ │ ├── CMakeSystem.cmake │ │ │ ├── CompilerIdC │ │ │ │ ├── CMakeCCompilerId.c │ │ │ │ └── a.out │ │ │ └── CompilerIdCXX │ │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ │ └── a.out │ │ ├── CMakeDirectoryInformation.cmake │ │ ├── Makefile.cmake │ │ ├── Makefile2 │ │ ├── TargetDirectories.txt │ │ ├── cmake.check_cache │ │ ├── feature_tests.bin │ │ ├── feature_tests.c │ │ ├── feature_tests.cxx │ │ └── progress.marks │ ├── cmake_install.cmake │ └── config.txt ├── config.txt ├── illumestimators │ ├── common │ │ ├── color.cpp │ │ ├── color.h │ │ ├── derivative.cpp │ │ ├── derivative.h │ │ ├── mask.cpp │ │ ├── mask.h │ │ ├── statistics.cpp │ │ └── statistics.h │ ├── fusion │ │ ├── config_histogram_voting_fusion.cpp │ │ ├── config_histogram_voting_fusion.h │ │ ├── fusion.cpp │ │ ├── fusion.h │ │ ├── histogramVotingFusion.cpp │ │ └── histogramVotingFusion.h │ ├── grayworld │ │ ├── grayworldestimator.cpp │ │ └── grayworldestimator.h │ ├── iic │ │ ├── config_iebv.cpp │ │ ├── config_iebv.h │ │ ├── iebv.cpp │ │ ├── iebv.h │ │ ├── iebv_estimator.cpp │ │ ├── iebv_estimator.h │ │ ├── iic.cpp │ │ └── iic.h │ ├── illuminantestimator.cpp │ └── illuminantestimator.h ├── img │ └── tangerines.jpg ├── lille │ ├── commands │ │ ├── command_lgrayworld.cpp │ │ ├── command_lgrayworld.h │ │ ├── command_liebv.cpp │ │ └── command_liebv.h │ ├── config │ │ ├── config_iebv_avg.txt │ │ ├── config_iebv_harsh.txt │ │ └── config_iebv_lenient.txt │ ├── lgrayworld_config.cpp │ ├── lgrayworld_config.h │ ├── liebv_config.cpp │ ├── liebv_config.h │ ├── paint_superpixel.cpp │ └── paint_superpixel.h ├── rbase │ ├── color.cpp │ ├── color.h │ ├── color_space.cpp │ ├── color_space.h │ ├── illum.cpp │ ├── illum.h │ ├── img_read.cpp │ ├── img_read.h │ ├── img_read_config.cpp │ └── img_read_config.h ├── shell │ ├── COPYING │ ├── command.h │ ├── config.cpp │ ├── config.h │ ├── main.cxx │ ├── modules.cpp │ └── modules.h └── superpixels │ ├── commands │ ├── commandfelzenszwalb.cpp │ ├── commandfelzenszwalb.h │ ├── felzenszwalbconfig.cpp │ ├── felzenszwalbconfig.h │ ├── patchesconfig.cpp │ └── patchesconfig.h │ ├── felzenszwalb │ ├── felzenszwalbsegmentation.cpp │ ├── felzenszwalbsegmentation.h │ └── implementation │ │ ├── COPYING │ │ ├── Makefile │ │ ├── README │ │ ├── convolve.h │ │ ├── disjoint-set.h │ │ ├── filter.h │ │ ├── image.h │ │ ├── imconv.h │ │ ├── imutil.h │ │ ├── misc.h │ │ ├── pnmfile.h │ │ ├── segment-graph.h │ │ ├── segment-image.h │ │ └── segment.cpp │ ├── normal_image.cpp │ ├── normal_image.h │ ├── patches │ ├── patchessegmentation.cpp │ └── patchessegmentation.h │ ├── superpixel.h │ ├── superpixelsegmentation.cpp │ └── superpixelsegmentation.h ├── loadDatasets.py ├── main.py ├── matlab ├── balancing │ ├── XYZ2xy.m │ ├── cbCAT.m │ ├── cbgamutcorr.m │ ├── cbimread.m │ ├── cbmired2temp.m │ ├── cbreshape.m │ ├── cbsaturate.m │ ├── cbunshape.m │ ├── colorBalance.m │ ├── grayWorld.m │ ├── macbethTempSim.m │ ├── makecol.m │ ├── refGamutPopulate.m │ ├── robustAWB.m │ ├── sensorCorrelation.m │ ├── simIm.m │ ├── simplestColorBalance.m │ └── xy2XYZ.m ├── classification_metrics.m ├── main.m └── roc_analysis.m ├── regionSplicingDetection.py ├── splicingDetection.py └── utils.py /README.md: -------------------------------------------------------------------------------- 1 | # Illuminant maps analysis for image splicing detection 2 | 3 | A illuminant inconsistencies-based method for detecting image splicing. Master thesis project on illuminant maps analysis. 4 | 5 | ## Project structure 6 | 7 | * **articles**: a set of references 8 | * **docs**: the thesis documentations and reviews 9 | * **dataset**: the dataset folder containing evaluation images 10 | * **source**: the source code 11 | 12 | ## References 13 | 14 | * Carvalho et al., *"Illuminant-Based Transformed Spaces for Image Forensics"* 15 | * Carvalho, Christian Riess, Elli Angelopoulou, Helio Pedrini, Anderson Rocha, *"Exposing Digital Image Forgeries by Illumination Color Classification"*, IEEE Transactions on Information Forensics and Security, 16 | vol. 8, no. 7, pp. 1182-1194, July 2013. 17 | * Christian Riess and Elli Angelopoulou, *"Scene Illumination as an Indicator of Image Manipulation"*, Information Hiding Conference, June 2010, pp. 66-80. 18 | * V. Schetinger et al., *"Exploring Statistical Differences Between Illuminant Estimation Methods for Exposing Digital Forgeries"*. 19 | -------------------------------------------------------------------------------- /articles/Q_K_2013_IP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/articles/Q_K_2013_IP.pdf -------------------------------------------------------------------------------- /articles/farid-sigproc09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/articles/farid-sigproc09.pdf -------------------------------------------------------------------------------- /articles/forensic1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/articles/forensic1.pdf -------------------------------------------------------------------------------- /docs/Image_splicing_detection.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/Image_splicing_detection.docx -------------------------------------------------------------------------------- /docs/SotA_D2.1_MOD4.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/SotA_D2.1_MOD4.docx -------------------------------------------------------------------------------- /docs/experiments/experiments.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/experiments.docx -------------------------------------------------------------------------------- /docs/experiments/face_classification/classification_output_dsi_crossvalidation.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/classification_output_dsi_crossvalidation.mat -------------------------------------------------------------------------------- /docs/experiments/face_classification/classification_output_dsi_dso.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/classification_output_dsi_dso.mat -------------------------------------------------------------------------------- /docs/experiments/face_classification/classification_output_dso_crossvalidation.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/classification_output_dso_crossvalidation.mat -------------------------------------------------------------------------------- /docs/experiments/face_classification/classification_output_dso_dsi.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/classification_output_dso_dsi.mat -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dsi_crossvalidation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dsi_crossvalidation.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dsi_crossvalidation_pr_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dsi_crossvalidation_pr_rec.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dsi_test_dso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dsi_test_dso.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dsi_test_dso_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dsi_test_dso_prec_rec.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dso_crossvalidation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dso_crossvalidation.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dso_crossvalidation_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dso_crossvalidation_prec_rec.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dso_test_dsi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dso_test_dsi.jpg -------------------------------------------------------------------------------- /docs/experiments/face_classification/train_dso_test_dsi_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/face_classification/train_dso_test_dsi_prec_rec.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/prec_rec_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/prec_rec_normal.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/roc_normal_detection_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/roc_normal_detection_map.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/roc_svm_detection_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/roc_svm_detection_map.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/roc_svm_global_detection_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/roc_svm_global_detection_map.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/prec_rec_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/prec_rec_normal.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/prec_rec_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/prec_rec_normal_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/prec_rec_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/prec_rec_svm.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/prec_rec_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/prec_rec_svm_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/roc_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/roc_normal.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/roc_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/roc_normal_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/roc_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/roc_svm.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_cc/roc_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_cc/roc_svm_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/prec_rec_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/prec_rec_normal.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/prec_rec_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/prec_rec_normal_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/prec_rec_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/prec_rec_svm.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/prec_rec_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/prec_rec_svm_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/roc_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/roc_normal.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/roc_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/roc_normal_global.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/roc_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/roc_svm.jpg -------------------------------------------------------------------------------- /docs/experiments/region_module/train_dso/roc_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/region_module/train_dso/roc_svm_global.jpg -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_blue.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_blue_spliced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_blue_spliced.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_green.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_green_spliced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_green_spliced.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_red.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_red_spliced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_red_spliced.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_y.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_y_compare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_y_compare.png -------------------------------------------------------------------------------- /docs/experiments/variance analysis/variance_examples_y_spliced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/experiments/variance analysis/variance_examples_y_spliced.png -------------------------------------------------------------------------------- /docs/pipeline/beamerfontthemetorinoth.sty: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 3 | % Copyright 2011-2012 by Fiandrino Claudio 4 | % 5 | % This file may be distributed and/or modified 6 | % 7 | % 1. under the LaTeX Project Public License and/or 8 | % 2. under the GNU Public License. 9 | % 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | 12 | \mode 13 | 14 | % Fonts 15 | \setbeamerfont{title}{size=\Large} 16 | \setbeamerfont{ateneo}{size=\large,shape=\scshape} 17 | \setbeamerfont{person}{size=\footnotesize} 18 | \setbeamerfont{definition}{size=\normalsize,shape=\itshape} 19 | \setbeamerfont{frame number}{series=\bfseries} 20 | \setbeamerfont{footnote}{size=\tiny,family=\sffamily,series=\bfseries} 21 | \setbeamerfont{date}{family=\sffamily,size=\small} 22 | 23 | \mode 24 | 25 | -------------------------------------------------------------------------------- /docs/pipeline/firenze.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/firenze.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/cakes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/cakes.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/difference.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/difference.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/difference_plot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/difference_plot.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/iic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/iic.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/metrics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/metrics.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/results.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/results.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/riess.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/riess.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/rois.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/rois.jpg -------------------------------------------------------------------------------- /docs/pipeline/images/victor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/images/victor.jpg -------------------------------------------------------------------------------- /docs/pipeline/pipeline.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/pipeline.pptx -------------------------------------------------------------------------------- /docs/pipeline/references.tex: -------------------------------------------------------------------------------- 1 | \begin{tframe}{Riferimenti bibliografici} 2 | 3 | \begin{small} 4 | 5 | 6 | [1] T. Carvalho, et al. "\emph{Illuminant-Based Transformed Spaces for Image Forensics}." IEEE Transactions on Information Forensics and Security 11.4 (2016): 720-733. 7 | 8 | \vspace{0.1in} 9 | 10 | [2] V. Schetinger et al. "\emph{Exploring Statistical Differences Between Illuminant Estimation Methods for Exposing Digital Forgeries}"; 2016. 11 | 12 | \vspace{0.1in} 13 | 14 | [3] J. van de Weijer, Th. Gevers, A. Gijsenij, Edge-Based Color Constancy, IEEE Trans. Image Processing, accepted 2007. 15 | 16 | \vspace{0.1in} 17 | 18 | [4] C. Riess and E. Angelopoulou. 2010. \emph{Scene illumination as an indicator of image manipulation}. In \emph{Proceedings of the 12th international conference on Information hiding}, Berlin, Heidelberg, 66-80. 19 | 20 | \end{small} 21 | 22 | \end{tframe} -------------------------------------------------------------------------------- /docs/pipeline/slides.dvi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/slides.dvi -------------------------------------------------------------------------------- /docs/pipeline/slides.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/slides.out -------------------------------------------------------------------------------- /docs/pipeline/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/pipeline/slides.pdf -------------------------------------------------------------------------------- /docs/pipeline/slides.tex: -------------------------------------------------------------------------------- 1 | \documentclass{beamer} 2 | \usepackage{graphicx} 3 | \usepackage{xcolor} 4 | \usepackage{mathtools} 5 | \usetheme[titlepagelogo=firenze,% Logo for the first page 6 | language=italian, 7 | bullet=circle, 8 | color=blue, 9 | ]{TorinoTh} 10 | \usepackage[beamer,customcolors]{hf-tikz} 11 | \definecolor{UniBlue}{RGB}{83,121,170} 12 | \uselanguage{english} 13 | \languagepath{english} 14 | \setbeamercolor{block title}{use=structure,fg=white,bg=UniBlue} 15 | \setbeamercolor{block body}{use=structure,fg=black,bg=white} 16 | 17 | \author{} 18 | \rel{{\normalsize Lorenzo Cioni}} 19 | \title{\huge An illuminant estimation method for image splicing detection} 20 | \date{28 Semptember 2016} 21 | 22 | \begin{document} 23 | 24 | \titlepageframe 25 | 26 | \input{contents} 27 | \input{references} 28 | 29 | \end{document} -------------------------------------------------------------------------------- /docs/report.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/report.docx -------------------------------------------------------------------------------- /docs/review/beamerfontthemetorinoth.sty: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 3 | % Copyright 2011-2012 by Fiandrino Claudio 4 | % 5 | % This file may be distributed and/or modified 6 | % 7 | % 1. under the LaTeX Project Public License and/or 8 | % 2. under the GNU Public License. 9 | % 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | 12 | \mode 13 | 14 | % Fonts 15 | \setbeamerfont{title}{size=\Large} 16 | \setbeamerfont{ateneo}{size=\large,shape=\scshape} 17 | \setbeamerfont{person}{size=\footnotesize} 18 | \setbeamerfont{definition}{size=\normalsize,shape=\itshape} 19 | \setbeamerfont{frame number}{series=\bfseries} 20 | \setbeamerfont{footnote}{size=\tiny,family=\sffamily,series=\bfseries} 21 | \setbeamerfont{date}{family=\sffamily,size=\small} 22 | 23 | \mode 24 | 25 | -------------------------------------------------------------------------------- /docs/review/firenze.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/firenze.jpg -------------------------------------------------------------------------------- /docs/review/images/cakes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/cakes.jpg -------------------------------------------------------------------------------- /docs/review/images/carvalho.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/carvalho.jpg -------------------------------------------------------------------------------- /docs/review/images/carvalho2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/carvalho2.jpg -------------------------------------------------------------------------------- /docs/review/images/dichromatic-plane.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/dichromatic-plane.jpg -------------------------------------------------------------------------------- /docs/review/images/ducks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/ducks.jpg -------------------------------------------------------------------------------- /docs/review/images/image-editing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/image-editing.jpg -------------------------------------------------------------------------------- /docs/review/images/lighting-based.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/lighting-based.jpg -------------------------------------------------------------------------------- /docs/review/images/reflectance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/reflectance.jpg -------------------------------------------------------------------------------- /docs/review/images/riess.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/riess.jpg -------------------------------------------------------------------------------- /docs/review/images/tampered-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/tampered-image.jpg -------------------------------------------------------------------------------- /docs/review/images/victor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/images/victor.jpg -------------------------------------------------------------------------------- /docs/review/slides.dvi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/slides.dvi -------------------------------------------------------------------------------- /docs/review/slides.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/slides.out -------------------------------------------------------------------------------- /docs/review/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/review/slides.pdf -------------------------------------------------------------------------------- /docs/review/slides.tex: -------------------------------------------------------------------------------- 1 | \documentclass{beamer} 2 | \usepackage{graphicx} 3 | \usepackage{xcolor} 4 | \usepackage{mathtools} 5 | \usetheme[titlepagelogo=firenze,% Logo for the first page 6 | language=italian, 7 | bullet=circle, 8 | color=blue, 9 | ]{TorinoTh} 10 | \usepackage[beamer,customcolors]{hf-tikz} 11 | \definecolor{UniBlue}{RGB}{83,121,170} 12 | \uselanguage{english} 13 | \languagepath{english} 14 | \setbeamercolor{block title}{use=structure,fg=white,bg=UniBlue} 15 | \setbeamercolor{block body}{use=structure,fg=black,bg=white} 16 | 17 | \author{} 18 | \rel{{\normalsize Lorenzo Cioni}} 19 | \title{\huge Review of illuminant inconsistencies-based methods for image splicing detection} 20 | \date{19 Semptember 2016} 21 | 22 | \begin{document} 23 | 24 | \titlepageframe 25 | 26 | \input{contents} 27 | \input{references} 28 | 29 | \end{document} -------------------------------------------------------------------------------- /docs/slides/beamerfontthemetorinoth.sty: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % 3 | % Copyright 2011-2012 by Fiandrino Claudio 4 | % 5 | % This file may be distributed and/or modified 6 | % 7 | % 1. under the LaTeX Project Public License and/or 8 | % 2. under the GNU Public License. 9 | % 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | 12 | \mode 13 | 14 | % Fonts 15 | \setbeamerfont{title}{size=\Large} 16 | \setbeamerfont{ateneo}{size=\large,shape=\scshape} 17 | \setbeamerfont{person}{size=\footnotesize} 18 | \setbeamerfont{definition}{size=\normalsize,shape=\itshape} 19 | \setbeamerfont{frame number}{series=\bfseries} 20 | \setbeamerfont{footnote}{size=\tiny,family=\sffamily,series=\bfseries} 21 | \setbeamerfont{date}{family=\sffamily,size=\small} 22 | 23 | \mode 24 | 25 | -------------------------------------------------------------------------------- /docs/slides/firenze.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/firenze.jpg -------------------------------------------------------------------------------- /docs/slides/images/bush.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/bush.jpg -------------------------------------------------------------------------------- /docs/slides/images/cakes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/cakes.jpg -------------------------------------------------------------------------------- /docs/slides/images/carvalho.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/carvalho.jpg -------------------------------------------------------------------------------- /docs/slides/images/carvalho2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/carvalho2.jpg -------------------------------------------------------------------------------- /docs/slides/images/detectionmapresult.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/detectionmapresult.jpg -------------------------------------------------------------------------------- /docs/slides/images/detectionmapresult_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/detectionmapresult_2.jpg -------------------------------------------------------------------------------- /docs/slides/images/dichromatic-plane.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/dichromatic-plane.jpg -------------------------------------------------------------------------------- /docs/slides/images/dsi_sample_spliced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/dsi_sample_spliced.jpg -------------------------------------------------------------------------------- /docs/slides/images/dso_sample_spliced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/dso_sample_spliced.jpg -------------------------------------------------------------------------------- /docs/slides/images/facedetectionoutput.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/facedetectionoutput.jpg -------------------------------------------------------------------------------- /docs/slides/images/facedetectionoutput_letters.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/facedetectionoutput_letters.jpg -------------------------------------------------------------------------------- /docs/slides/images/iic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/iic.jpg -------------------------------------------------------------------------------- /docs/slides/images/image-editing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/image-editing.jpg -------------------------------------------------------------------------------- /docs/slides/images/iraq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/iraq.jpg -------------------------------------------------------------------------------- /docs/slides/images/lighting-based.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/lighting-based.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_1.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_2.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_3.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_3_stroke.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_3_stroke.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_4.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_5.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_faces_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_faces_6.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_1.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_2.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_3.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_4.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_5.jpg -------------------------------------------------------------------------------- /docs/slides/images/pipeline_regions_5_OLD.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/pipeline_regions_5_OLD.jpg -------------------------------------------------------------------------------- /docs/slides/images/reflectance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/reflectance.jpg -------------------------------------------------------------------------------- /docs/slides/images/regionalresult.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/regionalresult.jpg -------------------------------------------------------------------------------- /docs/slides/images/regionalresult_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/regionalresult_2.jpg -------------------------------------------------------------------------------- /docs/slides/images/regiondetectionoutput.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/regiondetectionoutput.jpg -------------------------------------------------------------------------------- /docs/slides/images/riess.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/riess.jpg -------------------------------------------------------------------------------- /docs/slides/images/splicedcchor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/splicedcchor.jpg -------------------------------------------------------------------------------- /docs/slides/images/spliceddsover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/spliceddsover.jpg -------------------------------------------------------------------------------- /docs/slides/images/tampered-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/tampered-image.jpg -------------------------------------------------------------------------------- /docs/slides/images/victor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/images/victor.jpg -------------------------------------------------------------------------------- /docs/slides/references.tex: -------------------------------------------------------------------------------- 1 | \begin{tframe}{References} 2 | 3 | \begin{footnotesize} 4 | 5 | [1] T. Carvalho, et al. "\emph{Illuminant-Based Transformed Spaces for Image Forensics}." IEEE Transactions on Information Forensics and Security 11.4 (2016): 720-733. 6 | 7 | \vspace{0.1in} 8 | 9 | [2] Y. Fan, P. Carrè, and C. Fernandez Maloigne. \emph{Image splicing detection with local illumination estimation}. In Image Processing ICIP, 2015. 10 | 11 | \vspace{0.1in} 12 | 13 | [3] J. Van de Weijer, Th. Gevers, A. Gijsenij, \emph{Edge-Based Color Constancy}, IEEE Trans. Image Processing, accepted 2007. 14 | 15 | \vspace{0.1in} 16 | 17 | [4] C. Riess and E. Angelopoulou. 2010. \emph{Scene illumination as an indicator of image manipulation}. In \emph{Proceedings of the 12th international conference on Information hiding}, Berlin, Heidelberg, 66-80. 18 | 19 | \vspace{0.1in} 20 | 21 | [5] S. Gholap and P. Bora. \emph{Illuminant colour based image forensics.} In TENCON IEEE 2008. 22 | 23 | \vspace{0.1in} 24 | [6] G. Buchsbaum. \emph{A spatial processor model for object colour perception}. Journal of the Franklin Institute, 1980. 25 | 26 | \end{footnotesize} 27 | 28 | \end{tframe} -------------------------------------------------------------------------------- /docs/slides/slides.dvi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/slides.dvi -------------------------------------------------------------------------------- /docs/slides/slides.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/slides.out -------------------------------------------------------------------------------- /docs/slides/slides.tex: -------------------------------------------------------------------------------- 1 | \documentclass{beamer} 2 | \usepackage{graphicx} 3 | \usepackage{xcolor} 4 | \usepackage[normalem]{ulem} 5 | \usepackage{mathtools} 6 | \usepackage{changepage} 7 | 8 | \usetheme[titlepagelogo=firenze,% Logo for the first page 9 | language=italian, 10 | bullet=circle, 11 | color=blue, 12 | ]{TorinoTh} 13 | \usepackage[beamer,customcolors]{hf-tikz} 14 | \definecolor{UniBlue}{RGB}{83,121,170} 15 | \uselanguage{english} 16 | \languagepath{english} 17 | \setbeamercolor{block title}{use=structure,fg=white,bg=UniBlue} 18 | \setbeamercolor{block body}{use=structure,fg=black,bg=white} 19 | 20 | \author{} 21 | \rel{ 22 | \textbf{Lorenzo Cioni}\\ 23 | \vspace{0.2cm} 24 | {\scriptsize \emph{Relatori}: Prof. Alessandro Piva, Prof. Carlo Colombo}\\ 25 | {\scriptsize \emph{Correlatori}: Dott. Marco Fanfani, Dott. Massimo Iuliani} 26 | } 27 | 28 | \title{\huge Illuminant map analysis for image splicing detection} 29 | \date{27 April 2017} 30 | 31 | \begin{document} 32 | 33 | \titlepageframe 34 | 35 | \input{contents} 36 | \input{references} 37 | 38 | \end{document} -------------------------------------------------------------------------------- /docs/slides/slides_cioni.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/slides/slides_cioni.pdf -------------------------------------------------------------------------------- /docs/thesis/abstract.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/abstract.pdf -------------------------------------------------------------------------------- /docs/thesis/algorithm2e.sty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/algorithm2e.sty -------------------------------------------------------------------------------- /docs/thesis/coated_FOGRA39L_argl.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/coated_FOGRA39L_argl.icc -------------------------------------------------------------------------------- /docs/thesis/figure/LOGO.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/LOGO.pdf -------------------------------------------------------------------------------- /docs/thesis/figure/bush.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/bush.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/colorchecker_sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/colorchecker_sample.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/colormap_jet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/colormap_jet.png -------------------------------------------------------------------------------- /docs/thesis/figure/compareknnweights.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/compareknnweights.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/detectionmapresult.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/detectionmapresult.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/dichromatic_reflection_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/dichromatic_reflection_model.png -------------------------------------------------------------------------------- /docs/thesis/figure/dsi_sample_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/dsi_sample_normal.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/dsi_sample_spliced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/dsi_sample_spliced.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/dso_sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/dso_sample.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/dso_sample_spliced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/dso_sample_spliced.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/facedetected.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/facedetected.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/facedetectionoutput.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/facedetectionoutput.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/facesplicingdetectionoutput.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/facesplicingdetectionoutput.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/firenze.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/firenze.eps -------------------------------------------------------------------------------- /docs/thesis/figure/firenze.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/firenze.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/firsttampered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/firsttampered.png -------------------------------------------------------------------------------- /docs/thesis/figure/forgerydetectionclass.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/forgerydetectionclass.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/iic_space.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/iic_space.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/illuminant_maps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/illuminant_maps.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/imagesplicing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/imagesplicing.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/iraq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/iraq.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/ojsimpson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/ojsimpson.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/pipeline_faces.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/pipeline_faces.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/pipeline_regions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/pipeline_regions.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/regiondetectionoutput.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/regiondetectionoutput.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/regionsmethod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/regionsmethod.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/shadows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/shadows.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/shadows_inconsistencies.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/shadows_inconsistencies.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicedcchor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicedcchor.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicedccver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicedccver.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/spliceddsohor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/spliceddsohor.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/spliceddsover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/spliceddsover.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-33.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-33_gge_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-33_gge_map.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-33_gge_map_faces.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-33_gge_map_faces.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-33_iic_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-33_iic_map.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-56-mask.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-56-mask.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/splicing-56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/splicing-56.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/tiago_method_extraction.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/tiago_method_extraction.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/tiago_method_full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/tiago_method_full.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/prec_rec_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/prec_rec_normal.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/prec_rec_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/prec_rec_normal_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/prec_rec_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/prec_rec_svm.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/prec_rec_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/prec_rec_svm_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/roc_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/roc_normal.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/roc_normal_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/roc_normal_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/roc_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/roc_svm.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_cc/roc_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_cc/roc_svm_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dsi_crossvalidation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dsi_crossvalidation.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dsi_crossvalidation_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dsi_crossvalidation_prec_rec.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dsi_test_dso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dsi_test_dso.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dsi_test_dso_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dsi_test_dso_prec_rec.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso/prec_rec_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso/prec_rec_svm.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso/prec_rec_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso/prec_rec_svm_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso/roc_svm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso/roc_svm.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso/roc_svm_global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso/roc_svm_global.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso_crossvalidation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso_crossvalidation.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso_crossvalidation_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso_crossvalidation_prec_rec.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso_test_dsi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso_test_dsi.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/train_dso_test_dsi_prec_rec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/train_dso_test_dsi_prec_rec.jpg -------------------------------------------------------------------------------- /docs/thesis/figure/uni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/figure/uni.jpg -------------------------------------------------------------------------------- /docs/thesis/index.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/index.pdf -------------------------------------------------------------------------------- /docs/thesis/sRGB_IEC61966-2-1_black_scaled.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/sRGB_IEC61966-2-1_black_scaled.icc -------------------------------------------------------------------------------- /docs/thesis/tesi.blg: -------------------------------------------------------------------------------- 1 | This is BibTeX, Version 0.99d (TeX Live 2013) 2 | Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 3 | The top-level auxiliary file: tesi.aux 4 | The style file: ieee.bst 5 | Database file #1: bibliography.bib 6 | Warning--empty journal in farid2009digital 7 | You've used 52 entries, 8 | 2120 wiz_defined-function locations, 9 | 812 strings with 12894 characters, 10 | and the built_in function-call counts, 19822 in all, are: 11 | = -- 2045 12 | > -- 846 13 | < -- 27 14 | + -- 344 15 | - -- 280 16 | * -- 1366 17 | := -- 3139 18 | add.period$ -- 176 19 | call.type$ -- 52 20 | change.case$ -- 291 21 | chr.to.int$ -- 0 22 | cite$ -- 53 23 | duplicate$ -- 790 24 | empty$ -- 1576 25 | format.name$ -- 280 26 | if$ -- 4280 27 | int.to.chr$ -- 0 28 | int.to.str$ -- 52 29 | missing$ -- 56 30 | newline$ -- 263 31 | num.names$ -- 104 32 | pop$ -- 316 33 | preamble$ -- 1 34 | purify$ -- 243 35 | quote$ -- 0 36 | skip$ -- 568 37 | stack$ -- 0 38 | substring$ -- 1354 39 | swap$ -- 231 40 | text.length$ -- 27 41 | text.prefix$ -- 0 42 | top$ -- 0 43 | type$ -- 200 44 | warning$ -- 1 45 | while$ -- 211 46 | width$ -- 54 47 | write$ -- 596 48 | (There was 1 warning) 49 | -------------------------------------------------------------------------------- /docs/thesis/tesi.dvi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/tesi.dvi -------------------------------------------------------------------------------- /docs/thesis/tesi.ilg: -------------------------------------------------------------------------------- 1 | This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). 2 | Scanning input file tesi.idx...done (0 entries accepted, 0 rejected). 3 | Nothing written in tesi.ind. 4 | Transcript written in tesi.ilg. 5 | -------------------------------------------------------------------------------- /docs/thesis/tesi.ind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/tesi.ind -------------------------------------------------------------------------------- /docs/thesis/tesi.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/tesi.pdf -------------------------------------------------------------------------------- /docs/thesis/thesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/docs/thesis/thesis.pdf -------------------------------------------------------------------------------- /modules/inm_apr_2017.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/modules/inm_apr_2017.pdf -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_acc.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_acc.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_bic.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_bic.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_ccv.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_ccv.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_lch.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_lch.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_sasi.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_sasi.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_GGE_unser.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_GGE_unser.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_acc.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_acc.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_bic.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_bic.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_ccv.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_ccv.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_lch.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_lch.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_sasi.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_sasi.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSI-1/model_IIC_unser.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSI-1/model_IIC_unser.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_01.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_01.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_02.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_02.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_03.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_03.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_04.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_04.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_05.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_05.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_06.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_06.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_07.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_07.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_08.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_08.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_09.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_09.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_10.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_10.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model.pkl_11.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model.pkl_11.npy -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_acc.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_acc.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_bic.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_bic.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_ccv.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_ccv.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_lch.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_lch.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_sasi.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_sasi.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_GGE_unser.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_GGE_unser.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_acc.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_acc.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_bic.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_bic.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_ccv.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_ccv.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_lch.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_lch.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_sasi.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_sasi.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_IIC_unser.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_IIC_unser.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_acc.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_acc.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_bic.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_bic.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_dso1.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_dso1.pkl -------------------------------------------------------------------------------- /source/data/face_module/DSO-1/model_svr_dso1.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/face_module/DSO-1/model_svr_dso1.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_horizontal_colorchecker.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_horizontal_colorchecker.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_horizontal_colorchecker_global.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_horizontal_colorchecker_global.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_horizontal_dso.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_horizontal_dso.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_horizontal_dso_global.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_horizontal_dso_global.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_vertical_colorchecker.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_vertical_colorchecker.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_vertical_colorchecker_global.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_vertical_colorchecker_global.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_vertical_dso.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_vertical_dso.pkl -------------------------------------------------------------------------------- /source/data/regions_module/models/trained_model_vertical_dso_global.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/regions_module/models/trained_model_vertical_dso_global.pkl -------------------------------------------------------------------------------- /source/data/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/data/sample.png -------------------------------------------------------------------------------- /source/descriptors/acc/source/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/README.txt -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/Makefile: -------------------------------------------------------------------------------- 1 | INC=../include 2 | LIB=../lib 3 | BIN=../bin 4 | FLAGS= -O2 -Wall 5 | 6 | $@.c: $(LIB)/libcolordescriptors.a $@.c 7 | cd ../; make; cd app 8 | gcc $(FLAGS) $@.c -o $(BIN)/$@ -I$(INC) -L$(LIB) -lcolordescriptors -lm 9 | 10 | clean: 11 | rm $(BIN)/* 12 | 13 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/acc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/app/acc.so -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/acc_distance.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | Histogram *acc1=NULL; 6 | Histogram *acc2=NULL; 7 | ulong distance; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: acc_distance \n"); 11 | exit(-1); 12 | } 13 | 14 | acc1 = ReadFileHistogram(argv[1]); 15 | acc2 = ReadFileHistogram(argv[2]); 16 | 17 | distance=L1Distance(acc1, acc2); 18 | printf("%ld\n",distance); 19 | 20 | DestroyHistogram(&acc1); 21 | DestroyHistogram(&acc2); 22 | 23 | return(0); 24 | } 25 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/acc_extraction.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | CImage *cimg=NULL; 6 | Histogram *acc=NULL; 7 | 8 | if (argc != 3) { 9 | fprintf(stderr,"usage: acc_extraction \n"); 10 | exit(-1); 11 | } 12 | 13 | cimg = ReadCImage(argv[1]); 14 | 15 | acc = ACC(cimg); 16 | 17 | WriteFileHistogram(acc,argv[2]); 18 | DestroyHistogram(&acc); 19 | DestroyCImage(&cimg); 20 | 21 | return(0); 22 | } 23 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/acc_plugin.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | void Extraction(char *img_path, char *fv_path) 4 | { 5 | CImage *cimg=NULL; 6 | Histogram *acc=NULL; 7 | 8 | cimg = ReadCImage(img_path); 9 | 10 | acc = ACC(cimg); 11 | 12 | WriteFileHistogram(acc,fv_path); 13 | DestroyHistogram(&acc); 14 | DestroyCImage(&cimg); 15 | 16 | } 17 | 18 | 19 | double Distance(char *fv1_path, char *fv2_path) 20 | { 21 | Histogram *acc1=NULL; 22 | Histogram *acc2=NULL; 23 | double distance; 24 | 25 | acc1 = ReadFileHistogram(fv1_path); 26 | acc2 = ReadFileHistogram(fv2_path); 27 | 28 | distance = (double) L1Distance(acc1, acc2); 29 | 30 | DestroyHistogram(&acc1); 31 | DestroyHistogram(&acc2); 32 | 33 | return distance; 34 | } 35 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/acc_teste.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/app/acc_teste.so -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/black.txt: -------------------------------------------------------------------------------- 1 | 256 2 | 9999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 3 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/car.txt: -------------------------------------------------------------------------------- 1 | 256 2 | 5443101000000000000022211000000000000000000000000000000000000000433211000000000011112111100000000000000011111110000000000000332221110000000000005443998800000000000011101111000000000000000066660000000000000000000010000000000000000000100000000000000000001111 3 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/house_bin.txt: -------------------------------------------------------------------------------- 1 | 256 2 | 5554111100000000111122111110000000000000000000000000000000000000111000000000000011117777111100000000111155440000000000000000000000000000000000000000111100000000000066666555111100000000100011110000000000000000000000000000000000002221555400000000000054446665 3 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/app/white.txt: -------------------------------------------------------------------------------- 1 | 256 2 | 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009999 3 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/bin/acc_extraction: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/bin/acc_extraction -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/acc.h: -------------------------------------------------------------------------------- 1 | #ifndef _ACC_H_ 2 | #define _ACC_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *ACC(CImage *cimg); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/adjacency.h: -------------------------------------------------------------------------------- 1 | #ifndef _ADJACENCY_H_ 2 | #define _ADJACENCY_H_ 3 | 4 | #include "image.h" 5 | 6 | typedef struct _adjrel { 7 | int *dx; 8 | int *dy; 9 | int n; 10 | } AdjRel; 11 | 12 | typedef struct _adjpxl { 13 | int *dp; 14 | int n; 15 | } AdjPxl; 16 | 17 | 18 | /* All adjacency relations must place the central pixel at first. The 19 | central pixel must be skipped when visiting the neighbors during 20 | the IFT. It must be considered in the other operations. */ 21 | 22 | AdjRel *CreateAdjRel(int n); 23 | void DestroyAdjRel(AdjRel **A); 24 | AdjRel *RightSide(AdjRel *A); 25 | AdjRel *LeftSide(AdjRel *A); 26 | AdjRel *RightSide2(AdjRel *A, float r); 27 | AdjRel *LeftSide2(AdjRel *A, float r); 28 | AdjRel *Circular(float r); 29 | AdjPxl *AdjPixels(Image *img,AdjRel *A); 30 | void DestroyAdjPxl(AdjPxl **N); 31 | int FrameSize(AdjRel *A); 32 | AdjRel *ComplAdj(AdjRel *A1, AdjRel *A2); 33 | AdjRel *Horizontal(int r); 34 | AdjRel *Vertical(int r); 35 | AdjRel *Box(int ncols, int nrows); 36 | AdjRel *ShearedBox(int xsize, int ysize, float Si, float Sj); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/gch.h: -------------------------------------------------------------------------------- 1 | #ifndef _GCH_H_ 2 | #define _GCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *GCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/heap.h: -------------------------------------------------------------------------------- 1 | #ifndef _HEAP_H_ 2 | #define _HEAP_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _heap { 7 | int *cost; 8 | char *color; 9 | int *pixel; 10 | int *pos; 11 | int last; 12 | int n; 13 | } Heap; 14 | 15 | /* Auxiliary Functions */ 16 | 17 | int dad(int i); 18 | int leftson(int i); 19 | int rightson(int i); 20 | 21 | /* Heap Functions */ 22 | 23 | bool HeapIsFull(Heap *H); 24 | bool HeapIsEmpty(Heap *H); 25 | Heap *CreateHeap(int n, int *cost); 26 | void DestroyHeap(Heap **H); 27 | bool InsertHeap(Heap *H, int pixel); 28 | bool RemoveHeap(Heap *H, int *pixel); 29 | void GoUp(Heap *H, int i); 30 | void GoDown(Heap *H, int i); 31 | 32 | 33 | #endif 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/histogram.h: -------------------------------------------------------------------------------- 1 | #ifndef _HISTOGRAM_H_ 2 | #define _HISTOGRAM_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _Histogram { 7 | uchar *v; 8 | int n; 9 | } Histogram; 10 | 11 | typedef Histogram *Ap_Histogram; 12 | 13 | Histogram *CreateHistogram(int n); 14 | void DestroyHistogram(Histogram **h); 15 | Ap_Histogram *AllocAp_HistogramArray(int n); 16 | Histogram *ReadStreamHistogram(FILE *fp); 17 | Histogram *ReadFileHistogram(char *filename); 18 | Ap_Histogram *ReadAp_Histogram(char *filename, int *n); 19 | void WriteStreamHistogram(Histogram *h,FILE *fp); 20 | void WriteFileHistogram(Histogram *h,char *filename); 21 | void WriteAp_Histogram(Ap_Histogram *ap_h,int n,char *filename); 22 | Histogram *CopyHistogram(Histogram *h); 23 | 24 | ulong L1Distance(Histogram *h1, Histogram *h2); 25 | ulong L2Distance(Histogram *h1, Histogram *h2); 26 | ulong LMDistance(Histogram *h1, Histogram *h2); 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/libcolordescriptors.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "acc.h" 18 | 19 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/mathematics.h: -------------------------------------------------------------------------------- 1 | #ifndef _MATHEMATICS_H_ 2 | #define _MATHEMATICS_H_ 3 | 4 | #include "image.h" 5 | 6 | Image *Diff(Image *img1,Image *img2); 7 | Image *Sum(Image *img1, Image *img2); 8 | Image *SQRT(Image *img); 9 | Image *And(Image *img1, Image *img2); 10 | Image *Or(Image *img1, Image *img2); 11 | Image *Add(Image *img, int value); 12 | Image *Sub(Image *img, int value); 13 | Image *Complement(Image *img); 14 | Image *Div(Image *img1,Image *img2); 15 | Image *Mult(Image *img1,Image *img2); 16 | Image *Abs(Image *img); 17 | Image *Average(Image *img1, Image *img2); 18 | Image *Log(Image *img); 19 | 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/metrics.h: -------------------------------------------------------------------------------- 1 | #ifndef _METRICS_H_ 2 | #define _METRICS_H_ 3 | 4 | #include "featurevector.h" 5 | 6 | typedef double (* Metric)(FeatureVector1D *, FeatureVector1D *); 7 | 8 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 9 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 10 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2); 11 | 12 | #endif 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/set.h: -------------------------------------------------------------------------------- 1 | #ifndef _SET_H_ 2 | #define _SET_H_ 3 | 4 | typedef struct _set { 5 | int *p; 6 | int *order; 7 | int n; 8 | } Set; 9 | 10 | Set *CreateSet(int n); 11 | void DestroySet(Set **set); 12 | Set *ReadSet(char *filename); 13 | void WriteSet(Set *set, char *filename); 14 | void MakeSet(Set *set, int x); 15 | void Union(Set *set, int x, int y); 16 | void Link(Set *set, int x, int y); 17 | int FindSet(Set *set, int x); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/sort.h: -------------------------------------------------------------------------------- 1 | #ifndef _SORT_H_ 2 | #define _SORT_H_ 3 | 4 | #include "common.h" 5 | 6 | int *CountingSort(int *val, int nelems, char order); 7 | int *BucketSort(int *val, int nelems, char order); 8 | void SelectionSort(int *val, int nelems, char order); /* in place */ 9 | void QuickSort(void *basearg, size_t nel, size_t width, int (* compar)(const void*, const void*)); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/include/stack.h: -------------------------------------------------------------------------------- 1 | #ifndef _STACK_H_ 2 | #define _STACK_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _stack { 7 | int elem; 8 | struct _stack *next; 9 | } Stack; 10 | 11 | void PushStack(Stack **S, int elem); 12 | int PopStack(Stack **S); 13 | void DestroyStack(Stack **S); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/lib/libcolordescriptors.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/lib/libcolordescriptors.a -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/acc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/acc.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/adjacency.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/adjacency.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/cimage.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/cimage.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/color.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/color.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/common.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/comptime.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/comptime.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/featurevector.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/featurevector.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/gch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/gch.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/heap.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/heap.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/histogram.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/histogram.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/image.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/image.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/mathematics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/mathematics.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/metrics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/metrics.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/queue.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/queue.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/set.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/set.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/sort.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/sort.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/obj/stack.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/obj/stack.o -------------------------------------------------------------------------------- /source/descriptors/acc/source/src/adjacency.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/acc/source/src/adjacency.c -------------------------------------------------------------------------------- /source/descriptors/acc/source/src/comptime.c: -------------------------------------------------------------------------------- 1 | #include "comptime.h" 2 | 3 | timer *Tic(){ /* It marks the initial time */ 4 | timer *tic=NULL; 5 | tic = (timer *)malloc(sizeof(timer)); 6 | gettimeofday(tic,NULL); 7 | return(tic); 8 | } 9 | 10 | timer *Toc(){ /* It marks the final time */ 11 | timer *toc=NULL; 12 | toc = (timer *)malloc(sizeof(timer)); 13 | gettimeofday(toc,NULL); 14 | return(toc); 15 | } 16 | 17 | float CTime(timer *tic, timer *toc) /* It computes the time difference */ 18 | { 19 | float t=0.0; 20 | if ((tic!=NULL)&&(toc!=NULL)){ 21 | t = (toc->tv_sec-tic->tv_sec)*1000.0 + 22 | (toc->tv_usec-tic->tv_usec)*0.001; 23 | free(tic);free(toc); 24 | tic=NULL; toc=NULL; 25 | } 26 | return(t); 27 | } 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/src/metrics.c: -------------------------------------------------------------------------------- 1 | #include "metrics.h" 2 | 3 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 4 | int i; 5 | double sum = 0.0; 6 | double z = 0.0; 7 | 8 | for (i = 0; i < v1->n ; i++){ 9 | z = fabs(v1->X[i] - v2->X[i]); 10 | sum = sum + z; 11 | } 12 | return (sum); 13 | } 14 | 15 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 16 | int i; 17 | double sum = 0.0; 18 | double z = 0.0; 19 | 20 | for (i = 0; i < v1->n ; i++){ 21 | z = v1->X[i] - v2->X[i]; 22 | sum += z*z; 23 | } 24 | sum = sqrt(sum); 25 | return (sum); 26 | } 27 | 28 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 29 | int i; 30 | double max = -1.0; 31 | double z = 0.0; 32 | 33 | for (i = 0; i < v1->n ; i++){ 34 | z = fabs(v1->X[i] - v2->X[i]); 35 | if (max < z) max = z; 36 | } 37 | return (max); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /source/descriptors/acc/source/src/stack.c: -------------------------------------------------------------------------------- 1 | #include "stack.h" 2 | 3 | void PushStack(Stack **S, int elem) 4 | { 5 | Stack *p=NULL; 6 | 7 | p = (Stack *) calloc(1,sizeof(Stack)); 8 | if (p == NULL) Error(MSG1,"Push"); 9 | if (*S == NULL){ 10 | p->elem = elem; 11 | p->next = NULL; 12 | }else{ 13 | p->elem = elem; 14 | p->next = *S; 15 | } 16 | *S = p; 17 | } 18 | 19 | int PopStack(Stack **S) 20 | { 21 | Stack *p; 22 | int elem=NIL; 23 | 24 | if (*S != NULL){ 25 | p = *S; 26 | elem = p->elem; 27 | *S = p->next; 28 | free(p); 29 | } 30 | 31 | return(elem); 32 | } 33 | 34 | void DestroyStack(Stack **S) 35 | { 36 | Stack *p; 37 | while(*S != NULL){ 38 | p = *S; 39 | *S = p->next; 40 | free(p); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/app/Makefile: -------------------------------------------------------------------------------- 1 | INC=../include 2 | LIB=../lib 3 | BIN=../bin 4 | FLAGS= -O2 -Wall 5 | 6 | $@.c: $(LIB)/libcolordescriptors.a $@.c 7 | cd ../; make; cd app 8 | gcc $(FLAGS) $@.c -o $(BIN)/$@ -I$(INC) -L$(LIB) -lcolordescriptors -lm 9 | 10 | clean: 11 | rm $(BIN)/* 12 | 13 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/app/bic.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/app/bic.so -------------------------------------------------------------------------------- /source/descriptors/bic/source/app/bic_distance.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | Histogram *bic1=NULL; 6 | Histogram *bic2=NULL; 7 | double distance; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: bic_distance fv1_path fv2_path\n"); 11 | exit(-1); 12 | } 13 | 14 | bic1 = ReadFileHistogram(argv[1]); 15 | bic2 = ReadFileHistogram(argv[2]); 16 | 17 | distance= (double) L1Distance(bic1, bic2); 18 | printf("%lf\n",distance); 19 | 20 | DestroyHistogram(&bic1); 21 | DestroyHistogram(&bic2); 22 | 23 | return(0); 24 | } 25 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/app/bic_extraction.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *bic=NULL; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: bic_extraction img_path fv_path\n"); 11 | exit(-1); 12 | } 13 | 14 | cimg = ReadCImage(argv[1]); 15 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 16 | 17 | bic = BIC(cimg, mask); 18 | 19 | WriteFileHistogram(bic,argv[2]); 20 | DestroyHistogram(&bic); 21 | DestroyCImage(&cimg); 22 | DestroyImage(&mask); 23 | 24 | return(0); 25 | } 26 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/app/bic_plugin.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | void Extraction(char *img_path, char *fv_path) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *bic=NULL; 8 | 9 | cimg = ReadCImage(img_path); 10 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 11 | 12 | bic = BIC(cimg, mask); 13 | 14 | WriteFileHistogram(bic,fv_path); 15 | DestroyHistogram(&bic); 16 | DestroyImage(&mask); 17 | DestroyCImage(&cimg); 18 | 19 | } 20 | 21 | 22 | 23 | 24 | double Distance(char *fv1_path, char *fv2_path) 25 | { 26 | Histogram *bic1=NULL; 27 | Histogram *bic2=NULL; 28 | double distance; 29 | 30 | bic1 = ReadFileHistogram(fv1_path); 31 | bic2 = ReadFileHistogram(fv2_path); 32 | 33 | distance = (double) L1Distance(bic1, bic2); 34 | 35 | DestroyHistogram(&bic1); 36 | DestroyHistogram(&bic2); 37 | 38 | return distance; 39 | } 40 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/bic_extraction: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/bin/bic_extraction -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/dd.txt: -------------------------------------------------------------------------------- 1 | 128 2 | 00000000000000000000066008700000000000000000000000000000000000000000000000000000000004500550000000000000000000000000000000000000 3 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/face-2.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/bin/face-2.ppm -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/face-2.txt: -------------------------------------------------------------------------------- 1 | 128 2 | 00000000000000000000066008700000000000000000000000000000000000000000000000000000000004500550000000000000000000000000000000000000 3 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/test.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/bin/test.ppm -------------------------------------------------------------------------------- /source/descriptors/bic/source/bin/test.txt: -------------------------------------------------------------------------------- 1 | 128 2 | 43401450012200017000122001440006000011000041001200000000000000145330455101420001411024410155001410001210014300130000000000110013 3 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/adjacency.h: -------------------------------------------------------------------------------- 1 | #ifndef _ADJACENCY_H_ 2 | #define _ADJACENCY_H_ 3 | 4 | #include "image.h" 5 | 6 | typedef struct _adjrel { 7 | int *dx; 8 | int *dy; 9 | int n; 10 | } AdjRel; 11 | 12 | typedef struct _adjpxl { 13 | int *dp; 14 | int n; 15 | } AdjPxl; 16 | 17 | 18 | /* All adjacency relations must place the central pixel at first. The 19 | central pixel must be skipped when visiting the neighbors during 20 | the IFT. It must be considered in the other operations. */ 21 | 22 | AdjRel *CreateAdjRel(int n); 23 | void DestroyAdjRel(AdjRel **A); 24 | AdjRel *RightSide(AdjRel *A); 25 | AdjRel *LeftSide(AdjRel *A); 26 | AdjRel *RightSide2(AdjRel *A, float r); 27 | AdjRel *LeftSide2(AdjRel *A, float r); 28 | AdjRel *Circular(float r); 29 | AdjPxl *AdjPixels(Image *img,AdjRel *A); 30 | void DestroyAdjPxl(AdjPxl **N); 31 | int FrameSize(AdjRel *A); 32 | AdjRel *ComplAdj(AdjRel *A1, AdjRel *A2); 33 | AdjRel *Horizontal(int r); 34 | AdjRel *Vertical(int r); 35 | AdjRel *Box(int ncols, int nrows); 36 | AdjRel *ShearedBox(int xsize, int ysize, float Si, float Sj); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/bic.h: -------------------------------------------------------------------------------- 1 | #ifndef _BIC_H_ 2 | #define _BIC_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *BIC(CImage *cimg, Image *mask); 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/cbc.h: -------------------------------------------------------------------------------- 1 | #ifndef _CBC_H_ 2 | #define _CBC_H_ 3 | 4 | #include "cimage.h" 5 | #include "featurevector.h" 6 | 7 | Ap_FeatureVector1D *CBC(CImage *cimg, Image *mask, int *nfeatures); 8 | 9 | double CBCRegionDistance(FeatureVector1D *fv1, FeatureVector1D *fv2); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/ccv.h: -------------------------------------------------------------------------------- 1 | #ifndef _CCV_H_ 2 | #define _CCV_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *CCV(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/emd.h: -------------------------------------------------------------------------------- 1 | #ifndef _EMD_H_ 2 | #define _EMD_H_ 3 | /* 4 | emd.h 5 | 6 | Last update: 3/24/98 7 | 8 | An implementation of the Earth Movers Distance. 9 | Based of the solution for the Transportation problem as described in 10 | "Introduction to Mathematical Programming" by F. S. Hillier and 11 | G. J. Lieberman, McGraw-Hill, 1990. 12 | 13 | Copyright (C) 1998 Yossi Rubner 14 | Computer Science Department, Stanford University 15 | E-Mail: rubner@cs.stanford.edu URL: http://vision.stanford.edu/~rubner 16 | */ 17 | 18 | #include "featurevector.h" 19 | #include "metrics.h" 20 | 21 | double EMD(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 22 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 23 | Metric m); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/gch.h: -------------------------------------------------------------------------------- 1 | #ifndef _GCH_H_ 2 | #define _GCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *GCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/heap.h: -------------------------------------------------------------------------------- 1 | #ifndef _HEAP_H_ 2 | #define _HEAP_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _heap { 7 | int *cost; 8 | char *color; 9 | int *pixel; 10 | int *pos; 11 | int last; 12 | int n; 13 | } Heap; 14 | 15 | /* Auxiliary Functions */ 16 | 17 | int dad(int i); 18 | int leftson(int i); 19 | int rightson(int i); 20 | 21 | /* Heap Functions */ 22 | 23 | bool HeapIsFull(Heap *H); 24 | bool HeapIsEmpty(Heap *H); 25 | Heap *CreateHeap(int n, int *cost); 26 | void DestroyHeap(Heap **H); 27 | bool InsertHeap(Heap *H, int pixel); 28 | bool RemoveHeap(Heap *H, int *pixel); 29 | void GoUp(Heap *H, int i); 30 | void GoDown(Heap *H, int i); 31 | 32 | 33 | #endif 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/histogram.h: -------------------------------------------------------------------------------- 1 | #ifndef _HISTOGRAM_H_ 2 | #define _HISTOGRAM_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _Histogram { 7 | uchar *v; 8 | int n; 9 | } Histogram; 10 | 11 | typedef Histogram *Ap_Histogram; 12 | 13 | Histogram *CreateHistogram(int n); 14 | void DestroyHistogram(Histogram **h); 15 | Ap_Histogram *AllocAp_HistogramArray(int n); 16 | Histogram *ReadStreamHistogram(FILE *fp); 17 | Histogram *ReadFileHistogram(char *filename); 18 | Ap_Histogram *ReadAp_Histogram(char *filename, int *n); 19 | void WriteStreamHistogram(Histogram *h,FILE *fp); 20 | void WriteFileHistogram(Histogram *h,char *filename); 21 | void WriteAp_Histogram(Ap_Histogram *ap_h,int n,char *filename); 22 | Histogram *CopyHistogram(Histogram *h); 23 | 24 | ulong L1Distance(Histogram *h1, Histogram *h2); 25 | ulong L2Distance(Histogram *h1, Histogram *h2); 26 | ulong LMDistance(Histogram *h1, Histogram *h2); 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/irm.h: -------------------------------------------------------------------------------- 1 | #ifndef _IRM_H_ 2 | #define _IRM_H_ 3 | 4 | #include "featurevector.h" 5 | #include "metrics.h" 6 | 7 | double IRM(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 8 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 9 | Metric m); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/lch.h: -------------------------------------------------------------------------------- 1 | #ifndef _LCH_H_ 2 | #define _LCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *LCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/libcolordescriptors.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | 24 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/libcolordescriptors_bkp.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/mathematics.h: -------------------------------------------------------------------------------- 1 | #ifndef _MATHEMATICS_H_ 2 | #define _MATHEMATICS_H_ 3 | 4 | #include "image.h" 5 | 6 | Image *Diff(Image *img1,Image *img2); 7 | Image *Sum(Image *img1, Image *img2); 8 | Image *SQRT(Image *img); 9 | Image *And(Image *img1, Image *img2); 10 | Image *Or(Image *img1, Image *img2); 11 | Image *Add(Image *img, int value); 12 | Image *Sub(Image *img, int value); 13 | Image *Complement(Image *img); 14 | Image *Div(Image *img1,Image *img2); 15 | Image *Mult(Image *img1,Image *img2); 16 | Image *Abs(Image *img); 17 | Image *Average(Image *img1, Image *img2); 18 | Image *Log(Image *img); 19 | 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/metrics.h: -------------------------------------------------------------------------------- 1 | #ifndef _METRICS_H_ 2 | #define _METRICS_H_ 3 | 4 | #include "featurevector.h" 5 | 6 | typedef double (* Metric)(FeatureVector1D *, FeatureVector1D *); 7 | 8 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 9 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 10 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2); 11 | 12 | #endif 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/set.h: -------------------------------------------------------------------------------- 1 | #ifndef _SET_H_ 2 | #define _SET_H_ 3 | 4 | typedef struct _set { 5 | int *p; 6 | int *order; 7 | int n; 8 | } Set; 9 | 10 | Set *CreateSet(int n); 11 | void DestroySet(Set **set); 12 | Set *ReadSet(char *filename); 13 | void WriteSet(Set *set, char *filename); 14 | void MakeSet(Set *set, int x); 15 | void Union(Set *set, int x, int y); 16 | void Link(Set *set, int x, int y); 17 | int FindSet(Set *set, int x); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/sort.h: -------------------------------------------------------------------------------- 1 | #ifndef _SORT_H_ 2 | #define _SORT_H_ 3 | 4 | #include "common.h" 5 | 6 | int *CountingSort(int *val, int nelems, char order); 7 | int *BucketSort(int *val, int nelems, char order); 8 | void SelectionSort(int *val, int nelems, char order); /* in place */ 9 | void QuickSort(void *basearg, size_t nel, size_t width, int (* compar)(const void*, const void*)); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/include/stack.h: -------------------------------------------------------------------------------- 1 | #ifndef _STACK_H_ 2 | #define _STACK_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _stack { 7 | int elem; 8 | struct _stack *next; 9 | } Stack; 10 | 11 | void PushStack(Stack **S, int elem); 12 | int PopStack(Stack **S); 13 | void DestroyStack(Stack **S); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/lib/libcolordescriptors.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/lib/libcolordescriptors.a -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/adjacency.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/adjacency.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/bic.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/bic.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/cimage.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/cimage.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/color.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/color.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/common.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/comptime.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/comptime.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/featurevector.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/featurevector.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/gch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/gch.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/heap.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/heap.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/histogram.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/histogram.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/image.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/image.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/mathematics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/mathematics.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/metrics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/metrics.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/queue.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/queue.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/set.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/set.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/sort.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/sort.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/obj/stack.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/obj/stack.o -------------------------------------------------------------------------------- /source/descriptors/bic/source/src/adjacency.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/bic/source/src/adjacency.c -------------------------------------------------------------------------------- /source/descriptors/bic/source/src/comptime.c: -------------------------------------------------------------------------------- 1 | #include "comptime.h" 2 | 3 | timer *Tic(){ /* It marks the initial time */ 4 | timer *tic=NULL; 5 | tic = (timer *)malloc(sizeof(timer)); 6 | gettimeofday(tic,NULL); 7 | return(tic); 8 | } 9 | 10 | timer *Toc(){ /* It marks the final time */ 11 | timer *toc=NULL; 12 | toc = (timer *)malloc(sizeof(timer)); 13 | gettimeofday(toc,NULL); 14 | return(toc); 15 | } 16 | 17 | float CTime(timer *tic, timer *toc) /* It computes the time difference */ 18 | { 19 | float t=0.0; 20 | if ((tic!=NULL)&&(toc!=NULL)){ 21 | t = (toc->tv_sec-tic->tv_sec)*1000.0 + 22 | (toc->tv_usec-tic->tv_usec)*0.001; 23 | free(tic);free(toc); 24 | tic=NULL; toc=NULL; 25 | } 26 | return(t); 27 | } 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/src/metrics.c: -------------------------------------------------------------------------------- 1 | #include "metrics.h" 2 | 3 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 4 | int i; 5 | double sum = 0.0; 6 | double z = 0.0; 7 | 8 | for (i = 0; i < v1->n ; i++){ 9 | z = fabs(v1->X[i] - v2->X[i]); 10 | sum = sum + z; 11 | } 12 | return (sum); 13 | } 14 | 15 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 16 | int i; 17 | double sum = 0.0; 18 | double z = 0.0; 19 | 20 | for (i = 0; i < v1->n ; i++){ 21 | z = v1->X[i] - v2->X[i]; 22 | sum += z*z; 23 | } 24 | sum = sqrt(sum); 25 | return (sum); 26 | } 27 | 28 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 29 | int i; 30 | double max = -1.0; 31 | double z = 0.0; 32 | 33 | for (i = 0; i < v1->n ; i++){ 34 | z = fabs(v1->X[i] - v2->X[i]); 35 | if (max < z) max = z; 36 | } 37 | return (max); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /source/descriptors/bic/source/src/stack.c: -------------------------------------------------------------------------------- 1 | #include "stack.h" 2 | 3 | void PushStack(Stack **S, int elem) 4 | { 5 | Stack *p=NULL; 6 | 7 | p = (Stack *) calloc(1,sizeof(Stack)); 8 | if (p == NULL) Error(MSG1,"Push"); 9 | if (*S == NULL){ 10 | p->elem = elem; 11 | p->next = NULL; 12 | }else{ 13 | p->elem = elem; 14 | p->next = *S; 15 | } 16 | *S = p; 17 | } 18 | 19 | int PopStack(Stack **S) 20 | { 21 | Stack *p; 22 | int elem=NIL; 23 | 24 | if (*S != NULL){ 25 | p = *S; 26 | elem = p->elem; 27 | *S = p->next; 28 | free(p); 29 | } 30 | 31 | return(elem); 32 | } 33 | 34 | void DestroyStack(Stack **S) 35 | { 36 | Stack *p; 37 | while(*S != NULL){ 38 | p = *S; 39 | *S = p->next; 40 | free(p); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/Makefile: -------------------------------------------------------------------------------- 1 | INC=../include 2 | LIB=../lib 3 | BIN=../bin 4 | FLAGS= -O2 -Wall 5 | 6 | $@.c: $(LIB)/libcolordescriptors.a $@.c 7 | cd ../; make; cd app 8 | gcc $(FLAGS) $@.c -o $(BIN)/$@ -I$(INC) -L$(LIB) -lcolordescriptors -lm 9 | 10 | clean: 11 | rm $(BIN)/* 12 | 13 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/ccv.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/app/ccv.so -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/ccv_distance.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | Histogram *ccv1=NULL; 6 | Histogram *ccv2=NULL; 7 | double distance; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: ccv_distance fv1_path fv2_path\n"); 11 | exit(-1); 12 | } 13 | 14 | ccv1 = ReadFileHistogram(argv[1]); 15 | ccv2 = ReadFileHistogram(argv[2]); 16 | 17 | distance=(double)L1Distance(ccv1, ccv2); 18 | printf("%lf\n",distance); 19 | 20 | DestroyHistogram(&ccv1); 21 | DestroyHistogram(&ccv2); 22 | 23 | return(0); 24 | } 25 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/ccv_extraction.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *ccv=NULL; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: ccv_extraction img_path fv_path\n"); 11 | exit(-1); 12 | } 13 | 14 | cimg = ReadCImage(argv[1]); 15 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 16 | 17 | ccv = CCV(cimg, mask); 18 | 19 | WriteFileHistogram(ccv,argv[2]); 20 | DestroyHistogram(&ccv); 21 | DestroyCImage(&cimg); 22 | DestroyImage(&mask); 23 | 24 | return(0); 25 | } 26 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/ccv_plugin.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | void Extraction(char *img_path, char *fv_path) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *ccv=NULL; 8 | 9 | cimg = ReadCImage(img_path); 10 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 11 | 12 | ccv = CCV(cimg, mask); 13 | 14 | WriteFileHistogram(ccv,fv_path); 15 | DestroyHistogram(&ccv); 16 | DestroyCImage(&cimg); 17 | DestroyImage(&mask); 18 | 19 | } 20 | 21 | double Distance(char *fv1_path, char *fv2_path) 22 | { 23 | Histogram *ccv1=NULL; 24 | Histogram *ccv2=NULL; 25 | double distance; 26 | 27 | ccv1 = ReadFileHistogram(fv1_path); 28 | ccv2 = ReadFileHistogram(fv2_path); 29 | 30 | distance = (double) L1Distance(ccv1, ccv2); 31 | 32 | DestroyHistogram(&ccv1); 33 | DestroyHistogram(&ccv2); 34 | 35 | return distance; 36 | } 37 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/app/england.desc: -------------------------------------------------------------------------------- 1 | 128 2 |   0  3 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/bin/ccv_extraction: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/bin/ccv_extraction -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/adjacency.h: -------------------------------------------------------------------------------- 1 | #ifndef _ADJACENCY_H_ 2 | #define _ADJACENCY_H_ 3 | 4 | #include "image.h" 5 | 6 | typedef struct _adjrel { 7 | int *dx; 8 | int *dy; 9 | int n; 10 | } AdjRel; 11 | 12 | typedef struct _adjpxl { 13 | int *dp; 14 | int n; 15 | } AdjPxl; 16 | 17 | 18 | /* All adjacency relations must place the central pixel at first. The 19 | central pixel must be skipped when visiting the neighbors during 20 | the IFT. It must be considered in the other operations. */ 21 | 22 | AdjRel *CreateAdjRel(int n); 23 | void DestroyAdjRel(AdjRel **A); 24 | AdjRel *RightSide(AdjRel *A); 25 | AdjRel *LeftSide(AdjRel *A); 26 | AdjRel *RightSide2(AdjRel *A, float r); 27 | AdjRel *LeftSide2(AdjRel *A, float r); 28 | AdjRel *Circular(float r); 29 | AdjPxl *AdjPixels(Image *img,AdjRel *A); 30 | void DestroyAdjPxl(AdjPxl **N); 31 | int FrameSize(AdjRel *A); 32 | AdjRel *ComplAdj(AdjRel *A1, AdjRel *A2); 33 | AdjRel *Horizontal(int r); 34 | AdjRel *Vertical(int r); 35 | AdjRel *Box(int ncols, int nrows); 36 | AdjRel *ShearedBox(int xsize, int ysize, float Si, float Sj); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/bic.h: -------------------------------------------------------------------------------- 1 | #ifndef _BIC_H_ 2 | #define _BIC_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *BIC(CImage *cimg, Image *mask); 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/cbc.h: -------------------------------------------------------------------------------- 1 | #ifndef _CBC_H_ 2 | #define _CBC_H_ 3 | 4 | #include "cimage.h" 5 | #include "featurevector.h" 6 | 7 | Ap_FeatureVector1D *CBC(CImage *cimg, Image *mask, int *nfeatures); 8 | 9 | double CBCRegionDistance(FeatureVector1D *fv1, FeatureVector1D *fv2); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/ccv.h: -------------------------------------------------------------------------------- 1 | #ifndef _CCV_H_ 2 | #define _CCV_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *CCV(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/emd.h: -------------------------------------------------------------------------------- 1 | #ifndef _EMD_H_ 2 | #define _EMD_H_ 3 | /* 4 | emd.h 5 | 6 | Last update: 3/24/98 7 | 8 | An implementation of the Earth Movers Distance. 9 | Based of the solution for the Transportation problem as described in 10 | "Introduction to Mathematical Programming" by F. S. Hillier and 11 | G. J. Lieberman, McGraw-Hill, 1990. 12 | 13 | Copyright (C) 1998 Yossi Rubner 14 | Computer Science Department, Stanford University 15 | E-Mail: rubner@cs.stanford.edu URL: http://vision.stanford.edu/~rubner 16 | */ 17 | 18 | #include "featurevector.h" 19 | #include "metrics.h" 20 | 21 | double EMD(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 22 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 23 | Metric m); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/gch.h: -------------------------------------------------------------------------------- 1 | #ifndef _GCH_H_ 2 | #define _GCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *GCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/heap.h: -------------------------------------------------------------------------------- 1 | #ifndef _HEAP_H_ 2 | #define _HEAP_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _heap { 7 | int *cost; 8 | char *color; 9 | int *pixel; 10 | int *pos; 11 | int last; 12 | int n; 13 | } Heap; 14 | 15 | /* Auxiliary Functions */ 16 | 17 | int dad(int i); 18 | int leftson(int i); 19 | int rightson(int i); 20 | 21 | /* Heap Functions */ 22 | 23 | bool HeapIsFull(Heap *H); 24 | bool HeapIsEmpty(Heap *H); 25 | Heap *CreateHeap(int n, int *cost); 26 | void DestroyHeap(Heap **H); 27 | bool InsertHeap(Heap *H, int pixel); 28 | bool RemoveHeap(Heap *H, int *pixel); 29 | void GoUp(Heap *H, int i); 30 | void GoDown(Heap *H, int i); 31 | 32 | 33 | #endif 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/histogram.h: -------------------------------------------------------------------------------- 1 | #ifndef _HISTOGRAM_H_ 2 | #define _HISTOGRAM_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _Histogram { 7 | uchar *v; 8 | int n; 9 | } Histogram; 10 | 11 | typedef Histogram *Ap_Histogram; 12 | 13 | Histogram *CreateHistogram(int n); 14 | void DestroyHistogram(Histogram **h); 15 | Ap_Histogram *AllocAp_HistogramArray(int n); 16 | Histogram *ReadStreamHistogram(FILE *fp); 17 | Histogram *ReadFileHistogram(char *filename); 18 | Ap_Histogram *ReadAp_Histogram(char *filename, int *n); 19 | void WriteStreamHistogram(Histogram *h,FILE *fp); 20 | void WriteFileHistogram(Histogram *h,char *filename); 21 | void WriteAp_Histogram(Ap_Histogram *ap_h,int n,char *filename); 22 | Histogram *CopyHistogram(Histogram *h); 23 | 24 | ulong L1Distance(Histogram *h1, Histogram *h2); 25 | ulong L2Distance(Histogram *h1, Histogram *h2); 26 | ulong LMDistance(Histogram *h1, Histogram *h2); 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/irm.h: -------------------------------------------------------------------------------- 1 | #ifndef _IRM_H_ 2 | #define _IRM_H_ 3 | 4 | #include "featurevector.h" 5 | #include "metrics.h" 6 | 7 | double IRM(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 8 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 9 | Metric m); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/lch.h: -------------------------------------------------------------------------------- 1 | #ifndef _LCH_H_ 2 | #define _LCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *LCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/libcolordescriptors.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | 24 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/libcolordescriptors_bkp.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/mathematics.h: -------------------------------------------------------------------------------- 1 | #ifndef _MATHEMATICS_H_ 2 | #define _MATHEMATICS_H_ 3 | 4 | #include "image.h" 5 | 6 | Image *Diff(Image *img1,Image *img2); 7 | Image *Sum(Image *img1, Image *img2); 8 | Image *SQRT(Image *img); 9 | Image *And(Image *img1, Image *img2); 10 | Image *Or(Image *img1, Image *img2); 11 | Image *Add(Image *img, int value); 12 | Image *Sub(Image *img, int value); 13 | Image *Complement(Image *img); 14 | Image *Div(Image *img1,Image *img2); 15 | Image *Mult(Image *img1,Image *img2); 16 | Image *Abs(Image *img); 17 | Image *Average(Image *img1, Image *img2); 18 | Image *Log(Image *img); 19 | 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/metrics.h: -------------------------------------------------------------------------------- 1 | #ifndef _METRICS_H_ 2 | #define _METRICS_H_ 3 | 4 | #include "featurevector.h" 5 | 6 | typedef double (* Metric)(FeatureVector1D *, FeatureVector1D *); 7 | 8 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 9 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 10 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2); 11 | 12 | #endif 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/set.h: -------------------------------------------------------------------------------- 1 | #ifndef _SET_H_ 2 | #define _SET_H_ 3 | 4 | typedef struct _set { 5 | int *p; 6 | int *order; 7 | int n; 8 | } Set; 9 | 10 | Set *CreateSet(int n); 11 | void DestroySet(Set **set); 12 | Set *ReadSet(char *filename); 13 | void WriteSet(Set *set, char *filename); 14 | void MakeSet(Set *set, int x); 15 | void Union(Set *set, int x, int y); 16 | void Link(Set *set, int x, int y); 17 | int FindSet(Set *set, int x); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/sort.h: -------------------------------------------------------------------------------- 1 | #ifndef _SORT_H_ 2 | #define _SORT_H_ 3 | 4 | #include "common.h" 5 | 6 | int *CountingSort(int *val, int nelems, char order); 7 | int *BucketSort(int *val, int nelems, char order); 8 | void SelectionSort(int *val, int nelems, char order); /* in place */ 9 | void QuickSort(void *basearg, size_t nel, size_t width, int (* compar)(const void*, const void*)); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/include/stack.h: -------------------------------------------------------------------------------- 1 | #ifndef _STACK_H_ 2 | #define _STACK_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _stack { 7 | int elem; 8 | struct _stack *next; 9 | } Stack; 10 | 11 | void PushStack(Stack **S, int elem); 12 | int PopStack(Stack **S); 13 | void DestroyStack(Stack **S); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/lib/libcolordescriptors.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/lib/libcolordescriptors.a -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/adjacency.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/adjacency.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/bic.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/bic.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/cbc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/cbc.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/ccv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/ccv.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/cimage.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/cimage.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/color.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/color.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/common.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/comptime.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/comptime.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/emd.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/emd.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/featurevector.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/featurevector.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/gch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/gch.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/heap.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/heap.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/histogram.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/histogram.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/image.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/image.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/irm.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/irm.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/lch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/lch.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/mathematics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/mathematics.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/metrics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/metrics.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/queue.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/queue.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/set.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/set.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/sort.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/sort.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/obj/stack.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/obj/stack.o -------------------------------------------------------------------------------- /source/descriptors/ccv/source/src/adjacency.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/ccv/source/src/adjacency.c -------------------------------------------------------------------------------- /source/descriptors/ccv/source/src/comptime.c: -------------------------------------------------------------------------------- 1 | #include "comptime.h" 2 | 3 | timer *Tic(){ /* It marks the initial time */ 4 | timer *tic=NULL; 5 | tic = (timer *)malloc(sizeof(timer)); 6 | gettimeofday(tic,NULL); 7 | return(tic); 8 | } 9 | 10 | timer *Toc(){ /* It marks the final time */ 11 | timer *toc=NULL; 12 | toc = (timer *)malloc(sizeof(timer)); 13 | gettimeofday(toc,NULL); 14 | return(toc); 15 | } 16 | 17 | float CTime(timer *tic, timer *toc) /* It computes the time difference */ 18 | { 19 | float t=0.0; 20 | if ((tic!=NULL)&&(toc!=NULL)){ 21 | t = (toc->tv_sec-tic->tv_sec)*1000.0 + 22 | (toc->tv_usec-tic->tv_usec)*0.001; 23 | free(tic);free(toc); 24 | tic=NULL; toc=NULL; 25 | } 26 | return(t); 27 | } 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/src/metrics.c: -------------------------------------------------------------------------------- 1 | #include "metrics.h" 2 | 3 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 4 | int i; 5 | double sum = 0.0; 6 | double z = 0.0; 7 | 8 | for (i = 0; i < v1->n ; i++){ 9 | z = fabs(v1->X[i] - v2->X[i]); 10 | sum = sum + z; 11 | } 12 | return (sum); 13 | } 14 | 15 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 16 | int i; 17 | double sum = 0.0; 18 | double z = 0.0; 19 | 20 | for (i = 0; i < v1->n ; i++){ 21 | z = v1->X[i] - v2->X[i]; 22 | sum += z*z; 23 | } 24 | sum = sqrt(sum); 25 | return (sum); 26 | } 27 | 28 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 29 | int i; 30 | double max = -1.0; 31 | double z = 0.0; 32 | 33 | for (i = 0; i < v1->n ; i++){ 34 | z = fabs(v1->X[i] - v2->X[i]); 35 | if (max < z) max = z; 36 | } 37 | return (max); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /source/descriptors/ccv/source/src/stack.c: -------------------------------------------------------------------------------- 1 | #include "stack.h" 2 | 3 | void PushStack(Stack **S, int elem) 4 | { 5 | Stack *p=NULL; 6 | 7 | p = (Stack *) calloc(1,sizeof(Stack)); 8 | if (p == NULL) Error(MSG1,"Push"); 9 | if (*S == NULL){ 10 | p->elem = elem; 11 | p->next = NULL; 12 | }else{ 13 | p->elem = elem; 14 | p->next = *S; 15 | } 16 | *S = p; 17 | } 18 | 19 | int PopStack(Stack **S) 20 | { 21 | Stack *p; 22 | int elem=NIL; 23 | 24 | if (*S != NULL){ 25 | p = *S; 26 | elem = p->elem; 27 | *S = p->next; 28 | free(p); 29 | } 30 | 31 | return(elem); 32 | } 33 | 34 | void DestroyStack(Stack **S) 35 | { 36 | Stack *p; 37 | while(*S != NULL){ 38 | p = *S; 39 | *S = p->next; 40 | free(p); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/Makefile: -------------------------------------------------------------------------------- 1 | INC=../include 2 | LIB=../lib 3 | BIN=../bin 4 | FLAGS= -O2 -Wall 5 | 6 | $@.c: $(LIB)/libcolordescriptors.a $@.c 7 | cd ../; make; cd app 8 | gcc $(FLAGS) $@.c -o $(BIN)/$@ -I$(INC) -L$(LIB) -lcolordescriptors -lm 9 | 10 | clean: 11 | rm $(BIN)/* 12 | 13 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/eiffel.lch: -------------------------------------------------------------------------------- 1 | 1024 2 |    3 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/england.lch: -------------------------------------------------------------------------------- 1 | 1024 2 |    3 |   4 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/india.lch: -------------------------------------------------------------------------------- 1 | 1024 2 | 3 |     4 |  5 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/lch.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/app/lch.so -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/lch_distance.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | Histogram *lch1=NULL; 6 | Histogram *lch2=NULL; 7 | double distance; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: lch_distance fv1_path fv2_path\n"); 11 | exit(-1); 12 | } 13 | 14 | lch1 = ReadFileHistogram(argv[1]); 15 | lch2 = ReadFileHistogram(argv[2]); 16 | 17 | distance=(double)L1Distance(lch1, lch2); 18 | printf("%lf\n",distance); 19 | 20 | DestroyHistogram(&lch1); 21 | DestroyHistogram(&lch2); 22 | 23 | return(0); 24 | } 25 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/lch_extraction.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *lch=NULL; 8 | 9 | if (argc != 3) { 10 | fprintf(stderr,"usage: lch_extraction img_path fv_path\n"); 11 | exit(-1); 12 | } 13 | 14 | cimg = ReadCImage(argv[1]); 15 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 16 | 17 | lch = LCH(cimg, mask); 18 | 19 | WriteFileHistogram(lch,argv[2]); 20 | DestroyHistogram(&lch); 21 | DestroyCImage(&cimg); 22 | DestroyImage(&mask); 23 | 24 | return(0); 25 | } 26 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/app/lch_plugin.c: -------------------------------------------------------------------------------- 1 | #include "libcolordescriptors.h" 2 | 3 | void Extraction(char *img_path, char *fv_path) 4 | { 5 | CImage *cimg=NULL; 6 | Image *mask=NULL; 7 | Histogram *lch=NULL; 8 | 9 | cimg = ReadCImage(img_path); 10 | mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); 11 | 12 | lch = LCH(cimg, mask); 13 | 14 | WriteFileHistogram(lch,fv_path); 15 | DestroyHistogram(&lch); 16 | DestroyCImage(&cimg); 17 | DestroyImage(&mask); 18 | 19 | } 20 | 21 | double Distance(char *fv1_path, char *fv2_path) 22 | { 23 | Histogram *lch1=NULL; 24 | Histogram *lch2=NULL; 25 | double distance; 26 | 27 | lch1 = ReadFileHistogram(fv1_path); 28 | lch2 = ReadFileHistogram(fv2_path); 29 | 30 | distance= (double) L1Distance(lch1, lch2); 31 | 32 | DestroyHistogram(&lch1); 33 | DestroyHistogram(&lch2); 34 | 35 | return distance; 36 | } 37 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/bin/face-1.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/bin/face-1.ppm -------------------------------------------------------------------------------- /source/descriptors/lch/source/bin/generatebic_bkp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/bin/generatebic_bkp -------------------------------------------------------------------------------- /source/descriptors/lch/source/bin/lch_distance: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/bin/lch_distance -------------------------------------------------------------------------------- /source/descriptors/lch/source/bin/lch_extraction: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/bin/lch_extraction -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/adjacency.h: -------------------------------------------------------------------------------- 1 | #ifndef _ADJACENCY_H_ 2 | #define _ADJACENCY_H_ 3 | 4 | #include "image.h" 5 | 6 | typedef struct _adjrel { 7 | int *dx; 8 | int *dy; 9 | int n; 10 | } AdjRel; 11 | 12 | typedef struct _adjpxl { 13 | int *dp; 14 | int n; 15 | } AdjPxl; 16 | 17 | 18 | /* All adjacency relations must place the central pixel at first. The 19 | central pixel must be skipped when visiting the neighbors during 20 | the IFT. It must be considered in the other operations. */ 21 | 22 | AdjRel *CreateAdjRel(int n); 23 | void DestroyAdjRel(AdjRel **A); 24 | AdjRel *RightSide(AdjRel *A); 25 | AdjRel *LeftSide(AdjRel *A); 26 | AdjRel *RightSide2(AdjRel *A, float r); 27 | AdjRel *LeftSide2(AdjRel *A, float r); 28 | AdjRel *Circular(float r); 29 | AdjPxl *AdjPixels(Image *img,AdjRel *A); 30 | void DestroyAdjPxl(AdjPxl **N); 31 | int FrameSize(AdjRel *A); 32 | AdjRel *ComplAdj(AdjRel *A1, AdjRel *A2); 33 | AdjRel *Horizontal(int r); 34 | AdjRel *Vertical(int r); 35 | AdjRel *Box(int ncols, int nrows); 36 | AdjRel *ShearedBox(int xsize, int ysize, float Si, float Sj); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/bic.h: -------------------------------------------------------------------------------- 1 | #ifndef _BIC_H_ 2 | #define _BIC_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *BIC(CImage *cimg, Image *mask); 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/cbc.h: -------------------------------------------------------------------------------- 1 | #ifndef _CBC_H_ 2 | #define _CBC_H_ 3 | 4 | #include "cimage.h" 5 | #include "featurevector.h" 6 | 7 | Ap_FeatureVector1D *CBC(CImage *cimg, Image *mask, int *nfeatures); 8 | 9 | double CBCRegionDistance(FeatureVector1D *fv1, FeatureVector1D *fv2); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/ccv.h: -------------------------------------------------------------------------------- 1 | #ifndef _CCV_H_ 2 | #define _CCV_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *CCV(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/emd.h: -------------------------------------------------------------------------------- 1 | #ifndef _EMD_H_ 2 | #define _EMD_H_ 3 | /* 4 | emd.h 5 | 6 | Last update: 3/24/98 7 | 8 | An implementation of the Earth Movers Distance. 9 | Based of the solution for the Transportation problem as described in 10 | "Introduction to Mathematical Programming" by F. S. Hillier and 11 | G. J. Lieberman, McGraw-Hill, 1990. 12 | 13 | Copyright (C) 1998 Yossi Rubner 14 | Computer Science Department, Stanford University 15 | E-Mail: rubner@cs.stanford.edu URL: http://vision.stanford.edu/~rubner 16 | */ 17 | 18 | #include "featurevector.h" 19 | #include "metrics.h" 20 | 21 | double EMD(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 22 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 23 | Metric m); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/gch.h: -------------------------------------------------------------------------------- 1 | #ifndef _GCH_H_ 2 | #define _GCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *GCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/heap.h: -------------------------------------------------------------------------------- 1 | #ifndef _HEAP_H_ 2 | #define _HEAP_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _heap { 7 | int *cost; 8 | char *color; 9 | int *pixel; 10 | int *pos; 11 | int last; 12 | int n; 13 | } Heap; 14 | 15 | /* Auxiliary Functions */ 16 | 17 | int dad(int i); 18 | int leftson(int i); 19 | int rightson(int i); 20 | 21 | /* Heap Functions */ 22 | 23 | bool HeapIsFull(Heap *H); 24 | bool HeapIsEmpty(Heap *H); 25 | Heap *CreateHeap(int n, int *cost); 26 | void DestroyHeap(Heap **H); 27 | bool InsertHeap(Heap *H, int pixel); 28 | bool RemoveHeap(Heap *H, int *pixel); 29 | void GoUp(Heap *H, int i); 30 | void GoDown(Heap *H, int i); 31 | 32 | 33 | #endif 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/histogram.h: -------------------------------------------------------------------------------- 1 | #ifndef _HISTOGRAM_H_ 2 | #define _HISTOGRAM_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _Histogram { 7 | uchar *v; 8 | int n; 9 | } Histogram; 10 | 11 | typedef Histogram *Ap_Histogram; 12 | 13 | Histogram *CreateHistogram(int n); 14 | void DestroyHistogram(Histogram **h); 15 | Ap_Histogram *AllocAp_HistogramArray(int n); 16 | Histogram *ReadStreamHistogram(FILE *fp); 17 | Histogram *ReadFileHistogram(char *filename); 18 | Ap_Histogram *ReadAp_Histogram(char *filename, int *n); 19 | void WriteStreamHistogram(Histogram *h,FILE *fp); 20 | void WriteFileHistogram(Histogram *h,char *filename); 21 | void WriteAp_Histogram(Ap_Histogram *ap_h,int n,char *filename); 22 | Histogram *CopyHistogram(Histogram *h); 23 | 24 | long L1Distance(Histogram *h1, Histogram *h2); 25 | long L2Distance(Histogram *h1, Histogram *h2); 26 | long LMDistance(Histogram *h1, Histogram *h2); 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/irm.h: -------------------------------------------------------------------------------- 1 | #ifndef _IRM_H_ 2 | #define _IRM_H_ 3 | 4 | #include "featurevector.h" 5 | #include "metrics.h" 6 | 7 | double IRM(Ap_FeatureVector1D *ap_fv1, FeatureVector1D *w1, 8 | Ap_FeatureVector1D *ap_fv2, FeatureVector1D *w2, 9 | Metric m); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/lch.h: -------------------------------------------------------------------------------- 1 | #ifndef _LCH_H_ 2 | #define _LCH_H_ 3 | 4 | #include "cimage.h" 5 | #include "histogram.h" 6 | 7 | Histogram *LCH(CImage *cimg, Image *mask); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/libcolordescriptors.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | 24 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/libcolordescriptors_bkp.h: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "comptime.h" 3 | #include "heap.h" 4 | #include "queue.h" 5 | #include "sort.h" 6 | #include "set.h" 7 | #include "stack.h" 8 | #include "image.h" 9 | #include "cimage.h" 10 | #include "adjacency.h" 11 | #include "mathematics.h" 12 | #include "color.h" 13 | #include "featurevector.h" 14 | #include "metrics.h" 15 | #include "histogram.h" 16 | #include "gch.h" 17 | #include "lch.h" 18 | #include "ccv.h" 19 | #include "cbc.h" 20 | #include "bic.h" 21 | #include "irm.h" 22 | #include "emd.h" 23 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/mathematics.h: -------------------------------------------------------------------------------- 1 | #ifndef _MATHEMATICS_H_ 2 | #define _MATHEMATICS_H_ 3 | 4 | #include "image.h" 5 | 6 | Image *Diff(Image *img1,Image *img2); 7 | Image *Sum(Image *img1, Image *img2); 8 | Image *SQRT(Image *img); 9 | Image *And(Image *img1, Image *img2); 10 | Image *Or(Image *img1, Image *img2); 11 | Image *Add(Image *img, int value); 12 | Image *Sub(Image *img, int value); 13 | Image *Complement(Image *img); 14 | Image *Div(Image *img1,Image *img2); 15 | Image *Mult(Image *img1,Image *img2); 16 | Image *Abs(Image *img); 17 | Image *Average(Image *img1, Image *img2); 18 | Image *Log(Image *img); 19 | 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/metrics.h: -------------------------------------------------------------------------------- 1 | #ifndef _METRICS_H_ 2 | #define _METRICS_H_ 3 | 4 | #include "featurevector.h" 5 | 6 | typedef double (* Metric)(FeatureVector1D *, FeatureVector1D *); 7 | 8 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 9 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2); 10 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2); 11 | 12 | #endif 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/set.h: -------------------------------------------------------------------------------- 1 | #ifndef _SET_H_ 2 | #define _SET_H_ 3 | 4 | typedef struct _set { 5 | int *p; 6 | int *order; 7 | int n; 8 | } Set; 9 | 10 | Set *CreateSet(int n); 11 | void DestroySet(Set **set); 12 | Set *ReadSet(char *filename); 13 | void WriteSet(Set *set, char *filename); 14 | void MakeSet(Set *set, int x); 15 | void Union(Set *set, int x, int y); 16 | void Link(Set *set, int x, int y); 17 | int FindSet(Set *set, int x); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/sort.h: -------------------------------------------------------------------------------- 1 | #ifndef _SORT_H_ 2 | #define _SORT_H_ 3 | 4 | #include "common.h" 5 | 6 | int *CountingSort(int *val, int nelems, char order); 7 | int *BucketSort(int *val, int nelems, char order); 8 | void SelectionSort(int *val, int nelems, char order); /* in place */ 9 | void QuickSort(void *basearg, size_t nel, size_t width, int (* compar)(const void*, const void*)); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/include/stack.h: -------------------------------------------------------------------------------- 1 | #ifndef _STACK_H_ 2 | #define _STACK_H_ 3 | 4 | #include "common.h" 5 | 6 | typedef struct _stack { 7 | int elem; 8 | struct _stack *next; 9 | } Stack; 10 | 11 | void PushStack(Stack **S, int elem); 12 | int PopStack(Stack **S); 13 | void DestroyStack(Stack **S); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/lib/libcolordescriptors.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/lib/libcolordescriptors.a -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/adjacency.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/adjacency.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/bic.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/bic.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/cbc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/cbc.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/ccv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/ccv.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/cimage.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/cimage.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/color.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/color.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/common.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/comptime.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/comptime.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/emd.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/emd.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/featurevector.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/featurevector.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/gch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/gch.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/heap.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/heap.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/histogram.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/histogram.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/image.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/image.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/irm.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/irm.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/lch.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/lch.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/mathematics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/mathematics.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/metrics.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/metrics.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/queue.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/queue.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/set.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/set.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/sort.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/sort.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/obj/stack.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/obj/stack.o -------------------------------------------------------------------------------- /source/descriptors/lch/source/src/adjacency.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/descriptors/lch/source/src/adjacency.c -------------------------------------------------------------------------------- /source/descriptors/lch/source/src/comptime.c: -------------------------------------------------------------------------------- 1 | #include "comptime.h" 2 | 3 | timer *Tic(){ /* It marks the initial time */ 4 | timer *tic=NULL; 5 | tic = (timer *)malloc(sizeof(timer)); 6 | gettimeofday(tic,NULL); 7 | return(tic); 8 | } 9 | 10 | timer *Toc(){ /* It marks the final time */ 11 | timer *toc=NULL; 12 | toc = (timer *)malloc(sizeof(timer)); 13 | gettimeofday(toc,NULL); 14 | return(toc); 15 | } 16 | 17 | float CTime(timer *tic, timer *toc) /* It computes the time difference */ 18 | { 19 | float t=0.0; 20 | if ((tic!=NULL)&&(toc!=NULL)){ 21 | t = (toc->tv_sec-tic->tv_sec)*1000.0 + 22 | (toc->tv_usec-tic->tv_usec)*0.001; 23 | free(tic);free(toc); 24 | tic=NULL; toc=NULL; 25 | } 26 | return(t); 27 | } 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/src/metrics.c: -------------------------------------------------------------------------------- 1 | #include "metrics.h" 2 | 3 | double ManhattanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 4 | int i; 5 | double sum = 0.0; 6 | double z = 0.0; 7 | 8 | for (i = 0; i < v1->n ; i++){ 9 | z = fabs(v1->X[i] - v2->X[i]); 10 | sum = sum + z; 11 | } 12 | return (sum); 13 | } 14 | 15 | double EuclideanDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 16 | int i; 17 | double sum = 0.0; 18 | double z = 0.0; 19 | 20 | for (i = 0; i < v1->n ; i++){ 21 | z = v1->X[i] - v2->X[i]; 22 | sum += z*z; 23 | } 24 | sum = sqrt(sum); 25 | return (sum); 26 | } 27 | 28 | double ChebyshevDistance(FeatureVector1D *v1, FeatureVector1D *v2) { 29 | int i; 30 | double max = -1.0; 31 | double z = 0.0; 32 | 33 | for (i = 0; i < v1->n ; i++){ 34 | z = fabs(v1->X[i] - v2->X[i]); 35 | if (max < z) max = z; 36 | } 37 | return (max); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /source/descriptors/lch/source/src/stack.c: -------------------------------------------------------------------------------- 1 | #include "stack.h" 2 | 3 | void PushStack(Stack **S, int elem) 4 | { 5 | Stack *p=NULL; 6 | 7 | p = (Stack *) calloc(1,sizeof(Stack)); 8 | if (p == NULL) Error(MSG1,"Push"); 9 | if (*S == NULL){ 10 | p->elem = elem; 11 | p->next = NULL; 12 | }else{ 13 | p->elem = elem; 14 | p->next = *S; 15 | } 16 | *S = p; 17 | } 18 | 19 | int PopStack(Stack **S) 20 | { 21 | Stack *p; 22 | int elem=NIL; 23 | 24 | if (*S != NULL){ 25 | p = *S; 26 | elem = p->elem; 27 | *S = p->next; 28 | free(p); 29 | } 30 | 31 | return(elem); 32 | } 33 | 34 | void DestroyStack(Stack **S) 35 | { 36 | Stack *p; 37 | while(*S != NULL){ 38 | p = *S; 39 | *S = p->next; 40 | free(p); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /source/distanceMetrics.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on 05 ott 2016 3 | 4 | @author: lorenzocioni 5 | 6 | Different matrics for evaluating distances bewteen eigenvalues 7 | ''' 8 | import math 9 | 10 | def linearDistance(a, b): 11 | return abs(a - b) 12 | 13 | def quadraticDistance(a, b): 14 | return pow((a - b), 2) 15 | 16 | def logarithmicDistance(a, b): 17 | if abs(a - b) > 0: 18 | return math.log(abs(a - b)) 19 | else: 20 | return 1000 21 | 22 | def squareRootDistance(a, b): 23 | return math.sqrt(abs(a - b)) 24 | 25 | def cubicRootDistance(a, b): 26 | return pow((a - b), 1/3) 27 | 28 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/3.5.0/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/build/CMakeFiles/3.5.0/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/3.5.0/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/build/CMakeFiles/3.5.0/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/3.5.0/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Darwin-16.0.0") 2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin") 3 | set(CMAKE_HOST_SYSTEM_VERSION "16.0.0") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Darwin-16.0.0") 9 | set(CMAKE_SYSTEM_NAME "Darwin") 10 | set(CMAKE_SYSTEM_VERSION "16.0.0") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/3.5.0/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/build/CMakeFiles/3.5.0/CompilerIdC/a.out -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/3.5.0/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/build/CMakeFiles/3.5.0/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.5 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/lorenzocioni/Documents/Scuola/Ingegneria/Laurea Magistrale/Tesi/source/illum_maps") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/Users/lorenzocioni/Documents/Scuola/Ingegneria/Laurea Magistrale/Tesi/source/illum_maps/build") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /Users/lorenzocioni/Documents/Scuola/Ingegneria/Laurea Magistrale/Tesi/source/illum_maps/build/CMakeFiles/vole.dir 2 | /Users/lorenzocioni/Documents/Scuola/Ingegneria/Laurea Magistrale/Tesi/source/illum_maps/build/CMakeFiles/edit_cache.dir 3 | /Users/lorenzocioni/Documents/Scuola/Ingegneria/Laurea Magistrale/Tesi/source/illum_maps/build/CMakeFiles/rebuild_cache.dir 4 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/feature_tests.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/build/CMakeFiles/feature_tests.bin -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/feature_tests.c: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "C_FEATURE:" 4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "c_function_prototypes\n" 10 | "C_FEATURE:" 11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "c_restrict\n" 17 | "C_FEATURE:" 18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "c_static_assert\n" 24 | "C_FEATURE:" 25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "c_variadic_macros\n" 31 | 32 | }; 33 | 34 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 35 | -------------------------------------------------------------------------------- /source/illuminants/build/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 34 2 | -------------------------------------------------------------------------------- /source/illuminants/build/config.txt: -------------------------------------------------------------------------------- 1 | [iebv_seg_felz] 2 | sigma=0.2 3 | k=200 4 | min_size=15 5 | 6 | #[iebv_seg_veks] 7 | #size=100 8 | #lambda=30 9 | #type=0 10 | #iterations=2 11 | 12 | [iebv_seg_patches] 13 | strategy=largest 14 | size_x=31 15 | size_y=7 16 | number_tries=1000 17 | 18 | 19 | [iebv] 20 | # barnard test run - patch size changed, min_pixels, min_intensity changed 21 | #isGraphical=false 22 | #input_file= 23 | #output_directory= 24 | #method=ev_fhs 25 | #verbosity=0 26 | 27 | #eval_ciurea_funt=false 28 | 29 | number_patches=200 30 | random_seed=0 31 | 32 | max_intensity=0.8823529411764705882 33 | # next param changed 34 | min_intensity=.003882352941176470588 35 | # next param changed 36 | min_pixels=20 37 | minimum_eigenvalue_ratio=0.2 38 | minimum_eigenvector_slope=0.003 39 | maximum_eigenvector_slope=10.0 -------------------------------------------------------------------------------- /source/illuminants/config.txt: -------------------------------------------------------------------------------- 1 | [iebv_seg_felz] 2 | sigma=0.2 3 | k=200 4 | min_size=15 5 | 6 | [iebv_seg_patches] 7 | strategy=largest 8 | size_x=31 9 | size_y=7 10 | number_tries=1000 11 | 12 | [iebv] 13 | # barnard test run - patch size changed, min_pixels, min_intensity changed 14 | #isGraphical=false 15 | #input_file= 16 | #output_directory= 17 | #method=ev_fhs 18 | #verbosity=0 19 | 20 | #eval_ciurea_funt=false 21 | 22 | number_patches=200 23 | random_seed=0 24 | 25 | max_intensity=0.8823529411764705882 26 | # next param changed 27 | min_intensity=.003882352941176470588 28 | # next param changed 29 | min_pixels=20 30 | minimum_eigenvalue_ratio=0.2 31 | minimum_eigenvector_slope=0.003 32 | maximum_eigenvector_slope=10.0 -------------------------------------------------------------------------------- /source/illuminants/illumestimators/fusion/fusion.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #include "fusion.h" 11 | 12 | namespace illumestimators { 13 | 14 | Fusion::Fusion(const std::vector& estimators) : 15 | m_estimators(estimators) 16 | { 17 | 18 | } 19 | 20 | Fusion::~Fusion() 21 | { 22 | 23 | } 24 | 25 | } // namespace illumestimators 26 | -------------------------------------------------------------------------------- /source/illuminants/illumestimators/fusion/fusion.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef ILLUMESTIMATORS_FUSION_FUSION_H 11 | #define ILLUMESTIMATORS_FUSION_FUSION_H 12 | 13 | #include "illuminantestimator.h" 14 | 15 | namespace illumestimators { 16 | 17 | class Fusion : public IlluminantEstimator 18 | { 19 | public: 20 | Fusion() { } 21 | Fusion(const std::vector& estimators); 22 | virtual ~Fusion(); 23 | 24 | public: 25 | void setEstimators(const std::vector& estimators) { m_estimators = estimators; } 26 | std::vector getEstimators() const { return m_estimators; } 27 | 28 | private: 29 | std::vector m_estimators; 30 | }; 31 | 32 | } // namespace illumestimators 33 | 34 | #endif // ILLUMESTIMATORS_FUSION_FUSION_H 35 | -------------------------------------------------------------------------------- /source/illuminants/illumestimators/iic/iebv_estimator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef IIC_IEBV_ESTIMATOR_H 11 | #define IIC_IEBV_ESTIMATOR_H 12 | 13 | #include 14 | #include 15 | 16 | #include "illum.h" 17 | #include "config_iebv.h" 18 | #include "superpixel.h" 19 | 20 | namespace iic { 21 | 22 | class IebvEstimator { 23 | public: 24 | IebvEstimator(const ConfigIebv &config); 25 | 26 | illumestimators::Illum estimate(const cv::Mat_ &iic_space, const superpixels::Superpixel& superpixel); 27 | 28 | int error(); 29 | 30 | const ConfigIebv &config; 31 | 32 | protected: 33 | 34 | bool error_min_number_pixels; 35 | bool error_slope_out_of_bounds; 36 | bool error_eccentricity_too_low; 37 | 38 | }; 39 | 40 | } 41 | 42 | #endif // IIC_IEBV_ESTIMATOR_H 43 | -------------------------------------------------------------------------------- /source/illuminants/img/tangerines.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorecioni/ImageSplicingDetection/194f5fdfcb854c8caf17e187fa4e79957c917eb9/source/illuminants/img/tangerines.jpg -------------------------------------------------------------------------------- /source/illuminants/lille/commands/command_lgrayworld.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef LILLE_COMMAND_LGRAYWORLD_H 11 | #define LILLE_COMMAND_LGRAYWORLD_H 12 | 13 | #include "command.h" 14 | #include "lgrayworld_config.h" 15 | 16 | namespace lille { 17 | 18 | class CommandLocalGrayworld : public vole::Command { 19 | public: 20 | CommandLocalGrayworld(); 21 | 22 | public: 23 | int execute(); 24 | void printShortHelp() const; 25 | void printHelp() const; 26 | 27 | protected: 28 | LGrayWorldConfig config; 29 | }; 30 | 31 | } // namespace lille 32 | 33 | #endif // LILLE_COMMAND_LGRAYWORLD_H 34 | -------------------------------------------------------------------------------- /source/illuminants/lille/commands/command_liebv.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef LILLE_COMMAND_LIEBV_H 11 | #define LILLE_COMMAND_LIEBV_H 12 | 13 | #include "command.h" 14 | #include "liebv_config.h" 15 | 16 | namespace lille { 17 | 18 | class CommandLocalIebv : public vole::Command { 19 | public: 20 | CommandLocalIebv(); 21 | 22 | public: 23 | int execute(); 24 | void printShortHelp() const; 25 | void printHelp() const; 26 | 27 | protected: 28 | LIebvConfig config; 29 | 30 | }; 31 | 32 | } // namespace lille 33 | 34 | #endif // LILLE_COMMAND_LIEBV_H 35 | -------------------------------------------------------------------------------- /source/illuminants/lille/config/config_iebv_avg.txt: -------------------------------------------------------------------------------- 1 | [iebv_seg_patches] 2 | strategy=largest 3 | size_x=40 4 | size_y=10 5 | number_tries=1000 6 | 7 | 8 | [iebv] 9 | number_patches=200 10 | random_seed=0 11 | 12 | max_intensity=.99607843137254901960 13 | min_intensity=.00392156862745098039 14 | min_pixels=20 15 | minimum_eigenvalue_ratio=0.2 16 | minimum_eigenvector_slope=0.0015 17 | maximum_eigenvector_slope=10.0 18 | 19 | [iebv_histogram_voting_fusion] 20 | binsize=0.01 # size of a bin for creating the histogram from continous values 21 | lower_bound=0 # lower boundary for the histogram 22 | upper_bound=1 # upper boundary for the histogram 23 | window_size=1 # size of the mean-smoothing window 24 | force_relation=0 # use if HistogramVoting should only accept combinations of R, G, and B estimates that add-up to 1. 25 | 26 | -------------------------------------------------------------------------------- /source/illuminants/lille/config/config_iebv_harsh.txt: -------------------------------------------------------------------------------- 1 | [iebv_seg_patches] 2 | strategy=largest 3 | size_x=40 4 | size_y=10 5 | number_tries=1000 6 | 7 | 8 | [iebv] 9 | number_patches=200 10 | random_seed=0 11 | 12 | max_intensity=.99607843137254901960 13 | min_intensity=.00392156862745098039 14 | min_pixels=20 15 | minimum_eigenvalue_ratio=0.2 16 | minimum_eigenvector_slope=0.003 17 | maximum_eigenvector_slope=10.0 18 | -------------------------------------------------------------------------------- /source/illuminants/lille/config/config_iebv_lenient.txt: -------------------------------------------------------------------------------- 1 | [iebv_seg_patches] 2 | strategy=largest 3 | size_x=40 4 | size_y=10 5 | number_tries=1000 6 | 7 | 8 | [iebv] 9 | number_patches=200 10 | random_seed=0 11 | 12 | max_intensity=.99607843137254901960 13 | min_intensity=.00392156862745098039 14 | min_pixels=20 15 | minimum_eigenvalue_ratio=0.1 16 | minimum_eigenvector_slope=0.0003 17 | maximum_eigenvector_slope=10.0 18 | -------------------------------------------------------------------------------- /source/illuminants/lille/lgrayworld_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef LILLE_LGRAYWORLD_CONFIG_H 11 | #define LILLE_LGRAYWORLD_CONFIG_H 12 | 13 | #include "config.h" 14 | #include "img_read_config.h" 15 | 16 | namespace lille { 17 | 18 | class LGrayWorldConfig : public vole::Config { 19 | public: 20 | LGrayWorldConfig(const std::string& prefix = std::string()); 21 | public: 22 | virtual std::string getString() const; 23 | 24 | protected: 25 | #ifdef WITH_BOOST 26 | virtual void initBoostOptions(); 27 | #endif // WITH_BOOST 28 | 29 | public: 30 | iread::IReadConfig img; 31 | // std::string inputFile; 32 | 33 | std::string outputFile; 34 | std::string maskFile; 35 | std::string segmentationFile; 36 | // int darklevel; 37 | 38 | int n; 39 | int p; 40 | double sigma; 41 | }; 42 | } 43 | 44 | #endif // LILLE_LGRAYWORLD_CONFIG_H 45 | -------------------------------------------------------------------------------- /source/illuminants/lille/liebv_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef LILLE_LIEBV_CONFIG_H 11 | #define LILLE_LIEBV_CONFIG_H 12 | 13 | #include "config.h" 14 | #include "img_read_config.h" 15 | 16 | namespace lille { 17 | 18 | class LIebvConfig : public vole::Config { 19 | public: 20 | LIebvConfig(const std::string& prefix = std::string()); 21 | public: 22 | virtual std::string getString() const; 23 | 24 | protected: 25 | #ifdef WITH_BOOST 26 | virtual void initBoostOptions(); 27 | #endif // WITH_BOOST 28 | 29 | public: 30 | iread::IReadConfig img; 31 | // std::string inputFile; 32 | 33 | std::string outputFile; 34 | std::string maskFile; 35 | std::string segmentationFile; 36 | // int darklevel; 37 | 38 | std::string iebvConfigFile; 39 | }; 40 | } 41 | 42 | #endif // LILLE_LIEBV_CONFIG_H 43 | -------------------------------------------------------------------------------- /source/illuminants/lille/paint_superpixel.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #include "paint_superpixel.h" 11 | 12 | namespace lille { 13 | 14 | void PaintSuperpixel::paint(cv::Mat_ &targetImg, superpixels::Superpixel &s, rbase::Color &col) 15 | { 16 | for (std::vector::iterator c = s.coordinates.begin(); c != s.coordinates.end(); c++) { 17 | targetImg[c->y][c->x][2] = col.r * 255; 18 | targetImg[c->y][c->x][1] = col.g * 255; 19 | targetImg[c->y][c->x][0] = col.b * 255; 20 | } 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /source/illuminants/lille/paint_superpixel.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef LILLE_PAINT_SUPERPIXEL_H 11 | #define LILLE_PAINT_SUPERPIXEL_H 12 | 13 | #include "superpixel.h" 14 | #include "color.h" 15 | #include 16 | 17 | namespace lille { 18 | class PaintSuperpixel { 19 | public: 20 | static void paint(cv::Mat_ &targetImg, superpixels::Superpixel &s, rbase::Color &col); 21 | }; 22 | } 23 | 24 | #endif // LILLE_PAINT_SUPERPIXEL_H 25 | -------------------------------------------------------------------------------- /source/illuminants/rbase/img_read_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef IREAD_IMG_READ_CONFIG_H 11 | #define IREAD_IMG_READ_CONFIG_H 12 | 13 | #include "config.h" 14 | 15 | namespace iread { 16 | 17 | class IReadConfig : public vole::Config { 18 | public: 19 | IReadConfig(const std::string& prefix = std::string()); 20 | public: 21 | virtual std::string getString() const; 22 | 23 | protected: 24 | #ifdef WITH_BOOST 25 | virtual void initBoostOptions(); 26 | #endif // WITH_BOOST 27 | 28 | public: 29 | std::string imageFile; 30 | 31 | int dark_level; 32 | int saturation_level; 33 | std::string color_space; 34 | 35 | public: 36 | }; 37 | } 38 | 39 | #endif // IREAD_IMG_READ_CONFIG_H 40 | -------------------------------------------------------------------------------- /source/illuminants/shell/modules.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #include "modules.h" 11 | 12 | namespace vole { 13 | 14 | Modules::Modules() { 15 | Command *c; 16 | 17 | 18 | /* Algorithms for Superpixel Segmentation */ 19 | c = new vole::CommandFelzenszwalb(); insert(std::make_pair(c->getName(), c)); 20 | /* Local Illuminant Estimation */ 21 | c = new lille::CommandLocalIebv(); insert(std::make_pair(c->getName(), c)); 22 | /* Local Illuminant Estimation */ 23 | c = new lille::CommandLocalGrayworld(); insert(std::make_pair(c->getName(), c)); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /source/illuminants/shell/modules.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #include "command.h" 11 | 12 | /* Algorithms for Superpixel Segmentation */ 13 | #include "commands/commandfelzenszwalb.h" 14 | /* Local Illuminant Estimation */ 15 | #include "commands/command_liebv.h" 16 | /* Local Illuminant Estimation */ 17 | #include "commands/command_lgrayworld.h" 18 | 19 | #include 20 | #include 21 | 22 | namespace vole { 23 | 24 | class Modules : public std::map { 25 | 26 | public: 27 | typedef std::map::iterator iterator; 28 | typedef std::map::const_iterator const_iterator; 29 | 30 | Modules(); // see generated_commands_template.txt for implementation 31 | ~Modules() { 32 | for (const_iterator it = begin(); it != end(); ++it) 33 | delete it->second; 34 | } 35 | }; 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /source/illuminants/superpixels/commands/commandfelzenszwalb.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef SUPERPIXELS_COMMANDS_COMMANDFELZENSZWALB 11 | #define SUPERPIXELS_COMMANDS_COMMANDFELZENSZWALB 12 | 13 | #include "command.h" 14 | #include "felzenszwalbconfig.h" 15 | 16 | namespace vole { 17 | 18 | class CommandFelzenszwalb : public Command { 19 | public: 20 | CommandFelzenszwalb(); 21 | 22 | public: 23 | int execute(); 24 | void printShortHelp() const; 25 | void printHelp() const; 26 | 27 | protected: 28 | FelzenszwalbConfig config; 29 | }; 30 | 31 | } // vole 32 | 33 | #endif // SUPERPIXELS_COMMANDS_COMMANDFELZENSZWALB 34 | -------------------------------------------------------------------------------- /source/illuminants/superpixels/commands/patchesconfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef SUPERPIXELS_COMMANDS_PATCHESCONFIG 11 | #define SUPERPIXELS_COMMANDS_PATCHESCONFIG 12 | 13 | #include "config.h" 14 | 15 | namespace vole { 16 | 17 | class PatchesConfig : public Config { 18 | public: 19 | PatchesConfig( const std::string& prefix = std::string() ); 20 | 21 | public: 22 | virtual std::string getString() const; 23 | 24 | protected: 25 | #ifdef WITH_BOOST 26 | virtual void initBoostOptions(); 27 | #endif // WITH_BOOST 28 | 29 | public: 30 | int size_x; 31 | int size_y; 32 | int number_tries; 33 | std::string strategy; 34 | }; 35 | 36 | } // namespace vole 37 | 38 | #endif // SUPERPIXELS_COMMANDS_PATCHESCONFIG 39 | -------------------------------------------------------------------------------- /source/illuminants/superpixels/felzenszwalb/implementation/Makefile: -------------------------------------------------------------------------------- 1 | INCDIR = -I. 2 | DBG = -g 3 | OPT = -O3 4 | CPP = g++ 5 | CFLAGS = $(DBG) $(OPT) $(INCDIR) 6 | LINK = -lm 7 | 8 | .cpp.o: 9 | $(CPP) $(CFLAGS) -c $< -o $@ 10 | 11 | all: segment 12 | 13 | segment: segment.cpp segment-image.h segment-graph.h disjoint-set.h 14 | $(CPP) $(CFLAGS) -o segment segment.cpp $(LINK) 15 | 16 | clean: 17 | /bin/rm -f segment *.o 18 | 19 | clean-all: clean 20 | /bin/rm -f *~ 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /source/illuminants/superpixels/felzenszwalb/implementation/README: -------------------------------------------------------------------------------- 1 | 2 | Implementation of the segmentation algorithm described in: 3 | 4 | Efficient Graph-Based Image Segmentation 5 | Pedro F. Felzenszwalb and Daniel P. Huttenlocher 6 | International Journal of Computer Vision, 59(2) September 2004. 7 | 8 | The program takes a color image (PPM format) and produces a segmentation 9 | with a random color assigned to each region. 10 | 11 | 1) Type "make" to compile "segment". 12 | 13 | 2) Run "segment sigma k min input output". 14 | 15 | The parameters are: (see the paper for details) 16 | 17 | sigma: Used to smooth the input image before segmenting it. 18 | k: Value for the threshold function. 19 | min: Minimum component size enforced by post-processing. 20 | input: Input image. 21 | output: Output image. 22 | 23 | Typical parameters are sigma = 0.5, k = 500, min = 20. 24 | Larger values for k result in larger components in the result. 25 | 26 | -------------------------------------------------------------------------------- /source/illuminants/superpixels/superpixel.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright(c) 2012 Christian Riess 3 | and Johannes Jordan . 4 | 5 | This file may be licensed under the terms of of the GNU General Public 6 | License, version 3, as published by the Free Software Foundation. You can 7 | find it here: http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | #ifndef SUPERPIXELS_SUPERPIXEL_H 11 | #define SUPERPIXELS_SUPERPIXEL_H 12 | 13 | #include 14 | 15 | namespace superpixels { 16 | 17 | /** Representation of a superpixel. */ 18 | class Superpixel { 19 | public: 20 | Superpixel() 21 | : size( 0 ) 22 | {} 23 | 24 | /** Coordinates of the pixels in the image belonging to the superpixel. */ 25 | std::vector coordinates; 26 | cv::Rect bbox; 27 | int size; 28 | 29 | void clear() 30 | { 31 | coordinates.clear(); 32 | bbox.x = 0; 33 | bbox.y = 0; 34 | bbox.width = 0; 35 | bbox.height = 0; 36 | size = 0; 37 | } 38 | 39 | bool empty() const 40 | { 41 | return (size == 0 ? true : false); 42 | } 43 | 44 | }; 45 | 46 | } // namespace superpixels 47 | 48 | #endif // SUPERPIXELS_SUPERPIXEL_H 49 | -------------------------------------------------------------------------------- /source/matlab/balancing/XYZ2xy.m: -------------------------------------------------------------------------------- 1 | function xy = XYZ2xy(xyz) 2 | %xy = XYZ2xy(xyz) 3 | % Converts CIE XYZ to xy chromaticity. 4 | 5 | X = xyz(1); 6 | Y = xyz(2); 7 | s = sum(xyz); 8 | xy = [X/s; Y/s]; 9 | 10 | end 11 | -------------------------------------------------------------------------------- /source/matlab/balancing/cbgamutcorr.m: -------------------------------------------------------------------------------- 1 | function corr = cbgamutcorr(x1,y1,x2,y2) 2 | %corr = cbgamutcorr(x1,y1,x2,y2) 3 | % Given a two sets of points, this computes the convex hulls of each set 4 | % and their intersection. The gamut correlation is then defined as 5 | % A_intersection/sqrt(A_hull1*A_hull2), where A is an area. 6 | 7 | % clear 8 | % x1 = randn(1,100); 9 | % y1 = randn(1,100); 10 | % 11 | % x2 = randn(1,100)+3; 12 | % y2 = randn(1,100); 13 | 14 | [k1,a1] = convhull(x1,y1); 15 | [k2,a2] = convhull(x2,y2); 16 | 17 | [xp1,yp1] = poly2cw(x1(k1),y1(k1)); 18 | [xp2,yp2] = poly2cw(x2(k2),y2(k2)); 19 | % xp1 = x1(k1); yp1 = y1(k1); 20 | % xp2 = x2(k2); yp2 = y2(k2); 21 | 22 | 23 | [x,y] = polybool('&',xp1,yp1,xp2,yp2); 24 | 25 | % figure(10),clf 26 | % hold on 27 | % patch(x, y, 1, 'FaceColor', 'g') 28 | % plot(x1,y1,'.',x2,y2,'r.') 29 | % plot(x1(k1),y1(k1),'-',x2(k2),y2(k2),'r-') 30 | % hold off 31 | 32 | corr = polyarea(x,y)/sqrt(a1*a2) 33 | end -------------------------------------------------------------------------------- /source/matlab/balancing/cbimread.m: -------------------------------------------------------------------------------- 1 | function im = cbimread(filename) 2 | %im = cbimread(filename) 3 | % Reads an image and returns it in 0-1 float format. 4 | 5 | im = double(imread(filename))/255; 6 | end -------------------------------------------------------------------------------- /source/matlab/balancing/cbmired2temp.m: -------------------------------------------------------------------------------- 1 | function t = cbmired2temp(x) 2 | %t = cbmired2temp(m) 3 | % Converts the given value in mirads to temperature (Kelvin). 4 | % t = 10^6/m 5 | 6 | t = 10^6./x; -------------------------------------------------------------------------------- /source/matlab/balancing/cbreshape.m: -------------------------------------------------------------------------------- 1 | function out = cbreshape(im) 2 | %out = cbreshape(im) 3 | % Takes a width x height x 3 RGB image and returns a matrix where each column is an RGB 4 | % pixel. 5 | 6 | s = size(im); 7 | m = s(1); n = s(2); 8 | out = reshape(permute(im,[3 1 2]),[3 m*n 1]); 9 | 10 | % x=[] 11 | % for i=1:3 12 | % x=[x;reshape(im(:,:,i),m*n,1)']; 13 | % end 14 | end 15 | -------------------------------------------------------------------------------- /source/matlab/balancing/cbsaturate.m: -------------------------------------------------------------------------------- 1 | function y = cbsaturate(x,bounds) 2 | %y = cbsaturate(x,bounds) 3 | % Saturates the vector x given the bounds pair [low high] 4 | 5 | low = bounds(1); high = bounds(2); 6 | 7 | y=zeros(size(x)); 8 | for i = 1:length(x) 9 | if x(i) < low 10 | y(i) = low; 11 | elseif x(i) > high 12 | y(i) = high; 13 | else 14 | y(i) = x(i); 15 | end 16 | end 17 | end -------------------------------------------------------------------------------- /source/matlab/balancing/cbunshape.m: -------------------------------------------------------------------------------- 1 | function out = cbunshape(mat,s) 2 | %out = cbunshape(im,[width,height]) 3 | % Takes a 3xn matrix of RGB pixels and returns a height x width x 3 RGB 4 | % image 5 | 6 | width = s(1); height = s(2); 7 | out = reshape(mat,[3,width,height]); 8 | out = permute(out,[2 3 1]); 9 | end 10 | -------------------------------------------------------------------------------- /source/matlab/balancing/makecol.m: -------------------------------------------------------------------------------- 1 | function x = makecol(x) 2 | %x = makecol(x) 3 | % returns x as a column vector 4 | 5 | s = size(x); 6 | if (length(s) == 2) && (s(1) < s(2)) 7 | x = x.'; 8 | end 9 | 10 | end -------------------------------------------------------------------------------- /source/matlab/balancing/xy2XYZ.m: -------------------------------------------------------------------------------- 1 | function xyz = xy2XYZ(xy,Y) 2 | %xyz = xy2XYZ(xy,Y) 3 | % Converts xyY chromaticity to CIE XYZ. 4 | x = xy(1); y = xy(2); 5 | xyz = [Y/y*x; Y; Y/y*(1-x-y)]; 6 | end -------------------------------------------------------------------------------- /source/matlab/classification_metrics.m: -------------------------------------------------------------------------------- 1 | %Curva ROC 2 | plotroc(labels, scores) 3 | 4 | %Recupero valore di soglia ottimale 5 | [X,Y,T,AUC,OPTROCPT] = perfcurve(labels, scores,1); 6 | ACC = ((1-X)+Y)/2; 7 | fprintf('\tAUC: %f\n', AUC); 8 | 9 | %Calcolo accuracy (M) 10 | [M, idx] = max(ACC); 11 | fprintf('\tAccuracy: %f\n', M); 12 | %Valore di soglia 13 | Th = T(idx); 14 | fprintf('\tThreshold: %f\n', Th); 15 | 16 | %Precision recall curve 17 | figure; 18 | [Xpr,Ypr,Tpr,AUCpr] = perfcurve(labels, scores, 1, 'xCrit', 'reca', 'yCrit', 'prec'); 19 | plot(Xpr,Ypr); 20 | axis([0 1 0 1]); 21 | xlabel('Recall'); ylabel('Precision') 22 | title(['Precision-recall curve (AUC: ' num2str(AUCpr) ')']) 23 | ACC = ((1-X)+Y)/2; 24 | [~, idx] = max(ACC); 25 | F_score = 2* (Xpr(idx) * Ypr(idx)/(Xpr(idx) + Ypr(idx))); 26 | fprintf('\tF-Score: %f\n', F_score); --------------------------------------------------------------------------------