Python 圆形裁剪
在图像处理中,裁剪是一个常见的操作,可以将图片从原始尺寸中剪裁出我们需要的区域。而在一些特殊情况下,我们可能需要将图片裁剪成圆形的形状。本文将介绍如何使用 Python 对图片进行圆形裁剪,以及实际代码示例。
圆形裁剪原理
要对图片进行圆形裁剪,我们需要先创建一个和原始图片大小相同的圆形 mask,然后将这个 mask 应用到原始图片上,只保留 mask 区域内的像素点,从而实现圆形裁剪的效果。
实现步骤
- 读取原始图片
- 创建圆形 mask
- 将 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 应用到原始图片上,实现了圆形裁剪的效果。这种方法可以很好地应用于需要圆形裁剪的场景,如头像裁剪等。希望本文对你有所帮助,谢谢阅读!