【发布时间】:2012-02-12 16:16:16
【问题描述】:
我现在正试图在 C++ 中使用 opencv 将两个以上的图像对齐。问题是当我拼接超过2个时,无法加载上一个图像。
例如,imageContainer 现在包含三个图像。
第一张图片:
第二张图片:
第三张图片:
循环的第一次迭代:(结合第一张和第二张图片)
循环的第二次迭代:(结合第一次迭代和第三张图像的结果)
可以看到,在第二次迭代之后,结果图像不包含对象。 (最后一张图左边全黑),
在 main.cpp 中
cv::Mat result = *imageContainer.begin();
for(vector<cv::Mat>::iterator itr = imageContainer.begin(); itr != imageContainer.end(); itr++){
if(itr == imageContainer.begin())
continue;
result = applySURF(result, *itr);
}
在 SURF.cpp 中
cv::Mat applySURF(cv::Mat object, cv::Mat image){
/* More codes here but it won't affect solving the problem */
cv::Mat result;
cv::warpPerspective(image, result, transformationMat, cv::Size(object.cols + image.cols, image.rows));
cv::Mat half(result, cv::Rect(0, 0, image.cols, image.rows));
object.copyTo(half);
imshow("Object", object);
imshow("Result", result);
cvWaitKey(0);
return result;
}
我猜这个问题与感兴趣区域 (ROI) 有关。我该如何解决?
非常感谢。
【问题讨论】:
-
您好,我遇到了山姆问题。你最后是怎么解决的?
-
您好,请问这个问题怎么解决??我面临着类似的问题。需要帮助。
标签: c++ image-processing opencv