python获取图片某像素点位置_如何在python中获取图像中指定区域内的所有像素坐标?...

假设是矩形,可以使用^{}为左上角和右下角之间的点生成坐标矩阵。在X, Y = np.mgrid[xmin:xmax, ymin:ymax]

并用

^{pr2}$

编辑:任意形状

正如马克·塞切尔指出的,你的问题中没有一个是关于矩形的。在

如果要列出任意路径中的所有点,不一定是4个顶点,可以使用contains_points()from{}^{}。在import numpy as np

import matplotlib.pyplot as plt

from matplotlib.path import Path

import skimage.data

# path vertex coordinates

vertices = np.asarray([(100, 100),

(300, 80),

(350, 200),

( 60, 150)])

# create dummy image

img = skimage.data.chelsea()

# from vertices to a matplotlib path

path = Path(vertices)

xmin, ymin, xmax, ymax = np.asarray(path.get_extents(), dtype=int).ravel()

# create a mesh grid for the whole image, you could also limit the

# grid to the extents above, I'm creating a full grid for the plot below

x, y = np.mgrid[:img.shape[1], :img.shape[0]]

# mesh grid to a list of points

points = np.vstack((x.ravel(), y.ravel())).T

# select points included in the path

mask = path.contains_points(points)

path_points = points[np.where(mask)]

# reshape mask for display

img_mask = mask.reshape(x.shape).T

# now lets plot something to convince ourselves everything works

fig, ax = plt.subplots()

# masked image

ax.imshow(img * img_mask[..., None])

# a random sample from path_points

idx = np.random.choice(np.arange(path_points.shape[0]), 200)

ax.scatter(path_points[idx, 0], path_points[idx, 1], alpha=0.3, color='cyan')

iRNKY.png