利用OpenCV实现对于两个图像的对比

本文介绍了如何利用OpenCV在Python中实现图像对比。作者在研究将测试结果保存为图片并判断测试是否通过时,选择了OpenCV作为图像处理工具。文章包含图像比对的核心代码、前端HTML显示以及uwsgi服务器的整合部分,适用于Ubuntu 12.04 LTS和Python 2.7环境。
摘要由CSDN通过智能技术生成

最近在研究如果将测试结果保存成图片,如何能知道测试是不是通过,其中明显要设计到图像的对比算法。经过了一些研究,最终选择了OpenCV做为实现的基本技术。

OpenCV真的是个强大的东西,相对于Python其他的一些图像库,这个东西更加复杂,也非常灵活,我就直接上代码了


代码有三个部分,一个部分是核心的图像比对,一个是前台的html显示,还有一个就是基于uwsgi的胶水代码

基于Ubuntu 12.04 LTS, python版本2.7


1. 核心图像比对 diff_img.py

import cv2
import sys
import numpy as np
def main(img1p,img2p):
    img1 = cv2.imread(img1p)
    img2 = cv2.imread(img2p)
    img3 = img2
    height = img1.shape[0]
    width = img1.shape[1]
    if img1.shape[0] == img2.shape[0] and img1.shape[1] == img2.shape[1]:
        diff = False
        for i in range (0,width):
            for j in range (0,height):
                try:
                    if color_diff(img1[j,i],img2[j,i]) != True:
                        img3[j,i] = [0,0,255]
                        diff = True
                except:
                    pass
        if diff:
            cv2.imwrite("uploads/wrong.png", img3)
            print "yes"
        else:
            print "no"

    else:
        print "sizewrong"

def color_diff(img1p, img2p):
    if len(img1p) != len(img2p):
        return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值