python抠图边缘融合
时间: 2023-08-29 21:09:51 浏览: 251
要实现python抠图边缘融合,可以使用cv2.addWeighted函数。这个函数可以将两个图像按照给定的权重进行融合。具体步骤如下:
1. 首先,需要安装python 2.7,并确保安装了numpy、opencv和matplotlib这几个包。
2. 使用cv2.addWeighted函数来实现图像融合。示例代码如下:
res = cv2.addWeighted(img_apple_resize, 0.5, img_pear_resize, 0.5, 0)
这里的img_apple_resize和img_pear_resize分别是要融合的两个图像,0.5表示两个图像的权重,0表示融合的偏置参数。
3. 完整的python代码如下:
```
import cv2
import numpy as np
# 读取并转换图片格式
opencv = cv2.imread('/home/huangjx/Pictures/boy.jpeg')
hsv = cv2.cvtColor(opencv, cv2.COLOR_RGB2HSV)
# 指定绿色范围
minGreen = np.array([50, 100, 100])
maxGreen = np.array([70, 255, 255])
# 确定绿色范围
mask = cv2.inRange(hsv, minGreen, maxGreen)
# 确定非绿色范围
mask_not = cv2.bitwise_not(mask)
# 通过掩码控制的按位与运算锁定绿色区域
green = cv2.bitwise_and(opencv, opencv, mask=mask)
# 通过掩码控制的按位与运算锁定非绿色区域
green_not = cv2.bitwise_and(opencv, opencv, mask=mask_not)
# 拆分为3通道
b, g, r = cv2.split(green_not)
# 合成四通道
bgra = cv2.merge([b, g, r, mask_not])
# 保存带有透明通道的png图片
cv2.imwrite('/home/huangjx/Pictures/boy.png', bgra)
# 显示图片验证结果
cv2.imshow('opencv', opencv)
cv2.imshow('green', green)
cv2.imshow('green_not', green_not)
cv2.waitKey()
cv2.destroyAllWindows()
```
这样就实现了python抠图边缘融合的效果。在上述代码中,我们先通过掩码将图像中的绿色部分提取出来,再将非绿色部分和绿色部分进行按位与运算,最后将结果合成为带有透明通道的png图片。通过调整权重和参数可以实现不同的融合效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [python编写的opencv示例代码可直接运行OpenCVForPython.py](https://download.csdn.net/download/liluo0815481/10199729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [OpenCV入门 图像的边缘填充与融合](https://blog.csdn.net/qq_42736179/article/details/107869250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Python使用OpenCV绿幕抠图生成带有透明通道的PNG图片](https://blog.csdn.net/my_name_is_learn/article/details/114364699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文