光流算法:关于OpenCV读写middlebury网站给定的光流的代码
Middlebury是每个研究光流算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了光流算法的进展。Middlebury提供的标准库,其计算出的光流保存在后缀名为.flo的文件中,Middlebury本身也提供了读取.flo文件中C++源码和Matlab源码。尽管如此,将源码写成与OpenCV结合的形式是我们更期望的,以下我写的读写.flo文件的源码。相对于Middlebury给定的源码,更简洁易懂。
#include "CCC/COMCV.h"
#include <fstream>
void writeFlow(Mat_<Point2f> &flow, string outpath)
{
ofstream out(outpath, ios_base::binary);
string tag = "PIEH";//文件标志
out.write(tag.c_str(), tag.size());
out.write((const char*)(&flow.cols), sizeof(int));//行数
out.write((const char*)(&flow.rows), sizeof(int));//列数
for (int i = 0; i < flow.rows; i++)
for (int j = 0; j < flow.cols; j++)
{
out.write((const char*)(&flow(i, j).x), sizeof(float));
out.write((const char*)(&flow(i, j).y), sizeof(float));
} out.close();
}
void readFlow(Mat_<Point2f> &flow, string path)
{
ifstream in(path, ios_base::binary);
string tag(4, '0');//文件标志
in.read((char*)tag.data(), 4);
int rows, cols;
in.read((char*)(&cols), sizeof(int));//行数
in.read((char*)(&rows), sizeof(int));//列数
flow.create(rows, cols);
for (int i = 0; i < flow.rows; i++)
for (int j = 0; j < flow.cols; j++)
{
in.read((char*)(&(flow(i, j).x)), sizeof(float));
in.read((char*)(&(flow(i, j).y)), sizeof(float));
}
in.close();
}
光流算法:关于OpenCV读写middlebury网站的给定的光流的代码
光流算法:关于OpenCV读写middlebury网站给定的光流的代码的更多相关文章
- 立体匹配:关于OpenCV读写middlebury网站的给定的视差并恢复三维场景的代码
Middlebury是每个研究立体匹配算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了立体匹配算法的进展.Middlebury提供的标准库,其计算出的视差保存在后 ...
- 立体匹配:关于用OpenCV彩色化middlebury网站给定的视差
#include "XYZ.h" void readPFM(Mat_<float> &disp, float &scale, string path) ...
- LK光流算法:提高计算精度和增加搜索范围
LK光流算法:提高计算精度和增加搜索范围 关于LK算法的基本理论,见:http://www.cnblogs.com/dzyBK/p/4960630.html 这里主要阐述如何提高LK算法的计算精度和在 ...
- Lucas–Kanade光流算法学习
Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出. 光流(Optical flow or optic f ...
- 光流算法:Brox光流的OpenCV源码解析
OpenCV中DeepFlow代码其实是Brox光流,而非真正的DeepFlow光流,在将近一个月的研究.移植及优化过程中,对Brox光流有了较深刻的认识.我对OpenCV中源码进行了详细的分析,并以 ...
- HS光流算法详解<转载>
HS 光流法详解 前言 本文较为详细地介绍了一种经典的光流法 - HS 光流法. 光流法简介 当人的眼睛与被观察物体发生相对运动时,物体的影像在视网膜平面上形成一系列连续变化的图像,这一系列变化的图像 ...
- 光流算法:Brox算法(转载)
参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...
- 光流算法:Brox算法
参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...
- LK光流算法的三个假设
在实际过程中采用 Lucas-Kanade 光流算法跟踪运动物体特征点的时候,一个很明显的特点是LK算法(包括其他光流算法)不能计算"大运动",加上金子塔的方法稍微好点. 这是什么 ...
随机推荐
- ant脚本编写
使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- eclipse打包jar文件(含外部jar包)的方法
在项目发布前,使用eclipse导出普通的jar包时,如果配置不好,在运行命令Java -jar /test.jar 时可能会出现如下三类错误信息: 1.no main manifest attrib ...
- DW(四):Azure域控服务器配置
polybase集群要求使用相同的域账号,本节介绍选择用Azure虚拟机搭建自己的内网DNS服务器和域控 创建虚拟网络polybase,创建名为DNS的子网,如下图: 创建虚拟机,选择polybase ...
- Struts2 - Interceptor中取得ActionName、Namespace、Method
在Struts2的Interceptor中取得当前执行对应的ActionName.Namespace.Method方法: 可以使用: System.out.println(invocation.get ...
- 【jmeter】non-gui模式运行
operty文件,默认是使用JMETER_HOME/bin目录下的jmeter.properties,如果用户自定义有其它的配置,在这里加上 #用法如下: -p user.properties -q, ...
- WPF 数据绑定
1.1绑定到对象 1.1.1.前台绑定 前台代码 5: </Grid> 1: <Grid x:Name=”GridProductDetails”> 2: 3: <Te ...
- 【转】libvirt kvm 虚拟机上网 – Bridge桥接
libvirt kvm 虚拟机上网 – Bridge桥接 2013 年 7 月 3 日 / 东东东 / 暂无评论 目录 [hide] 1 Bridge桥接原理 2 在host机器配置桥接网络 2.1 ...
- routeros的配置资料
http://blog.csdn.net/boliang319/article/details/41800261 http://blog.csdn.net/boliang319/article/det ...
- erlang和go之间桥接库相关
https://github.com/goerlang