最佳答案
迂腐地说,除了两侧的条纹之外,您不能删除图像的任何部分,从而减少其宽度或高度。对于看起来像“移除角部分”的内容,您可以在该角部分上绘制一个背景色的三角形。在这里,假设您想要的背景颜色是白色:
import cv2
import numpy
img = cv2.imread("zebra.jpg")
triangle = numpy.array([[300, 0], [399, 0], [399, 100]])
color = [255, 255, 255] #white
cv2.fillConvexPoly(img, triangle, color)
cv2.imwrite("with_triangle.jpg", img)
出于某些目的(混合、插入背景未知的网页等),您可能需要使用支持 alpha 透明度的图像格式(在您的示例中,您使用的是 jpeg,但它不支持)并将 Alpha channel 设置为零:
import cv2
import numpy
img = cv2.imread("zebra.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA) #convert to 4-channel image
triangle = numpy.array([[300, 0], [399, 0], [399, 100]])
color = [255, 255, 255, 0] #white with zero alpha
cv2.fillConvexPoly(img, triangle, color)
cv2.imwrite("with_triangle.png", img) #save to PNG for transparency support
关于python - 删除图像的上角部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37739073/