从给定补丁中心和补丁比例的图像中提取补丁

Vei*_*pse 5 python opencv image image-processing computer-vision

我有一个 size 的图像1200 x 800

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

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

Ber*_*iel 5

使用 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()
Run Code Online (Sandbox Code Playgroud)

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