Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.image.BufferedImage;
- import java.awt.image.DataBuffer;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- import javax.imageio.ImageIO;
- public class Test {
- public static double compareImage(File fileA, File fileB) {
- double percentage = 0.0;
- try {
- // take buffer data from both image files //
- BufferedImage biA = ImageIO.read(fileA);
- DataBuffer dbA = biA.getData().getDataBuffer();
- double sizeA = dbA.getSize();
- BufferedImage biB = ImageIO.read(fileB);
- DataBuffer dbB = biB.getData().getDataBuffer();
- double sizeB = dbB.getSize();
- double count = 0;
- // compare data-buffer objects //
- if (sizeA == sizeB) {
- for (int i = 0; i < sizeA; i++) {
- if (dbA.getElem(i) == dbB.getElem(i)) {
- count = count + 1;
- }
- }
- percentage = (count * 100) / sizeA;
- } else {
- }
- } catch (Exception e) {
- System.out.println("Failed to compare image files ... " ) ;
- System.out.println(fileB.getPath());
- e.printStackTrace();
- }
- if (percentage >= 25)
- {
- System.out.println("Image file "+ fileB.getPath()+" is similar to reference file" );
- System.out.println("These images are "+ percentage + "% similar" );
- System.out.println();
- }
- return 0;
- }
- public static void main(String[] args) throws IOException {
- // TODO Auto-generated method stub
- // File B = new File("C:\\Users\\Zack\\Desktop\\Project_1_datasets\\2\\40694.jpg");
- File fileA = new File("C:\\Users\\Zack\\Desktop\\Project_1_datasets\\2\\40694.jpg");
- System.out.println("Reference file is: "+ fileA.getPath());
- System.out.println("Start search? (Y/N)");
- try (Stream<Path> filePathStream=Files.walk(Paths.get("C:\\Users\\Zack\\Desktop\\Project_1_datasets\\"))) {
- filePathStream.forEach(filePath -> {
- if (Files.isRegularFile(filePath)) {
- File fileB = new File(filePath.toString());
- compareImage(fileA ,fileB);
- }
- });
- System.out.println("Done searching");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement