在python中利用opencv簡(jiǎn)單做圖片比對(duì)的方法
下面代碼中利用了兩種比對(duì)的方法,一 對(duì)圖片矩陣(m x m)求解特征值,通過(guò)比較特征值是否在一定的范圍內(nèi),判斷圖片是否相同。二 對(duì)圖片矩陣(m x m)中1求和,通過(guò)比較sum和來(lái)比較圖片。
# -*- coding: utf-8 -*-
import cv2 as cv
import numpy as np
import os
file_dir_a='C:\Users\wt\Desktop\data\image1\\'
file_dir_b='C:\Users\wt\Desktop\data\image\\'
savepath='.\'
all_file_name_a=os.listdir(file_dir_a)
all_file_name_b=os.listdir(file_dir_b)
image_all_a=[]
image_all_b=[]
for name in all_file_name_a:
image_one=[]
image = cv.imread(file_dir_a+name, cv.IMREAD_GRAYSCALE)
"""arg是計(jì)算輸入圖片矩陣的特征值,通過(guò)對(duì)特征值的比較來(lái)實(shí)現(xiàn)圖片的比對(duì)
"""
# arg=np.linalg.eigvals(image)
"""arg是計(jì)算輸入二值圖片矩陣中1的個(gè)數(shù),通過(guò)1的總數(shù)來(lái)實(shí)現(xiàn)圖片的比對(duì)
"""
arg=sum(image)
image_one.append(name)
image_one.append(arg)
image_all_a.append(image_one)#將一個(gè)圖片的信息寫入
print '讀入a'
# np.save('img_a.npy',image_all_a)
for name in all_file_name_b:
image_one=[]
image = cv.imread(file_dir_b+name, cv.IMREAD_GRAYSCALE)
"""同上
"""
# arg=np.linalg.eigvals(image)
arg=sum(image)
image_one.append(name)
image_one.append(arg)
image_all_b.append(image_one)#將一個(gè)圖片的信息寫入
print '讀入b'
# np.save('img_b.npy',image_all_b)
print '開始比較'
result_all=[]
for a in image_all_a: #比較小的
result = []
for b in image_all_b:
# print sum(a[1]-b[1])
if abs(sum(a[1]-b[1]))<0.00001:
result.append(a[0])
result.append(b[0])
result_all.append(result)
print '比較結(jié)束'
print result_all
np.save('match_result1.npy',result_all)
以上這篇在python中利用opencv簡(jiǎn)單做圖片比對(duì)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python opencv 讀取本地視頻文件 修改ffmpeg的方法
- 解決python測(cè)試opencv時(shí)imread導(dǎo)致的錯(cuò)誤問(wèn)題
- python opencv判斷圖像是否為空的實(shí)例
- python用opencv批量截取圖像指定區(qū)域的方法
- 使用Python向C語(yǔ)言的鏈接庫(kù)傳遞數(shù)組、結(jié)構(gòu)體、指針類型的數(shù)據(jù)
- Python使用ctypes調(diào)用C/C++的方法
- Python判斷變量名是否合法的方法示例
- Python使用while循環(huán)花式打印乘法表
- Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例
- 理想高通濾波實(shí)現(xiàn)Python opencv示例
相關(guān)文章
python隨機(jī)生成指定長(zhǎng)度密碼的方法
這篇文章主要介紹了python隨機(jī)生成指定長(zhǎng)度密碼的方法,涉及Python操作字符串的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
OpenCV半小時(shí)掌握基本操作之圖像基礎(chǔ)操作
這篇文章主要介紹了OpenCV基本操作之圖像基礎(chǔ)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
python GUI庫(kù)圖形界面開發(fā)之PyQt5滑塊條控件QSlider詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開發(fā)之PyQt5滑塊條控件QSlider詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02
在Python中實(shí)現(xiàn)字典反轉(zhuǎn)案例
這篇文章主要介紹了在Python中實(shí)現(xiàn)字典反轉(zhuǎn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
python作圖基礎(chǔ)之plt.contour實(shí)例詳解
contour和contourf都是畫三維等高線圖的,下面這篇文章主要給大家介紹了關(guān)于python作圖基礎(chǔ)操作之plt.contour的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Python操作CouchDB數(shù)據(jù)庫(kù)簡(jiǎn)單示例
這篇文章主要介紹了Python操作CouchDB數(shù)據(jù)庫(kù)簡(jiǎn)單示例,本文講解了連接服務(wù)器、創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建文檔并插入到數(shù)據(jù)庫(kù)等操作實(shí)例,需要的朋友可以參考下2015-03-03

