【问题标题】:crop image and paste in same coords as from source裁剪图像并粘贴到与源相同的坐标中
【发布时间】:2021-06-02 02:42:33
【问题描述】:

我能够检测到人并能够找到人的坐标,然后我可以裁剪图像。但我想保留此人并删除所有背景/使其成为白色背景/复制裁剪的图像并将其粘贴到另一个文件中,其坐标与从源获得的坐标相同。

这是我需要的图片:

【问题讨论】:

  • 好的,您实际上是在使用 OpenCV 还是 PIL,因为您已经标记了两者。到目前为止你有什么代码?你想要的坐标是什么——它们是什么格式的?
  • 我正在使用对象检测并检测人及其边界矩形坐标,并从该坐标中使用 PIL 并裁剪图像。我的目标是裁剪人物并将其放置在相同的坐标中,而背景中没有任何东西。
  • 那么,您使用的是 OpenCV 和 PIL 吗?如果是这样,你为什么同时使用两者?你有什么格式的裁剪坐标,上面的图片是什么格式的?
  • 我正在使用 opencv 进行对象检测,我正在获取 (x, y, z, w) 坐标,用于裁剪图像。但我想将相同的图像粘贴到与父图片相同坐标的白色背景中。

标签: python python-3.x opencv python-imaging-library object-detection


【解决方案1】:
  1. 使用输入图像的高度和宽度制作白色背景图像。
  2. 根据坐标将裁剪后的图片放入白色背景图片中。

import cv2
import numpy as np

image = cv2.imread('img.png')
person = image[110:532, 250:516] # persons coordinates

h, w, c = image.shape

white_background = np.zeros([h, w, 3])
for y in range(h):
    for x in range(w):
        white_background[y,x] = [255,255,255] # fill with white pixels

white_background[110:532, 250:516] = person  # paste the image into background image

cv2.imwrite('resized_centered.png', white_background)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2015-08-18
    • 2016-12-09
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多