我正在尝试缝制大量重叠程度很高的图像,例如ExampleImage1和ExampleImage2。
首先,我要草皮的一维线。像这样的东西:Result。这是原始结果的屏幕截图,原始图片超过2MB。因此无法上传。 这是通过将300张图像分解为几组并进行拼接来实现的。像本示例一样,但具有更大的层次结构,但比例更大-针脚1.jpg中的0.jpg,1.jpg,2.jpg图像,针脚2.jpg中的2,3,4图像以及后来将针脚1.jpg和针脚2.jpg拼接在一起< / p>
现在,我希望通过缝合图像来获得相同的结果,例如:0.jpg + 1.jpg = result.jpg,result.jpg + 2.jpg = result.jpg .....等。>
我正在使用关注区域的概念来确保重叠区域始终都超过20%。代码如下所示。该代码是for循环的主体。它仅说明了算法的核心部分,而不是确切的代码。
运行此命令后,我得到了一个伪像,例如:Result2。这看起来是因为,由于使用了关注区域概念,因此未在整个图像中观察到缝合管线的后处理。
有人可以告诉我如何解决这个问题吗?
还可以在opencv缝合管线中查看检测到的功能吗?
for (int j = 4; j < 100; j = j + 1) {
image2 = imread("result.jpg"); // result of stitching 0.jpg, 1.jpg,2.jpg and 3.jpg
image1 = imread(j + ".jpg");
Rect rect2 = new Rect(0,0, (int)(image1.cols()*0.5),image2.rows());
Rect rect1 = new Rect(0,0,(int)(image1.cols()*0.5),image1.rows());
imgs.resize(imgs.size() + 1);
imgs.put(imgs.size() - 1, image2);
Roi.push_back(new RectVector(rect2));
imgs.resize(imgs.size() + 1);
imgs.put(imgs.size() - 1, image1);
Roi.push_back(new RectVector(rect1));
int status = stitcher.stitch(imgs, Roi, pano);
}