【问题标题】:Extract a patch from an image given patch center and patch scale从给定补丁中心和补丁比例的图像中提取补丁
【发布时间】:2015-08-12 14:48:23
【问题描述】:

我有一个大小为1200 x 800 的图像。

我想从这张图片中提取一个方形补丁,给定一个补丁中心 500, 450 和一个补丁比例 23%图像尺寸更小。

opencvskimage 或任何库中是否有任何函数允许我在 python 中执行此操作?

【问题讨论】:

  • 是的。这是一个简单而常见的操作,您可以在OpenCVskimagePIL 和纯numpy 中执行此操作。您应该选择您想要使用的库(可能基于其他标准,因为它们都可以做到这一点),尝试使用您选择的任何工具,然后问一个问题,如果您遇到问题(您可能会赢) t)。
  • 提示:小尺寸的 23% 为 0.23 * 800.. 矩形左上角为 (center_x - width/2, center_y - height/2)。对于方形补丁宽度 = 高度。
  • 可能是一个简单的问题,但不值得投反对票...

标签: python image opencv image-processing computer-vision


【解决方案1】:

使用 OpenCV python,你可以这样做:

import cv2
import numpy as np

# load the image
image = cv2.imread('path/to/your_image.jpg')

# define some values
patch_center = np.array([500, 450])
patch_scale = 0.23

# calc patch position and extract the patch
smaller_dim = np.min(image.shape[0:2])
patch_size = int(patch_scale * smaller_dim)
patch_x = int(patch_center[0] - patch_size / 2.)
patch_y = int(patch_center[1] - patch_size / 2.)
patch_image = image[patch_x:patch_x+patch_size, patch_y:patch_y+patch_size]

# show image and patch
cv2.imshow('image', image)
cv2.imshow('patch_image', patch_image)
cv2.waitKey()

请注意,这是一步一步完成的,只是为了更容易理解。您可以直接执行其中许多步骤。

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 2021-01-20
    • 2015-05-21
    • 2019-11-11
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2019-10-22
    相关资源
    最近更新 更多