gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:54:08 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com