pythonopencv图片粘贴_OpenCV Python将多边形从一个图像复制到另一个图像
时间: 2024-02-24 20:00:42 浏览: 130
您好!要将一个图像中的多边形复制到另一个图像,可以使用以下步骤:
1. 使用 OpenCV 读取源图像和目标图像。
```python
import cv2
src_img = cv2.imread('source_image.jpg')
dst_img = cv2.imread('destination_image.jpg')
```
2. 使用 OpenCV 的 `cv2.fillPoly()` 函数在源图像中绘制多边形。
```python
import numpy as np
# 定义多边形顶点坐标
pts = np.array([[100, 100], [200, 50], [300, 150], [200, 200]], np.int32)
# 在源图像中绘制多边形
cv2.fillPoly(src_img, [pts], (255, 255, 255))
```
3. 使用 OpenCV 的 `cv2.bitwise_and()` 函数将源图像中的多边形与目标图像进行逐像素的“与”操作,得到重叠区域。
```python
# 将源图像中的多边形与目标图像进行“与”操作
mask = cv2.bitwise_and(src_img, dst_img)
```
4. 使用 OpenCV 的 `cv2.addWeighted()` 函数将重叠区域叠加到目标图像上。
```python
# 将重叠区域叠加到目标图像上
result = cv2.addWeighted(mask, 1, dst_img, 1, 0)
```
完整代码如下:
```python
import cv2
import numpy as np
# 读取源图像和目标图像
src_img = cv2.imread('source_image.jpg')
dst_img = cv2.imread('destination_image.jpg')
# 定义多边形顶点坐标
pts = np.array([[100, 100], [200, 50], [300, 150], [200, 200]], np.int32)
# 在源图像中绘制多边形
cv2.fillPoly(src_img, [pts], (255, 255, 255))
# 将源图像中的多边形与目标图像进行“与”操作
mask = cv2.bitwise_and(src_img, dst_img)
# 将重叠区域叠加到目标图像上
result = cv2.addWeighted(mask, 1, dst_img, 1, 0)
# 显示结果
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:在使用 `cv2.fillPoly()` 函数绘制多边形时,需要确保多边形的顶点坐标顺序是按照顺时针或逆时针排列的,否则可能会出现意想不到的结果。
阅读全文