从构建非线性目标函数的角度出发,光流三大假设,分别是亮度一致性,时域一致性和空域一致性

其中,亮度一致性构建了光流方程,时域一致性构建超定方程求解方式,而空域一致性,就是所谓的两帧之间运动微小假设,则引出了泰勒公式+梯度下降的方式(牛顿高斯迭代法)来求解非线性目标函数。

根据目标函数求导,推导可得:

光流算法,输入是ref帧图像的特征点坐标;输出是tar帧图像的特征点坐标。在此处还需要设置一些额外的参数,如滑动窗口的大小(win_size),迭代次数(max_iter)

import numpy as np
from menpo import image as mpimg
from menpo.shape import PointDirectedGraph
from menpofit.lk import LucasKanadeFitter, GradientCorrelation, GradientImages, ECC, SSD
from menpofit.transform import DifferentiableAlignmentSimilarity, DifferentiableAlignmentAffine
from matplotlib.patches import Polygon
import pylab as plt
import cv2
from PIL import Image
import os.path as osp
import os
from tqdm import tqdm
from skimage.registration import optical_flow_tvl1, optical_flow_ilk
from skimage.transform import warpdef menpofit_lk(moving_img, fixed_img, init_bbox, scales=[1/16, 1/8, 1/4, 1/2, 1], tform_tp='similarity', residual_cls=SSD):np_init_bbox_yx = np.array(init_bbox)[:, ::-1]np_moving_img = np.array(Image.open(moving_img).convert('L')).astype('f4') / 255.0np_fixed_img = np.array(Image.open(fixed_img).convert('L').convert('L')).astype('f4') / 255.0moving_img = mpimg.Image(np_moving_img[None])fixed_img = mpimg.Image(np_fixed_img[None])h, w = moving_img.shapebbox_edges = [[0,1], [1,2], [2,3], [3,0]]moving_img.landmarks['bounding_box'] = PointDirectedGraph.init_from_edges(points=np.array([[0, 0],[h-1, 0],[h-1, w-1],[0, w-1],]),edges=bbox_edges)init_bb = PointDirectedGraph.init_from_edges(points=np_init_bbox_yx,edges=bbox_edges)if tform_tp == 'similarity':transform = DifferentiableAlignmentSimilarityelse:transform = DifferentiableAlignmentAffinefitter = LucasKanadeFitter(moving_img, scales=scales, residual_cls=residual_cls, transform=transform)fr = fitter.fit_from_bb(fixed_img, init_bb)refined_bbox = fr.final_shape.points[:, ::-1]return refined_bboxif __name__ == '__main__':init_bbox = [[0,628],[628,628],[628,0],[0,0]]### test_aug_to_temp就是test_aug图片地址对应的temp图片地址for test_aug in test_aug_to_temp:temp_path = test_aug_to_temp[test_aug]refined_bbox = menpofit_lk(test_aug, temp_path, init_bbox, scales=[1/16, 1/8, 1/4, 1/2, 1], tform_tp='similarity', residual_cls=SSD)ransacReprojThreshold = 4H, status =cv2.findHomography(np.array(refined_bbox),np.array(init_bbox),cv2.RANSAC,ransacReprojThreshold);print(H)

