图像基础5 图像匹配--差分矩阵求和与均值
来源:互联网 发布:用数据包怎么传淘宝 编辑:程序博客网 时间:2024/06/05 18:35
本系列文章是学习《机器学习实践指南 案例应用分析 第2版》的笔记。
图像匹配算法是基于像素的比较和计算来实现的方法。
1. 差分矩阵求和
差分算法的核心在于差分矩阵,实质为差异矩阵。
算法过程是:
首先,计算两个图像的矩阵数据之间差异分析图像的相似性;然后,设置一个阈值进行比较,如果差分矩阵的所有元素之和在阈值以内,则表示这两张图像是相似的,且描述了同一物体。
它要求两个图像大小相同。
# - * - coding: utf-8 - * -# 简单定位图像import cv2import numpy as npprint('loading')def showpiclocation(img,findimg): # 定位图像 w = img.shape[1] h = img.shape[0] fw = findimg.shape[1] fh = findimg.shape[0] findpt = None for now_h in range(0,h-fh): for now_w in range(0, w-fw): comp_tz = img[now_h:now_h+fh,now_w:now_w+fw,:]-findimg if np.sum(comp_tz) <1: findpt = now_w,now_h print('.',) if findpt != None: print('fw is %d' % fw) cv2.rectangle(img, findpt, (findpt[0]+fw, findpt[1]+fh),(255,0,0)) return imgfn = 'big.png'fn1 = 'small.png'myimg = cv2.imread(fn)myimg1 = cv2.imread(fn1)myimgf = showpiclocation(myimg,myimg1)cv2.namedWindow('img')cv2.imshow('img',myimgf)cv2.waitKey()cv2.destroyAllWindows()
结果:
使用示例图片是可以的,但使用其它图片没有成功。暂时不知道为什么。
原图:
2. 差分矩阵均值
当数字图像质量较差时,则需要计算差分矩阵的均值,并为均值设一个适当的阈值。
# - * - coding: utf-8 - * -# 少量噪声定位图像import cv2import numpy as npprint('loading...')def showpiclocation(img,findimg): # 定位图像 w = img.shape[1] h = img.shape[0] fw = findimg.shape[1] fh = findimg.shape[0] findpt = None for now_h in range(0,h-fh): for now_w in range(0,w-fw): comp_tz = img[now_h:now_h+fh,now_w:now_w+fw,:]-findimg if abs(np.mean(comp_tz))<20: //差分矩阵的阈值 findpt=now_w,now_h print('ok') print ('.') if findpt != None: cv2.rectangle(img,findpt,(findpt[0]+fw, findpt[1]+fh),(0,0,255)) return imgdef addnoise(img): coutn = 5000 for k in range(0,coutn): xi = int(np.random.uniform(0,img.shape[1])) xj = int(np.random.uniform(0,img.shape[0])) img[xj,xi,0] = 255*np.random.rand() img[xj,xi,1] = 255*np.random.rand() img[xj,xi,2] = 255*np.random.rand()fn = 'big.png'fn1 = 'small.png'myimg = cv2.imread(fn)myimg1 = cv2.imread(fn1)addnoise(myimg)myimgf = showpiclocation(myimg,myimg1)cv2.namedWindow('img')cv2.imshow('img',myimgf)cv2.waitKey()cv2.destroyAllWindows()
差分矩阵的阈值一般为10~200,阈值越大,能容忍的噪声点越多。如果阈值超过200,最好使用欧氏距离算法。
阅读全文
0 0
- 图像基础5 图像匹配--差分矩阵求和与均值
- OpenCv图像差分
- 图像差分
- 视频图像差分检测
- 图像差分 (IplImage *) 版
- 图像差分的方法
- 图像差分的方法
- 转:OpenCv图像差分源码
- opencv图像差分+otsu方法
- 免费图像库与均值偏移
- 图像分基础习题1
- 图像基础6 图像匹配--欧氏距离匹配
- 灰度图像均值平滑
- 【转】图像均值平滑
- 图像处理:均值滤波
- 计算图像均值
- 计算图像均值
- 图像特征提取与匹配
- 逻辑一致、交叉验证
- Python中数据类型
- 管理网络
- 简单易用的MVC框架:VRaptor
- 三、MongoDB的基本概念之集合
- 图像基础5 图像匹配--差分矩阵求和与均值
- 大规模公有云的自动化工具
- SPOJ-PT07Y Is it a tree DFS/并查集
- svn 命令
- 悼念512汶川大地震遇难同胞——重建希望小学
- HTML5全屏模式下隐藏默认视频控制栏
- python文件编码说明 coding=utf-8
- C语言模拟实现C++继承和多态
- sql