我想匹配立体图像中的特征点.我已经用不同的算法找到并提取了特征点,现在我需要一个很好的匹配.在这种情况下,我使用FAST算法进行检测和提取以及BruteForceMatcher匹配特征点.
匹配代码:
vector< vector<DMatch> > matches;
//using either FLANN or BruteForce
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create(algorithmName);
matcher->knnMatch( descriptors_1, descriptors_2, matches, 1 );
//just some temporarily code to have the right data structure
vector< DMatch > good_matches2;
good_matches2.reserve(matches.size());
for (size_t i = 0; i < matches.size(); ++i)
{
good_matches2.push_back(matches[i][0]);
}
Run Code Online (Sandbox Code Playgroud)
因为有很多错误的匹配我计算了最小和最大距离并删除了所有太糟糕的匹配:
//calculation of max and min distances between keypoints
double max_dist = 0; double min_dist = 100;
for( int i = 0; i < descriptors_1.rows; i++ )
{
double dist …Run Code Online (Sandbox Code Playgroud) 我的问题:我无法访问视图中的会话数据,我在渲染视图之前尝试将其保存在控制器中.在我看来,存储会话数据时出错.(我必须在创建会话数据后修改会话数据,而不仅仅是在单个操作中.)
ProcessController.php
public function actionNew() {
$formhash = md5(time());
$hashList = array();
$hashList[$formhash]['processingNumber'] = '';
//fill with empty model
$hashList[$formhash]['model'] = $this->loadModel();
//store hashList in session
Yii::app()->session['hashList'] = $hashList;
$this->render('/process', array('hashValue => $formHash));
Run Code Online (Sandbox Code Playgroud)
}
现在在视图中我需要会话中的数据向用户显示它们.但是当转储hashList时,它只会转储"null"(也许是因为控制器中的保存不顺利).
process.php
<?php
$form = this->beginWidget('CActiveForm', array(
'id' => 'process_form',
//several other things...
));
//Output: null
CVarDumper::dump(Yii::app()->session['hashList'],10,true);
?>
Run Code Online (Sandbox Code Playgroud)
我尝试使用$ _SESSION而不是Yii :: app() - > session,这使我可以访问视图中的数据.但是当在Controller中处理其他操作时,$ _SESSION变量是未定义的.
有什么建议?
谢谢.