LK光流对两张图配准相关推荐

  1. OpenCV学习笔记——判断两张图的相似度

    判断两张图的相似度 方法 直方图对比法 ORB算法 实验 1.直方图对比法 参考如何使用OpenCV3直方图方法进行人脸相似度对比 因为我的环境是VS2010+OpenCV2.4.8,所以在原版的基础 ...

  2. Python笔记-使用SSIM找两张图不同及使用Opencv显示

    运行截图如下: 这里有几点要注意的: ①对比两张图片的函数SSIM具体是structural_similarity: Ⅰ:第一个参数和第二个参数是要对比的两张图片: Ⅱ:参数中有个full,默认为Tr ...

  3. Android 应用性能优化(5)---用两张图告诉你,为什么你的App会卡顿?

    用两张图告诉你,为什么你的App会卡顿? Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? 知道Android究竟是如何在屏幕上显示我们期望的 ...

  4. MATLAB代码: 合并两张图

    MATLAB 合并两张图,要求大小相同的图,我这里合并两张相同的图. image = imread('docia_one.png') %读取图片 c = [image, image] %图像拼接到矩阵 ...

  5. 两张图搞定IJK源码

    IJK源码两张图就可以搞定,一张是IJK从播放到停止的代码流程图,一张是IJK的线程模型图

  6. python把两张图不同之处差异显示出来

    把两张图不同之处差异显示出来 原讨论帖, https://bbs.csdn.net/topics/396114473 最后找到了帖子的原帖, https://www.cnblogs.com/botoo ...

  7. Origin使两张图重叠展示在一张图上

    目录 1.先将两张图的坐标轴修改为相同. 2.删去其中一个图的图例.坐标轴等,仅保留曲线.左轴和下轴的刻度线标签.轴线和刻度线均把显示关闭.并用Delete删去坐标轴名称. 3.选中图形,Ctrl+C ...

  8. LaTeX两张图并排显示

    一.需要引入的包 \usepackage{caption} % 图片脚注 \usepackage{graphicx} \usepackage{caption} \usepackage{subfigur ...

  9. LATEX——两张图并列排列/双栏模板中图片通栏并列布局

    LATEX--两张图并列排列/双栏模板中图片通栏并列布局 正常插入图片 并列插入两张图片 双栏模板中图片通栏并列布局1(不同图片使用不同标题,不同编号) 双栏模板中图片通栏并列布局2(不同图片使有不同 ...

最新文章

  1. 微生物领域非顶级期刊概述
  2. springboot+druid+mybatis-Plus 配置详解
  3. propertychange 属性说明
  4. 你可能没注意的CSS单位
  5. CodeForces - 933A A Twisty Movement(dp)
  6. Matplotlib - 散点图 scatter() 所有用法详解
  7. 《量子计算机简史》--摘
  8. 堆、栈、堆栈详谈--复习
  9. Silverlight 设置DataGrid中行的提示信息
  10. Android自动清理无用资源工具
  11. 计算机二级c语言考试真题及答案详解,2021全国计算机二级C语言程序设计历年真题及答案节选...
  12. 笑哭了!日本网友求助如何卸载360浏览器,过程堪比“ 拆弹 ”.....
  13. 苹果4s怎么越狱_unc0ver 越狱工具来袭,免电脑操作,支持 A7-A12,支持iOS11~iOS12.4稳定越狱...
  14. 小程序 微信小商店 获取商品列表
  15. 图特摩斯三世厚积薄发
  16. STM32L4超低功耗特性概述
  17. C语言学习1——C语言概述
  18. 数据分析师必备技能之PowerBI教程
  19. Lagrange 四平方定理
  20. 女子监狱第四季/全集Orange Is the New Black迅雷下载

热门文章

  1. AI孙燕姿爆火,华语乐坛重温旧梦
  2. 考研复试-计算机网络-面试题
  3. 深度学习 音乐分类_基于神经网络的音乐流派分类
  4. 关于ng-alain的st、sf一些小功能的总结
  5. 128g内存linux开机需要多久,10年时间内存的变换,128MB到128G,价格不但没涨反而越来越低...
  6. vim中p的粘贴位置
  7. ubuntu 安装scrapy error :wisted/test/raiser.c:4:20: fatal error: Python.h: No such file or directory
  8. 【20210728】【信号处理】Alpha-Beta滤波——一种状态估计的方法
  9. Field 'userID' doesn't have a default value问题
  10. 山东省计算机网络与信息安全管理,山东省委网信办和国家计算机网络与信息安全管理中心山东分中心签署协议 将在这四方面展开合作...