IPM
#if 0 void xyp2ipmp(cv::Mat& xyp, cv::Mat& ipmp, cv::Mat& xylim, Size& sz){ //xylimist_[0]-latteral/xylimist_[1]-longitudinal... //ipmp-row0-cols-latteral/ipmp-row1-rows-longitudinal... , xmax = , ymin = , ymax = ; minMaxLoc(xylim.row(), &xmin, &xmax); minMaxLoc(xylim.row(), &ymin, &ymax); double stepcol = (xmax - xmin) / sz.width; double steprow = (ymax - ymin) / sz.height; cv::Mat tempx = cv::Mat::ones(, xyp.cols, CV_64FC1) * xmin; cv::Mat tempy = cv::Mat::ones(, xyp.cols, CV_64FC1) * ymax; ipmp = cv::Mat::zeros(, xyp.cols, CV_64FC1); ipmp.rowRange(, ) = ( xyp.rowRange(, ) - tempx ) / stepcol; ipmp.rowRange(, ) = ( tempy - xyp.rowRange(, ) ) / steprow; ; i < xyp.cols; i++ ) { , i); if( y > ymax){ ipmp.at<, i) = ymax; } } } #endif
#if 0 //IPM-parameters... ;//left ;//top-greater than 320... ;//right... ;//bottom... ] = { left_upper_x, right_down_x, left_upper_x, right_down_x, left_upper_y, left_upper_y, right_down_y, right_down_y }; cv::Mat uvlmt = cv::Mat(, , CV_64FC1, uvlimist); //I2G cv::Mat xylimit; imagetoground(uvlmt, xylimit, h, roll, pitch, camera_param_KK); //G2I cv::Mat uvgd; cv::Size sz = cv::Size(PROB_W, PROB_H);//Size(srcimage.cols, srcimage.rows) groundtoimage(xylimit, uvgd, sz, h, roll, pitch, camera_param_KK ); #endif
#if 1 //IPM... cv::Mat outimage, coord; src2ipm( prob, uvgd, outimage, coord, sz, h, roll, pitch, camera_param_KK ); outimage.convertTo(outimage, CV_8UC1); cv::Mat ipm3 = cv::Mat::zeros(PROB_H, PROB_W, CV_8UC3); cv::cvtColor(outimage, ipm3, COLOR_GRAY2BGR); // //cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1); cv::Mat uvp = cv::Mat::zeros(, probp.size(), CV_64FC1);//data-type... ; i <probp.size(); i++ ) { uvp.at<, i) = probp[i].x;//cols-width. uvp.at<, i) = probp[i].y;//rows-height. //std::cout << uvp.at<double>(0, i) << "-----" << probp[i].x <<std::endl; //std::cout << uvp.at<double>(1, i) << "-----" << probp[i].y <<std::endl; } cv::Mat ipmps, xyp; //std::cout << "uvp:" << uvp << std::endl; imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK); xyp2ipmp(xyp, ipmps, xylimit, sz); ipmps.convertTo(ipmps, CV_32SC1); ; i <probp.size(); i++ ) { cv::Point ipmp; ipmp.x = ipmps.at<, i); ipmp.y = ipmps.at<, i); )//-barrier { cv::circle(ipm3, ipmp, , cv::Scalar(, , ), -); // //cv::putText(orig, std::to_string(i), pt, CV_FONT_NORMAL, 0.1, cv::Scalar(255, 255, 255)); } )//-undifined { cv::circle(ipm3, ipmp, , cv::Scalar(, , ), -); // //cv::putText(orig, std::to_string(i), pt, CV_FONT_NORMAL, 0.1, cv::Scalar(255, 255, 255)); } } cv::imshow("ipmp", ipm3); cv::waitKey();//unit-ms. sprintf(output_path,"./ipmp/00000%05d.png",cnt); cv::imwrite(output_path, ipm3); #endif
end...
IPM的更多相关文章
- IPM简介
1.IPM包含3个函数. image2ground:将图像中的像素点(u, v)对应到地平面上(Z=1)IPM的像素点(x, y): ground2image:将IPM中的像素点(x, y)基于IPM ...
- 【计算机视觉基础】IPM
IPM code #if 0 void xyp2ipmp(cv::Mat& xyp, cv::Mat& ipmp, cv::Mat& xylim, Size& sz){ ...
- 求n个数中前k个数,按之前的顺序输出(HK IPM)
For smaller k: #include <cstdio> #include <cstdlib> #include <cstring> #include &l ...
- IPM的修炼之路
总结了一下最近一年半来看到的产品经理方面的素养资料. 产品经理: 必备素质:市场洞察,抽象概括,创新想象,心思细腻,热爱产品,具备一定的企业家精神等. 是通才:市场,项目,设计,管理,用户,统计,心理 ...
- uva 1599 ideal path(好题)——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGYAAAODCAYAAAD+ZwdMAAAgAElEQVR4nOy9L8/0ypH/Pa8givGiyC
- android 性能分析案例
本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo ...
- android 传感器应用
本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现
- spring-Formatter(格式化器)-validator(验证器)-错误信息定制
项目结构
- Python之路【第二十二篇】CMDB项目
浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...
随机推荐
- 【转】VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
☞ 本文主要介绍软件『VMware Workstation(虚拟机)』的相关内容:VMware网络连接模式—桥接.NAT以及仅主机模式的详细介绍和区别. 其下列版本/分支可以参考本文: 全部版本/分支 ...
- 牛客练习赛7 E 珂朵莉的数列
珂朵莉的数列 思路: 树状数组+高精度 离散化不知道哪里写错了,一直wa,最后用二分写的离散化 哪位路过大神可以帮我看看原来的那个离散化错在哪里啊 通过代码: import java.math.Big ...
- 二分检索函数lower_bound()和upper_bound()
二分检索函数lower_bound()和upper_bound() 一.说明 头文件:<algorithm> 二分检索函数lower_bound()和upper_bound() lower ...
- freemarker中对null值问题的处理
1. freemarker不支持null. 如果值为null会报错. 2.当值为null的处理 1)过滤不显示 Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串 if和”?? ...
- codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)
题意:求使pi(n)*q<=rub(n)*p成立的最大的n. 先收集所有的质数和回文数.质数好搜集.回文数奇回文就0-9的数字,然后在头尾添加一个数.在x前后加a,就是x*10+a+a*pow( ...
- Coconuts, Revisited(递推+枚举+模拟)
Description The short story titled Coconuts, by Ben Ames Williams, appeared in the Saturday Evening ...
- Superset
Superset是一款可自助.可交互,可视化非常不错的产品 Superset is a data exploration platform designed to be visual, intuiti ...
- app.jsNodejs启动测试服务
'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...
- PHP:第一章——PHP中的数组运算符和类运算符
数组运算符: $a+$b;//$a和$b的联合 $a == $b;//比较$a与$b的值相同为true; $a === $b;//如果$a与$b的值与顺讯完全相同为true; $a !=$b;//如果 ...
- POJ 1062 最短路Dijstra
汉语题... 题意正如你看到的酱... 看的解题报告.思路大概是把每个点看做最高等级.然后枚举所有当前可以访问的点.进行dijstra算法.找到此时到目标点最短路.枚举完之后找到最小的点就可以了. P ...