使用’numpy’或’scipy’(我没有使用’OpenCV’)我试图裁剪一个
图像中的区域。
有没有类似于“cropPolygon(image,vertices=[(1,2),(3,4)…])”的东西
numpy
还是SciPy`?
你在用matplotlib吗?我以前采用的一种方法是使用.contains\u points()
方法
的matplotlib.path.path路径
构造一个布尔掩码,然后
用于索引到图像数组中。
例如:
import numpy as np
from matplotlib.path import Path
from scipy.misc import lena
img = lena()
# vertices of the cropping polygon
xc = np.array([219.5, 284.8, 340.8, 363.5, 342.2, 308.8, 236.8, 214.2])
yc = np.array([284.8, 220.8, 203.5, 252.8, 328.8, 386.2, 382.2, 328.8])
xycrop = np.vstack((xc, yc)).T
# xy coordinates for each pixel in the image
nr, nc = img.shape
ygrid, xgrid = np.mgrid[:nr, :nc]
xypix = np.vstack((xgrid.ravel(), ygrid.ravel())).T
# construct a Path from the vertices
pth = Path(xycrop, closed=False)
# test which pixels fall within the path
mask = pth.contains_points(xypix)
# reshape to the same size as the image
mask = mask.reshape(img.shape)
# create a masked array
masked = np.ma.masked_array(img, ~mask)
# if you want to get rid of the blank space above and below the cropped
# region, use the min and max x, y values of the cropping polygon:
xmin, xmax = int(xc.min()), int(np.ceil(xc.max()))
ymin, ymax = int(yc.min()), int(np.ceil(yc.max()))
trimmed = masked[ymin:ymax, xmin:xmax]
Plotting:
from matplotlib import pyplot as plt
fig, ax = plt.subplots(2, 2)
ax[0,0].imshow(img, cmap=plt.cm.gray)
ax[0,0].set_title('original')
ax[0,1].imshow(mask, cmap=plt.cm.gray)
ax[0,1].set_title('mask')
ax[1,0].imshow(masked, cmap=plt.cm.gray)
ax[1,0].set_title('masked original')
ax[1,1].imshow(trimmed, cmap=plt.cm.gray)
ax[1,1].set_title('trimmed original')
plt.show()
问题内容: 假设我有一些宽度x和高度y的图像。我必须将图像的中心部分裁剪为宽裁剪和高裁剪。假设cropx和cropty是正非零整数,并且小于各自的图像大小。对输出图像应用切片的最佳方法是什么? 问题答案: 遵循这些原则- 样品运行-
我试图在一个PDF文件,其中有一个矢量图形的中心,但它有文字和其他标志周围的页面,我不需要。我只需要提取文件的向量部分,到目前为止,我所能做的就是创建一个CropBox,然后将CropBox转换为位图。 这导致只提取页面中心的图形,但缺点是它是位图。一旦我使用cropbox创建了PDF,如果我在窗口中打开它,它显示了我所需要的,但是当我将其导入CorelDraw或Adobe Illustrator
我试图在从图库中选择图像后使用intent来裁剪图像。以下是我的代码片段 在这里,我使用PICK_IMAGE_REQUEST意图句柄调用上面的代码段 由于我在裁剪后使用了相同的意图,即PICK_IMAGE_REQUEST,可能会出现什么问题
问题内容: 我有这个HTML: 使用此CSS: 我正在应用的背景图像是200x100像素,但我只想显示200x50像素的背景图像的裁剪部分。 似乎不是正确的CSS属性。我该怎么用呢? 不应使用,因为我在Sprite上下文中使用了上述CSS,在该Sprite上下文中,我要显示的图像部分小于定义CSS的元素。 问题答案: 您可以将图形放置在具有其自身尺寸上下文的伪元素中: 浏览器支持很好,但是如果需要
我有一个小问题,我正在努力寻找一个解决办法。长话短说,我必须用itext从pdf中删除每个页面的顶部。我用成功地做到了这一点,但问题是,这会通过删除顶部使页面变小。 有人能帮我实现这一点,使页面大小保持不变。我的想法是用一个白色矩形覆盖顶部页面,但经过多次尝试,我没有做到这一点。 这是我用来裁剪页面的当前代码。
问题内容: 下面的代码可以很好地裁剪图像,这是我想要的,但是对于较大的图像,它也可以正常工作。有什么办法可以缩小图像吗? 想法是,在裁剪之前,我将能够使每个图像的大小大致相同,以便每次都能获得良好的效果 代码是 问题答案: 如果要生成缩略图,则必须首先使用调整图像大小。您必须调整图像的大小,以使图像较小侧的尺寸等于拇指的相应侧。 例如,如果源图像为1280x800px,拇指为200x150px,则