python - 删除图像的上角部分

标签 python image opencv image-processing

我正在使用 OpenCV 和 Python。

我想删除图像的上角部分。

例如,我有一个最初是这样的图像: enter image description here

然后,我想删除上面的三角形部分。

enter image description here

除了“硬编码”之外还有什么方法吗?

最佳答案

迂腐地说,除了两侧的条纹之外,您不能删除图像的任何部分,从而减少其宽度或高度。对于看起来像“移除角部分”的内容,您可以在该角部分上绘制一个背景色的三角形。在这里,假设您想要的背景颜色是白色:

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)

Original image

Image with a triangular part "removed"

出于某些目的(混合、插入背景未知的网页等),您可能需要使用支持 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/

相关文章:

c++ - OpenCV FFMPEG RTSP 相机馈送错误

opencv - 如何在原生 C++ 代码中的 android studio 中使用 opencv

mysql - 将图像文件添加到数据库表

python - 在 Raspberry PI 上构建时出现 OpenCV 错误

python - Ruby:无法在 Windows 7 上安装 libv8:缺少 python 安装

python - Django - 网站主页

使用相机单击照片后,iPhone将照片存储在应用程序中

c - 在 c 中逐个像素地模糊图像 - 特殊情况

python - AWS Step 函数并行状态

python - 组合的组合