cv2输出指定多边形区域
时间: 2023-08-05 12:02:02 浏览: 50
要输出指定多边形区域,可以使用OpenCV的mask功能。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread("image.jpg")
# 定义多边形区域的顶点坐标
pts = np.array([[50, 50], [50, 200], [200, 200], [200, 50]], np.int32)
# 创建一个黑色的图像,与输入图像大小相同
mask = np.zeros_like(image)
# 在黑色图像上绘制多边形区域,将其填充为白色
cv2.fillPoly(mask, [pts], (255, 255, 255))
# 将掩膜应用于输入图像,仅显示多边形区域
masked_image = cv2.bitwise_and(image, mask)
# 显示输出图像
cv2.imshow("Output", masked_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,首先读取输入图像。然后,定义了一个多边形区域的顶点坐标。接着,创建了一个大小与输入图像相同的黑色图像,使用`cv2.fillPoly()`函数在黑色图像上绘制多边形区域,并将其填充为白色。最后,使用`cv2.bitwise_and()`函数将掩膜应用于输入图像,仅显示多边形区域,并将结果显示出来。
相关问题
cv2仅输出指定多边形区域 输出图片仅含多边形区域
如果你想要仅输出指定多边形区域,且输出的图片仅包含多边形区域,可以使用以下代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread("image.jpg")
# 定义多边形区域的顶点坐标
pts = np.array([[50, 50], [50, 200], [200, 200], [200, 50]], np.int32)
# 创建一个透明的图像,与输入图像大小相同
mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8)
# 在透明图像上绘制多边形区域,将其设置为白色
cv2.fillPoly(mask, [pts], 255)
# 仅显示多边形区域
output = cv2.bitwise_and(image, image, mask=mask)
# 显示输出图像
cv2.imshow("Output", output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
与之前的代码相比,这个示例中创建的掩膜是一个单通道的灰度图像,而不是RGBA图像。在掩膜上绘制多边形区域时,将其设置为白色。使用`cv2.bitwise_and()`函数时,将其第三个参数`mask`设置为掩膜即可。最终输出的图像仅包含多边形区域。
cv2仅输出指定多边形区域 不显示黑色
如果你想要仅输出指定多边形区域,而不显示黑色背景,可以在生成掩膜时将其设置为透明,而不是白色。以下是示例代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread("image.jpg")
# 定义多边形区域的顶点坐标
pts = np.array([[50, 50], [50, 200], [200, 200], [200, 50]], np.int32)
# 创建一个透明的图像,与输入图像大小相同
mask = np.zeros((image.shape[0], image.shape[1], 4), dtype=np.uint8)
# 在透明图像上绘制多边形区域,将其设置为不透明
cv2.fillPoly(mask, [pts], (255, 255, 255, 255))
# 仅显示多边形区域
masked_image = cv2.bitwise_and(image, mask)
# 显示输出图像
cv2.imshow("Output", masked_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,首先读取输入图像。然后,定义了一个多边形区域的顶点坐标。接着,创建了一个大小与输入图像相同的透明图像,使用`cv2.fillPoly()`函数在透明图像上绘制多边形区域,并将其设置为不透明。最后,使用`cv2.bitwise_and()`函数将掩膜应用于输入图像,仅显示多边形区域,并将结果显示出来。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)