欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何利用opencv判断两张图片是否相同详解

程序员文章站 2022-02-26 20:04:41
opencv介绍opencv是一个基于bsd许可(开源)发行的跨平台计算机视觉库,可以运行在linux、windows、android和mac os操作系统上。它轻量级而且高效——由一系列 c 函数和...

opencv介绍

opencv是一个基于bsd许可(开源)发行的跨平台计算机视觉库,可以运行在linux、windows、android和mac os操作系统上。它轻量级而且高效——由一系列 c 函数和少量 c++ 类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

opencv用c++语言编写,它的主要接口也是c++语言,但是依然保留了大量的c语言接口。该库也有大量的python、java and matlab/octave(版本2.5)的接口。这些语言的api接口函数可以通过在线文档获得。如今也提供对于c#、ch、ruby,go的支持。

所有新的开发和算法都是用c++接口。一个使用cuda的gpu接口也于2010年9月开始实现。

opencv官网

https://opencv.org/

如何利用opencv判断两张图片是否相同详解

python支持opencv的包,接下来作者教你如何安装python的opencv第三方包

pip install opencv

如果找不到版本,去非官方下载opencv第三方包http://www.lfd.uci.edu/~gohlke/pythonlibs/

下载好文件放入c:/anaconda3/scripts 文件夹, 然后 用pip install opencv安装

如何利用opencv判断两张图片是否相同详解

安装好opencv后,我们测试一下两张王力宏的照片是否一致。如果照片相同,程序会输出两张照片相同,如果两张照片不同,程序会输出两张照片不同。脚本如下。

python脚本代码

import cv2
import numpy as np
#import os
 
file1= "1.png"
file2="3.png"
 
image1 = cv2.imread(file1)
image2 = cv2.imread(file2)
difference = cv2.subtract(image1, image2)
result = not np.any(difference) #if difference is all zeros it will return false
 
if result is true:
     print("两张图片一样")
else:
     cv2.imwrite("result.jpg", difference)
     print ("两张图片不一样")

两张照片相同情况

如何利用opencv判断两张图片是否相同详解

两张照片不同情况

如何利用opencv判断两张图片是否相同详解

opencvcv判断两张图片是否相同就为大家介绍到这里,非常简单

总结

到此这篇关于如何利用opencv判断两张图片是否相同的文章就介绍到这了,更多相关opencv判断图片相同内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!