微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python图像怎么截取一个圆?Python如何截取圆形图像

在python之中有不少的第三方库和模块能够来完成图像截取操作,而这些操作大部分都是从图像上选取矩阵区域然后将这个范围的图像截取下来。但是除了矩形之外,圆形这种经常用作缩略图和账户头像的图形也是需要从图像上截取下来的,下文介绍的就是python截取圆形图像的教程。

1.python之中截取圆形区域图像所需要使用到的第三方库就是opencv(),虽然在这个库中没有直接提供方法能够来指定圆形范围,但是它可以通过创建圆形蒙版再将其设置为透明的截取从而得到圆形区域图像。而首先需要做的事情就是导入第三方库并且读取图片,示例如下:

import cv2
import numpy as np
img = cv2.imread('lena.jpg')

2.图像读取进来之后就是返回了一个对象,接下来需要使用切片方法获取到这个对象的长和宽,然后分别除以二来得到整个图像的中心点,之后需要去使用两个变量定义圆形的半径。这两个半径的值需要是一大一小,这是为了之后计算范围,代码如下所示:

hh, ww = img.shape[:2]
radius1 = 25
radius2 = 75
xc = hh // 2
yc = ww // 2

3.那么这一步也就是最后一步了,需要创建蒙版然后使用两个蒙版相减再获取到其中差距范围内的图像。获取到该图像之后才关键的一步,因为此时获取到的图像还是用白色来填充的底色。所以需要将其使用alpha通道模式保存并将透明度设置为最大从而使蒙版遮罩失效,最后保存起来即可,代码如下所示:

mask1 = np.zeros_like(img)
mask1 = cv2.circle(mask1, (xc,yc), radius1, (255,255,255), -1)
mask2 = np.zeros_like(img)
mask2 = cv2.circle(mask2, radius2, -1)
mask = cv2.subtract(mask2, mask1)
result = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
result[:, :, 3] = mask[:,:,0]
cv2.imwrite('lens.png', result)

以上就是关于“Python图像怎么截取一个圆?Python如何截取圆形图像”的全部内容了,希望对你有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