Python 圆形裁剪

在图像处理中,裁剪是一个常见的操作,可以将图片从原始尺寸中剪裁出我们需要的区域。而在一些特殊情况下,我们可能需要将图片裁剪成圆形的形状。本文将介绍如何使用 Python 对图片进行圆形裁剪,以及实际代码示例。

圆形裁剪原理

要对图片进行圆形裁剪,我们需要先创建一个和原始图片大小相同的圆形 mask,然后将这个 mask 应用到原始图片上,只保留 mask 区域内的像素点,从而实现圆形裁剪的效果。

实现步骤

  1. 读取原始图片
  2. 创建圆形 mask
  3. 将 mask 应用到原始图片上

代码示例

import cv2
import numpy as np

# 读取原始图片
img = cv2.imread('test.jpg')

# 获取图片宽度和高度
height, width = img.shape[:2]

# 创建一个和原始图片相同大小的 mask
mask = np.zeros((height, width), dtype=np.uint8)
cv2.circle(mask, (int(width/2), int(height/2)), int(min(width, height)/2), 255, -1)

# 将 mask 应用到原始图片上
result = cv2.bitwise_and(img, img, mask=mask)

# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Circular Cropped Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果

运行以上代码,我们可以得到原始图片和圆形裁剪后的图片。圆形裁剪后的图片只保留了圆形区域内的像素点,其他区域都变成了黑色。

总结

本文介绍了如何使用 Python 对图片进行圆形裁剪,通过创建一个和原始图片大小相同的 mask,然后将 mask 应用到原始图片上,实现了圆形裁剪的效果。这种方法可以很好地应用于需要圆形裁剪的场景,如头像裁剪等。希望本文对你有所帮助,谢谢阅读!