gpt4 book ai didi

python - 使用 OpenCV 和 Python 在多边形上应用高斯模糊

转载 作者:行者123 更新时间:2023-12-02 15:50:38 25 4
gpt4 key购买 nike

我对 OpenCV 和 Python 很陌生。我需要在使用 cv2.findContours 获得的轮廓上应用高斯模糊。我已经成功地应用了高斯模糊,但仅限于矩形。我找不到任何示例说明如何将其应用于随机形状的轮廓。

我使用的是 OpenCV 3.1.0 版。

谢谢!

最佳答案

我遇到了同样的问题,这是对我实际有用的解决方案(它适用于任何轮廓):

import cv2 as cv
import numpy as np

在这里,我定义了示例多边形 ROI 的顶点列表:
roi_corners = np.array([[(180,300),(120,540),(110,480),(160,350)]],dtype = np.int32)

阅读原图:
image = cv.imread('image.jpeg')

创建整个图像的模糊副本:
blurred_image = cv.GaussianBlur(image,(43, 43), 30)

为 ROI 创建一个 mask 并用 (255,255,255) 颜色填充 ROI:
mask = np.zeros(image.shape, dtype=np.uint8)
channel_count = image.shape[2]
ignore_mask_color = (255,)*channel_count
cv.fillPoly(mask, roi_corners, ignore_mask_color)

为原始图像中除 ROI 之外的所有地方创建一个掩码,(因此 mask_inverse):
mask_inverse = np.ones(mask.shape).astype(np.uint8)*255 - mask

按以下方式组合所有面具和上面的图像:
final_image = cv.bitwise_and(blurred_image, mask) + cv.bitwise_and(image, mask_inverse)

这是原始图像的示例,其中 ROI 为斜车牌(平行四边形):

original image

以及由此产生的图像:

target polygon (here just a parallelogram) blurred

关于python - 使用 OpenCV 和 Python 在多边形上应用高斯模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41172918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com