完全匹配(hall定理)&完美匹配&最大匹配(匈牙利算法)+计算二分图的完美匹配的个数

二分图的完全匹配&完美匹配

完 全 匹 配 : 匹 配 中 的 边 的 条 数 ∣ S ∣ = m i n { ∣ V 1 ∣ , ∣ V 2 ∣ } 完 美 匹 配 : 匹 配 中 的 边 的 条 数 ∣ S ∣ = ∣ V 1 ∣ = ∣ V 2 ∣ 最 大 匹 配 : 一 个 图 所 有 匹 配 中 , 所 含 匹 配 边 数 最 多 的 匹 配 完全匹配:匹配中的边的条数|S|=min\{|V_1|,|V_2|\}\\ 完美匹配:匹配中的边的条数|S|=|V_1|=|V_2|\\ 最大匹配:一个图所有匹配中,所含匹配边数最多的匹配 S=min{V1,V2}S=V1=V2

完全匹配的Hall婚配定理

m 个 姑 娘 , n 个 小 伙 , 姑 娘 和 小 伙 间 右 连 线 ( 中 意 ) , m 个 姑 娘 存 在 完 全 匹 配 的 充 要 条 件 是 任 意 k 个 姑 娘 中 意 的 小 伙 总 数 大 于 等 于 k 证 明 : 必 要 性 显 然 , 充 分 性 : 对 m 使 用 归 纳 法 m = 1 时 显 然 成 立 , 设 对 m = m − 1 个 姑 娘 成 立 ∀ k ∈ [ 1 , m − 1 ] , k 个 姑 娘 中 意 总 数 为 k + 1 : 先 嫁 出 去 一 个 , 则 对 剩 下 的 可 以 使 用 归 纳 驾 驶 ∃ k ∈ [ 1 , m − 1 ] , k 个 姑 娘 中 意 总 数 为 k : 先 嫁 k 个 , 剩 下 m − k 个 姑 娘 , n − k 个 小 伙 还 能 嫁 出 去 m个姑娘,n个小伙,姑娘和小伙间右连线(中意),m个姑娘存在完全匹配的充要条件是\\ 任意k个姑娘中意的小伙总数大于等于k\\ 证明:必要性显然,充分性:对m使用归纳法\\ m=1时显然成立,设对m=m-1个姑娘成立\\ \forall k \in [1,m-1],k个姑娘中意总数为k+1:先嫁出去一个,则对剩下的可以使用归纳驾驶\\ \exists k \in [1,m-1],k个姑娘中意总数为k:先嫁k个,剩下m-k个姑娘,n-k个小伙还能嫁出去\\ mn线mkk:m使m=1m=m1k[1,m1],kk+1:使k[1,m1],kkkmknk

最大匹配的匈牙利算法

思想:用“广度有限”搜索增广路径

1,对于一个未匹配的节点u,寻找它的每条边,如果它的边上的另一个节点v还没匹配则表明找到了一个匹配,
直接转步骤4;
在这里插入图片描述

2,假如节点u它边上的另一个节点v已经匹配,那么就转向跟v匹配的节点假设是w,然后再对w重复1,2的步骤,即寻找增广路.
3,假如我们在1,2步过程中找到- -条增广路,那么修改各自对应的匹配点,转步骤4,若无增广路,则退出.
4,匹配数+1;

在这里插入图片描述

计算二分图的完美匹配的个数

积和式 或 永久式 (permA,perment)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像匹配是通过对图像内容、特征、结构、关系、纹理及灰度等进行对应关系的分析,以寻找相似影像目标的方法。在Python中,可以使用不同的库和技术来进行图像匹配,例如SIFT(尺度不变特征变换)和Harris角点检测。 使用SIFT实现图像匹配的代码如下: ``` from PIL import Image from pylab import * import sys from PCV.localdescriptors import sift if len(sys.argv) >= 3: im1f, im2f = sys.argv[1], sys.argv[2] else: im1f = 'mansion1.jpg' im2f = 'mansion2.jpg' im1 = array(Image.open(im1f)) im2 = array(Image.open(im2f)) sift.process_image(im1f, 'out_sift_1.txt') l1, d1 = sift.read_features_from_file('out_sift_1.txt') figure() gray() subplot(121) sift.plot_features(im1, l1, circle=False) sift.process_image(im2f, 'out_sift_2.txt') l2, d2 = sift.read_features_from_file('out_sift_2.txt') subplot(122) sift.plot_features(im2, l2, circle=False) matches = sift.match_twosided(d1, d2) print('{} matches'.format(len(matches.nonzero()[0]))) figure() gray() sift.plot_matches(im1, im2, l1, l2, matches, show_below=True) show() ``` 而使用Harris角点检测实现图像匹配的代码如下: ``` from PIL import Image from numpy import * import harris from pylab import * wid = 5 im1 = array(Image.open('memorial_hall1.jpg').convert('L')) im2 = array(Image.open('memorial_hall2.jpg').convert('L')) harrisim = harris.compute_harris_response(im1, 5) filtered_coords1 = harris.get_harris_points(harrisim, wid, 0.2) d1 = harris.get_descriptors(im1, filtered_coords1, wid) harrisim = harris.compute_harris_response(im2, 5) filtered_coords2 = harris.get_harris_points(harrisim, wid, 0.2) d2 = harris.get_descriptors(im2, filtered_coords2, wid) print('starting matching') ``` 请问还有其他方面的相关问题吗? 相关问题: 1. 如何使用OpenCV进行图像匹配? 2. Python中还有哪些常用的图像匹配算法? 3. 如何评估图像匹配的质量? 4. 图像匹配计算机视觉中的应用有哪些? 5. 如何在大规模图像数据库中进行高效的图像匹配? 6. 图像匹配的性能如何受到图像变换的影响?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值