精华内容
下载资源
问答
  • python 对比两张图片是否相同

    千次阅读 2019-02-24 05:44:29
    python 对比两张图片是否相同说明 说明 适用于对比两张图片是否完全相同 需要两张图片的大小完全一致 代码来源于网络,进行微调 from PIL import Image from PIL import ImageChops def compare_images(path_one...

    python 对比两张图片是否相同

    说明

    1. 适用于对比两张图片是否完全相同
    2. 需要两张图片的大小完全一致

    代码来源于网络,进行微调

    from PIL import Image
    from PIL import ImageChops
    
    
    def compare_images(path_one, path_two):
        """
        比较图片
        :param path_one: 第一张图片的路径
        :param path_two: 第二张图片的路径
        :return: 相同返回 success
        """
        image_one = Image.open(path_one)
        image_two = Image.open(path_two)
        try:
            diff = ImageChops.difference(image_one, image_two)
    
            if diff.getbbox() is None:
                # 图片间没有任何不同则直接退出
                return "success"
            else:
                return "ERROR: 匹配失败!"
    
        except ValueError as e:
            return "{0}\n{1}".format(e, "图片大小和box对应的宽度不一致!")
    
    
    if __name__ == '__main__':
        compare_images(
            'target.png',
            'template.jpg',
        )
    
    
    展开全文
  • 对比两张图片的MD5值

    万次阅读 2018-08-01 15:39:02
    图片上传的时候,通过对比两张图片的MD5值,判断图片是否上传成功。

    图片上传的时候,通过对比两张图片的MD5值,判断图片是否上传成功。

    package com.kedacom.testdemo.javaTest;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @Dec :
     * @Author : Caowj
     * @Date : 2018/8/1 8:58
     */
    public class Test1 {
        /**
         * 获取单个文件的MD5值!
         *
         * @param file
         * @return
         */
        public static String getFileMD5(File file) {
            if (!file.isFile()) {
                return null;
            }
            MessageDigest digest = null;
            FileInputStream in = null;
            byte buffer[] = new byte[1024];
            int len;
            try {
                digest = MessageDigest.getInstance("MD5");
                in = new FileInputStream(file);
                while ((len = in.read(buffer, 0, 1024)) != -1) {
                    digest.update(buffer, 0, len);
                }
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            BigInteger bigInt = new BigInteger(1, digest.digest());
            String md5 = bigInt.toString(16);
            System.out.println("filePath:" + file.getPath() + "\nmd5:" + md5);
            return md5;
        }
    
        /**
         * 获取文件夹中文件的MD5值
         *
         * @param file
         * @param listChild ;true递归子目录中的文件
         * @return
         */
        public static Map<String, String> getDirMD5(File file, boolean listChild) {
            if (!file.isDirectory()) {
                return null;
            }
    //<filepath,md5>
            Map<String, String> map = new HashMap<String, String>();
            String md5;
            File files[] = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                File f = files[i];
                if (f.isDirectory() && listChild) {
                    map.putAll(getDirMD5(f, listChild));
                } else {
                    md5 = getFileMD5(f);
                    if (md5 != null) {
                        map.put(f.getPath(), md5);
                    }
                }
            }
            return map;
        }
    
        public static void main(String[] args) {
    
    //        http://122.138.250.132:9900/file/ydzf/16/16000031/b64_MTYwMDAwMzFfMQ.jpg//问题图片
    
    //        String image1 = "C:\\Users\\kd\\Desktop\\b64_MTYwMDAwMzFfMQ.jpg.png";
    //        String image2 = "C:\\Users\\kd\\Desktop\\16000031_1.jpg";
    
            String image1 = "C:\\Users\\kd\\Desktop\\b64_MTYwMDAwMzFfMg.jpg";
            String image2 = "C:\\Users\\kd\\Desktop\\16000031_2.jpg";
    
            File file1 = new File(image1);
            File file2 = new File(image2);
            System.out.println(getFileMD5(file1).equals(getFileMD5(file2)));
    
            String s = file1.getPath();
            System.out.println(s);
        }
    }

    日志输出:

    filePath:C:\Users\kd\Desktop\zhcx\b64_MTYwMDAwMzFfMg.jpg
    md5:576b742dae427ab95478513744c368ad
    
    filePath:C:\Users\kd\Desktop\zhcx\16000031_2.jpg
    md5:576b742dae427ab95478513744c368ad
    true
    
    C:\Users\kd\Desktop\zhcx\b64_MTYwMDAwMzFfMg.jpg
    
    展开全文
  • 这篇文章主要介绍了用python实现对比两张图片的不同的相关资料,需要的朋友可以参考下。 直接上代码如下: from PIL import Image import math import operator from functools import reduce def image_contrast...

    这篇文章主要介绍了用python实现对比两张图片的不同的相关资料,需要的朋友可以参考下。

    直接上代码如下:

    from PIL import Image
    import math
    import operator
    from functools import reduce
    def image_contrast(img1, img2):
      image1 = Image.open(img1)
      image2 = Image.open(img2)
      h1 = image1.histogram()
      h2 = image2.histogram()
      result = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h1, h2)))/len(h1) )
      return result
    if __name__ == '__main__':
      img1 = "./1.png" # 指定图片路径
      img2 = "./2.png"
      result = image_contrast(img1,img2)
      print(result)

    如果两张图片完全相等,则返回结果为浮点类型“0.0”,如果不相同则返回结果值越大。

    同样用上面两张图片,执行结果为38,还是比较小的:

    这样就可以在自动化测试用例中调用该方法来断言执行结果。

    展开全文
  • 如何利用Python3和OpenCV对比两张图片的不同,提取差异性 导言:通过机器视觉来计算两个图片之间的差异性,可以快速有效辨别文件、图片是否被篡改,也能帮助用户轻松识别钓鱼网站,确保财产安全。 一、所需模块 pip ...

    如何利用Python3和OpenCV对比两张图片的不同,提取差异性

    导言:通过机器视觉来计算两个图片之间的差异性,可以快速有效辨别文件、图片是否被篡改,也能帮助用户轻松识别钓鱼网站,确保财产安全。

    一、所需模块

    pip install --upgrade scikit-image
    pip install --upgrade imutils
    

    二、Python实现

    # import the necessary packages
    from skimage.measure import compare_ssim
    import argparse
    import imutils
    import cv2
     
    # construct the argument parse and parse the arguments
    ap = argparse.ArgumentParser()
    ap.add_argument("-f", "--first", required=True,
    	help="first input image")
    ap.add_argument("-s", "--second", required=True,
    	help="second")
    args = vars(ap.parse_args())
    
    # load the two input images
    imageA = cv2.imread(args["first"])
    imageB = cv2.imread(args["second"])
     
    # convert the images to grayscale
    grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
    grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
    
    # compute the Structural Similarity Index (SSIM) between the two
    # images, ensuring that the difference image is returned
    (score, diff) = compare_ssim(grayA, grayB, full=True)
    diff = (diff * 255).astype("uint8")
    print("SSIM: {}".format(score))
    
    # threshold the difference image, followed by finding contours to
    # obtain the regions of the two input images that differ
    thresh = cv2.threshold(diff, 0, 255,
    	cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
    cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
    	cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    
    # loop over the contours
    for c in cnts:
    	# compute the bounding box of the contour and then draw the
    	# bounding box on both input images to represent where the two
    	# images differ
    	(x, y, w, h) = cv2.boundingRect(c)
    	cv2.rectangle(imageA, (x, y), (x + w, y + h), (0, 0, 255), 2)
    	cv2.rectangle(imageB, (x, y), (x + w, y + h), (0, 0, 255), 2)
     
    # show the output images
    cv2.imshow("Original", imageA)
    cv2.imshow("Modified", imageB)
    cv2.imshow("Diff", diff)
    cv2.imshow("Thresh", thresh)
    cv2.waitKey(0)
    
    

    三、运行代码

    如下图所示,cmd打开电脑终端,输入运行参数(即图片存储路径),Enter键运行。具体方法见上一篇博文:如何使用Argparse模块

    程序运行方法

    四、运行结果

    运行结果

    后记:需要对比的两张图片必须尺寸大小一致,即像素矩阵一致,否则无法对比提取差异性。有问题欢迎留言!

    展开全文
  • [274]用python对比两张图片的不同

    万次阅读 2018-07-08 14:08:05
    from PIL import Image from PIL import ImageChops def compare_images(path_one, path_two, diff_save_location): &quot;&quot;&quot;... 比较图片,如果有不同则... @参数二: path_two: 第二张图片的...
  • Haclon和c#对比两张图片差异

    千次阅读 2018-12-06 20:18:27
    1.两张图片相减少 2.相减图片求平均值和方差; c#核心代码 public bool Extcute(out double Deviation, HImage bitmap1, HImage bitmap2) { try { ho_GrayImage1.Dispose(); HOperatorSet.Rgb1ToGray...
  • 像素对比两张图片相似度是否一样

    万次阅读 2017-06-23 16:04:49
    返回值是 'image1' 和 'image2'对比后的相似度,相似度越高,图片越接近,达到100.0说明图片完全相同。 ''' img1 = image1.resize(size).convert("RGB") sub_image1 = split_image(img1, part_size) img2 = ...
  • 下面代码计算了图片的平均亮度和亮度的标准差 思路:灰度就当作是亮度。平均亮度就是每个像素的灰度相加并除以总像素。标准差公式可百度…… 还有个图片的亮度,可参考...
  • 两张图片相似度对比

    千次阅读 2019-07-03 18:12:55
    图片A,和图片B相似度对比代码如下 package HistogramFilter; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class HistogramFilter { public static ...
  • * 对比两张图片必须是灰度图 * * @param file1 人脸特征 * @param file2 人脸特征 * @return 相似度 */ public double CmpPic (String file1, String file2) { int l_bins = 20 ; int ...
  • 声明 图片两张毛笔字图片, 一张是电脑制作的 一张是手写的图片,我在网上也搜了几个方法,不过效果不太好,是利用的直方图的概念比较的,不过这个方法比较的分数太低,这个技术是根据颜色值对比吧,我也不太理解...
  • 在android中实现两张图片对比

    千次阅读 2013-07-19 15:59:06
    * Android图片对比(像素精准对比),速度较慢建议用多线程获取   * @author xupp   * @createData 2013-7-18   */     public   class   PictureContrast {   private   ...
  • 现在的比对方法是将图片读成流,然后取出这个流的哈希值进行比对,但是效率太低,有没有什么方法可以高效的判断两张图片是不是同一张图?
  • 如何评估两张图片的差异

    千次阅读 2020-05-04 18:25:38
    如何评估两张图片的差异 方法一,图像直方图比较 就像人的指纹一样,没有哪两张的照片的直方图会是一样的(拍摄的图片),所以只要将两张图片拉倒ps里面看直方图就可以了。 方法二,DiffImg 方法三,Image Comparer ...
  • 小弟要做一个Android图片编辑功能的软件,其中需求是自动对比两张图片,找出两张图片不相同的地方并自动统计不同的数目,请问应该怎样实现??
  • python两张图片显示在一张图上

    万次阅读 2018-10-16 21:00:25
    有时候需要把两张图合并在一起展示,下面是效果图(本来是两张图片): 上代码: from PIL import Image import matplotlib.pyplot as plt import numpy as np # 1. 将两张icon图标显示在同一张图上面并保存...
  • Opencv查找两张图片不同的部分以及图片中特定的像素替换 Opencv识别两张图片的不同部分demo: import cv2 import numpy as np from matplotlib import pyplot as plt import argparse def matchAB(fileA, fileB): ...
  • c# OpenCV -1 直接比对两张图片

    千次阅读 2018-12-01 22:59:07
    输入两张图片,返回比对结果: DrawMatches.Test(arrICs[3], arrICs[1]); 本例基于EmguCv...    public static class DrawMatches  {  public static void FindMatch(Mat modelImage, Mat observedImage, out ...
  • OpenCV识别出两张图片的人脸,并比较出两张人脸的相似度,并给出相似值。 包含完整的工程文件,可立即运行!!! 用facedetect功能将两张图片中的人脸检测出来 将人脸部分的图片剪切出来,存到两张只有人脸的图片...
  • 两张图片相似度比较

    千次阅读 2016-11-01 09:04:20
    package { import flash.display.BitmapData; import flash.geom.Matrix; public class HashClass { public function HashClass() { // constructor code ...public function compareBitmapData(bmpData1
  • php判断两张图片是否相同

    千次阅读 2018-08-17 10:47:58
    方法一: sha1_file() 或者 md5_file()方法。 $file = "./img/1.jpg"; $file2 = "./img/2.jpg"...这两个方法只能判断两张完全相同的图片,包括文件的大小,尺寸,另外这个...
  • 比较两张图片的相似性

    千次阅读 2020-08-23 20:57:48
    1、原图上可以发现的信息,两张图拍摄...2、如果单从比较两张图片是否相同,那肯定不相同;若是比较图一中水泥模子是否为图二中水泥模子晾干之后的结果,那答案是相同的,可以将图一或者图二换成与之对应的相位就可..
  • Python计算两张图片的相似度

    千次阅读 2019-06-07 16:20:27
    目录一、场景需求解读二、Mean Squared ...  在现实场景中,我们经常会遇到一个问题,即如何评价不同图片的好坏,或者如何比较两张图片的相似性。它在学术研究领域中具有的广泛的研究前景,例如当你提出来一种新...
  • JAVA 比较两张图片的相似度的代码

    万次阅读 2017-02-10 16:54:31
    import java.awt.image.BufferedImage; import java.io.File;... * 比较两张图片的相似度 * @author Guihua * */ public class BMPLoader { // 改变成二进制码 public static String[][] getPX

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,266
精华内容 29,706
关键字:

怎么对比两张图片