立体匹配:关于用OpenCV彩色化middlebury网站给定的视差
#include "XYZ.h"
void readPFM(Mat_<float> &disp, float &scale, string path)
{ //关于将Mat见我的另外一篇博客:
ifstream in(path, ios_base::binary);
int cols;
int rows;
];
, '\n'); in.get();//文件头
, ' '); in.get(); cols = atoi(tmp);//列数
, '\n'); in.get(); rows = atoi(tmp); //行数
, '\n'); in.get(); scale = atof(tmp);//缩放因子
disp.create(rows, cols);
; i >= ; i--)//因为存储是从最后行开始存储的
; j < disp.cols; j++)
in.read((char*)(&disp(i, j)), sizeof(float));
in.close();
}
void dyeDisp_core(Mat_<Vec3b> &colordisp, Mat_<float> &disp, float mindisp, float maxdisp)
{
float scale = 1.0 / (maxdisp - mindisp);
; i < disp.rows; i++)
; j < disp.cols; j++)
{
Vec3b *xxx = &colordisp(i, j);
float x = disp(i, j);
if ((x != INFINITY) && (x != -INFINITY))
{
x = scale * (x - mindisp);
x = x / 1.15 + 0.1; // use slightly asymmetric range to avoid darkest shades of blue.
(*xxx)[] = __max(, __min(, ( * ( * fabs(x - .))))));
(*xxx)[] = __max(, __min(, ( * ( * fabs(x - .))))));
(*xxx)[] = __max(, __min(, ( * ( * fabs(x - .))))));
}
else
(*xxx) = Vec3b(, , );
}
}
void dyeDisp_one(string dir)
{
string calibpath = dir + "/calib.txt";
string disppath = dir + "/disp0GT.pfm";
string colordisppath = dir + "/disp0GT.png";
//1.读取极值视差
;
;
];
float f;
FILE *fp = fopen(calibpath.c_str(), "r");
while (fgets(line, sizeof line, fp) != NULL)
{
) dmin = f;
) dmax = f;
}
fclose(fp);
//2.读取视差图像
float scale;
Mat_<float> disp;
readPFM(disp, scale, disppath);
//FileStorage fs(disppath, FileStorage::READ);
//fs["mat"] >> disp;
//3.计算彩色视差
Mat_<Vec3b> colordisp(disp.rows, disp.cols);
dyeDisp_core(colordisp, disp, dmin, dmax);
//4.保存结果
imwrite(colordisppath, colordisp);
}
void dyeDisp_dir()
{
vector<string> dirs = cv_GetListFolders("./../TestData");
; i < dirs.size(); i++)
dyeDisp_one(dirs[i]);
}
void main()
{
dyeDisp_dir();
}
立体匹配:关于用OpenCV彩色化middlebury网站给定的视差的更多相关文章
- 光流算法:关于OpenCV读写middlebury网站给定的光流的代码
Middlebury是每个研究光流算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了光流算法的进展.Middlebury提供的标准库,其计算出的光流保存在后缀名为. ...
- 立体匹配:关于OpenCV读写middlebury网站的给定的视差并恢复三维场景的代码
Middlebury是每个研究立体匹配算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了立体匹配算法的进展.Middlebury提供的标准库,其计算出的视差保存在后 ...
- opencv 彩色图像分割(inrange)
灰度图像大多通过算子寻找边缘和区域生长融合来分割图像. 彩色图像增加了色彩信息,可以通过不同的色彩值来分割图像,常用彩色空间HSV/HSI, RGB, LAB等都可以用于分割! 笔者主要介绍inran ...
- OpenCV定制化创建角点检测子
定制化创建角点检测子 目标 在这个教程中我们将涉及: 使用 OpenCV 函数 cornerEigenValsAndVecs 来计算像素对应的本征值和本征向量来确定其是否是角点. 使用OpenCV 函 ...
- OpenCV阈值化处理
图像的阈值化就是利用图像像素点分布规律,设定阈值进行像素点分割,进而得到图像的二值图像.图像阈值化操作有多种方法,常用方法有经典的OTSU.固定阈值.自适应阈值.双阈值及半阈值化操作.这里对各种阈值化 ...
- OpenCV灰度化图像
OpenCV2版本号非常多函数发生了变化.比如二值化,其演示样例: void CmyMFC2Dlg::OnBnClickedButton1() { // TODO: Add your control ...
- opencv 彩色图像亮度、对比度调节 直方图均衡化
直接上代码: #include <Windows.h> #include <iostream>// for stand I/O #include <string> ...
- Jenkins(9)- 汉化 Jenkins 网站
如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 下载插件 安装这两个插件,然后重启 ...
- OpenCV——阈值化
上述五种结合CV_THRESH_OTSU(自适应阈值),写成:THRESH_BINARY | CV_THRESH_OTSU
随机推荐
- 解决html中 在不同浏览器中占位大小不统一的问题
直接在html文档中使用 来表示空格,在不同浏览器中的占位大小是不一样的. 为什么呢,因为不同浏览器默认的字体是不一样的,不同字体下的空格表示 占位大小不一致. 这就好办了嘛,我们对 指定使用同样的字 ...
- SQL导出excel
我在SQL 2008R2 里面用下面的命令成功导出excel 文件. EXEC master..xp_cmdshell 'bcp "select * from Car_data.dbo.Ca ...
- asp.net mvc处理css和js版本问题
当服务的修改了js和css内容后,发布到IIS服务器上,总是导致客户端内容显示不正确,原因是客户端存在缓存,还是加载的原来的js和css问题. 在css或js后面添加版本号,例如: <scrip ...
- Appium移动自动化测试(一)--安装Appium
Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿.现在终于有了. 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰. ...
- bzoj 1005 1211 prufer序列总结
两道题目大意都是根据每个点的度数来构建一棵无根树来确定有多少种构建方法 这里构建无根树要用到的是prufer序列的知识 先很无耻地抄袭了一段百度百科中的prufer序列的知识: 将树转化成Prufer ...
- ASP.NET Web API 入门示例详解
REST服务已经成为最新的服务端开发趋势,ASP.NET Web API即为.NET平台的一种轻量级REST架构. ASP.NET Web API直接借鉴了ASP.NET MVC的设计,两者具有非常类 ...
- 实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
转自:http://www.cnblogs.com/fengyun99/p/3541251.html 接上一章,我们已经基本把业务逻辑分析清楚了 下面我们第一步,实现二维码的web动态生成. 页面的二 ...
- Java中二维数组与面向对象
1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C: ...
- good books
- NOI Linux JAVA
右键open with another application 里输javaws 按ctrl+shift+del,调出火狐内置的清除最近的历史记录工具(或者按alt键弹出菜单,工具->清空最近历 ...