使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/