图像工作回顾之三:极线匹配
2006年完成的基于OpenCV的立体匹配与极线几何测试,VC6+OpenCV+MDI框架,匹配用SIFT,基础矩阵算法可选,默认为RANSAC。
鼠标在左或右图单击,在另一图上则画出对应的极线,蓝色表示。
当年的日志:
完成cpp版的sift移植.
2:16 2006-5-26
贴一点代码:
void CMyEpilineView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMainFrame *pFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
CMyEpilineView *another;//先判断是否为左或右视图
if(this==pFrame->m_leftView)
another=pFrame->m_rightView;
else if(this==pFrame->m_rightView)
another=pFrame->m_leftView;
else
return;
if (!pFrame->m_fundamental_matrix) // 当没计算基础矩阵时
return;
cvCircle(this->GetDocument()->m_image, cvPoint(point.x,point.y), 2, CV_RGB(0,0,255), 1,8,0);
this->Invalidate(TRUE);
CvMat* points1 = cvCreateMat(2,3,CV_32F);//1个点不行!最少为3,虽然只用1个点
cvmSet(points1,0,0, point.x );
cvmSet(points1,1,0, point.y );
CvMat *correspondent_lines= cvCreateMat(3,3,CV_32F);//最少为3
if(this==pFrame->m_leftView)
cvComputeCorrespondEpilines(points1,1,pFrame->m_fundamental_matrix,correspondent_lines);
else if(this==pFrame->m_rightView)
cvComputeCorrespondEpilines(points1,2,pFrame->m_fundamental_matrix,correspondent_lines);
else
return;
//float a = correspondent_lines->data.ptr[j]+.000001;
//float b = (correspondent_lines->data.ptr+correspondent_lines->step)[j]+.000001;
//float c = (correspondent_lines->data.ptr+correspondent_lines->step*2)[j];
float a = cvmGet(correspondent_lines, 0, 0 );
float b = cvmGet(correspondent_lines, 1, 0 );
float c = cvmGet(correspondent_lines, 2, 0 );
cvReleaseMat(&points1);
cvReleaseMat(&correspondent_lines);
cvLine( another->GetDocument()->m_image, cvPoint( 0, (int)-c/b ),
cvPoint(another->GetDocument()->m_image->width,(int)(-c-a*another->GetDocument()->m_image->width)/b), CV_RGB(0,0,255),1,8,0 );
//cvCircle(image2, cvPoint( (int)cvmGet(points2,0,i),(int)cvmGet(points2,1,i) ), 2, CV_RGB(255,0,0), 1,8,0);
//printf("epiline:(0,%d)-->(%d,0)\n",(int)-c/b,(int)-c/a);
//printf("%f,%f,%f\n",a,b,c);
another->Invalidate();
// cvNamedWindow("click epiline",1);
// cvShowImage("click epiline",another->GetDocument()->m_image);
// cvWaitKey(0);
CScrollView::OnLButtonDown(nFlags, point);
}
上图:
图像工作回顾之三:极线匹配相关推荐
- 图像特征点检测与匹配评价准则——量化
欢迎转载,转载请注明出处,谢谢! 目前图像匹配中,局部特征匹配占据了绝大部分,常用的局部特征匹配方法有Harris.SIFT.SURF.ORB等等,不同的特征点检测和匹配方法尤其独特的优势和不足: ...
- 尾矿库的安全警示——两次尾矿库溃坝遥感卫星图像过程回顾
** 尾矿库的安全警示--两次尾矿库溃坝遥感卫星图像过程回顾 ** 以上数据来着:北京盛世华遥 附录: 博客主页: https://blog.csdn.net/weixin_44143671 0.遥感 ...
- 图像特征之SURF特征匹配
原文站点:https://senitco.github.io/2017/06/27/image-feature-surf/ 加速鲁棒特征(Speed Up Robust Feature, SURF ...
- 2019年度工作回顾——管理方向转型
2019年最大的变化是人生级的:当爹了.于是退了公司宿舍,每天来回2个多小时开车,带娃睡觉,虽然做的不到位(老人和老婆是辛苦得多),但也是体会了各种为人父母的不易. 回顾下工作方面的成长,从2大类说起 ...
- 图像配准之特征点匹配的思考
最近赶时髦,看了一些智能优化算法如蚁群算法,还有机器学习的一些东西,就想着怎么把这些先进的东西用在图像配准中.头脑风暴了一下,觉得在已经检测到两幅图像的特征点的基础上,就如何对它们进行匹配似乎有优化的 ...
- 图像形状特征提取c语言,OpenCV_局部图像特征的提取与匹配_源代码
测试代码, main.cpp // 局部图像特征提取与匹配 // Author: http://blog.csdn.net/icvpr #include #include #include usi ...
- 图像特征点检测与匹配评价——量化指标
原文:http://blog.csdn.net/cgwang_1580/article/details/68944319 目前图像匹配中,局部特征匹配占据了绝大部分,常用的局部特征匹配方法有Harri ...
- 中国期货市场风险回顾之三(海南棕榈油M506事件)
风暴过后是沉寂--海南棕榈油M506事件回顾 棕榈油作为国内期市较早推出的大品种,一度成为期货市场的热门炒作对象,吸引了大量的投机者和套期保值者参与,市场容量相当大.但由于M506合约上的过度投机和监 ...
- 图像处理计算机基本配置,图形图像工作的电脑配置推荐_DIY攒机硬件郎中-中关村在线...
对于从事图像设计的朋友来说,对电脑的要求与普通人就有些不一样了.如果是照片.3D动画.CAD设计.3DS渲染等工作,对内存.硬盘读写速度.CPU的处理速度会有所要求,但是压力并不大,主流电脑即可胜任, ...
- OSPF的工作过程和ACL匹配规则
一.OSPF--开放式最短路径优先 1.OSPF的数据包 1)Hello包 作用: ①周期发现 ②建立和保活邻居关系 Hello时间--默认10s(针对以太网).30s(其它网络类型) Dead ti ...
最新文章
- java中调用python
- linux c 内核 warning: the frame size of 1040 bytes is larger than 1024 bytes
- McAfee ENS
- 想拥有最新的微软嵌入式技术 就赶快加入微软嵌入式专家社区吧!
- JZOJ 5625. 【NOI2018模拟4.3】Max
- 《数据库SQL实战》查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
- SAP CRM PPR调试截图,头都搞大了,希望这问题这辈子只遇到这次
- 数字化赋能智能生产,一套数据决策分析体系,完美解决生产管理
- HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】
- 1-算法-hanoi汉诺塔问题- 递归
- RandomAccess接口
- latex插入图像、表格、其他latex脚本时的路径设置
- 02.规划过程组表格-沟通管理计划
- SVN分支创建,合并,多分支并行
- 一种传统发酵彝药有效抑制新冠病毒的复制体外研究
- npp++常用的匹配正则表达式
- 【EI稳定检索】第二届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2022)
- wps word文字样式管理
- Java多线程游戏实例分享2-雷火(手把手教你做个超炫酷的星际争霸)
- Docker_学习笔记