image - OpenCV:使用OpenCV合并两个图像

标签 image image-processing opencv opencvdotnet

使Box 2的大小等于Box 1的最佳方法是什么,以便CvCopy();可以应用:

编辑:

也许我没有正确地提出问题。所以我重新措辞。给定一个图像2(如上所示),我想按如下所示进行转换:


基本上,我必须在其上添加黑色边框。调整大小将不起作用,因为我的图像会变形。换句话说,我必须在图像周围的定义厚度中添加零。

另外,尽管这些图像(框)显示为空,但其中可能包含一些对象,而我没有显示。

最佳答案

您可以使用copyMakeBorder函数来执行此操作。我不知道dotnet,下面是python中的示例代码。还可以访问上述功能的文档:DOCS

首先加载两个图像。 imb是大图,而ims是小图。

import cv2
import numpy as np

imb = cv2.imread('messi4.jpg')
ims = cv2.imread('template.jpg')

现在,让rb,cb为大图像的行数和列数,同样为小图像的rs,cs
rb,cb = imb.shape[:2]
rs,cs = ims.shape[:2]

最后,要使用copyMakeBorder函数,您需要在顶部,底部,左侧和右侧添加行数和列数。因此,我们需要找到它们。
top = (rb-rs)/2
bottom = rb - rs - top
left = (cb-cs)/2
right = cb - cs - left

最后应用该功能。
res = cv2.copyMakeBorder(ims,top,bottom,left,right,cv2.BORDER_CONSTANT)

现在查看结果:

原始小图片:

修改后的新图像:

它的大小与我的大图片相同(此处未显示,认为没有必要,如果您愿意,我可以上传)

关于image - OpenCV:使用OpenCV合并两个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155333/

相关文章:

javascript - <img> 图像的 HTML Javascript getElementById 返回 null

javascript - 如何向自定义 HTML 键 [img]/path/to/image.jpg[/img] 添加属性?

matlab - 如何消除视频中剧烈的亮度变化?

java - OpenCV 3.0 svm 总是预测 0 (java)

python - UnsatisfiableError:pyqt和py-opencv发生冲突

css - 图片 :content css issue in IE

javascript - 在javascript中向图像添加标记?

opencv - 类似于鹰眼的3D三角剖分

python - 使用 Python 和 OpenCV 改善图像偏移

opencv - EmguCV 3.1 Capture.QueryFrame间歇性返回错误