gpt4 book ai didi

python - 像素化 ROI 边界框并使用 OpenCV 将其覆盖在原始图像上

转载 作者:行者123 更新时间:2023-12-02 16:08:48 43 4
gpt4 key购买 nike

让我们直截了当。

我有一个私有(private)项目,在 open-cv 中使用边界框来阻止或像素化图像,类似于审查图像,灵感来自这篇论文:

https://www.researchgate.net/publication/325746502_Seamless_Nudity_Censorship_an_Image-to-Image_Translation_Approach_based_on_Adversarial_Training

我已经找到了使用Keras对审查区域进行分类的方法,但仍然不知道如何使用边界框对分类区域进行像素化,并将其叠加到原始图像上。感谢任何帮助。

这是我想要执行的流程示例:

enter image description here

最佳答案

一个简单的方法是使用 Numpy 切片提取 ROI,像素化,然后将其粘贴回原始图像。我将使用 how to pixelate image using OpenCV in Python? 中的像素化技术.这是一个简单的例子:


要提取的输入图像和ROI

提取的投资返回率

像素化投资返回率

结果

代码

import cv2

def pixelate(image):
# Get input size
height, width, _ = image.shape

# Desired "pixelated" size
h, w = (16, 16)

# Resize image to "pixelated" size
temp = cv2.resize(image, (w, h), interpolation=cv2.INTER_LINEAR)

# Initialize output image
return cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST)

# Load image
image = cv2.imread('1.png')

# ROI bounding box coordinates
x,y,w,h = 122,98,283,240

# Extract ROI
ROI = image[y:y+h, x:x+w]

# Pixelate ROI
pixelated_ROI = pixelate(ROI)

# Paste pixelated ROI back into original image
image[y:y+h, x:x+w] = pixelated_ROI

cv2.imshow('pixelated_ROI', pixelated_ROI)
cv2.imshow('image', image)
cv2.waitKey()

注意:ROI边界框坐标是使用how to get ROI Bounding Box Coordinates without Guess & Check中的脚本找到的.对于您的情况,我假设您已经拥有通过 cv2.boundingRect 获得的 x,y,w,h 边界框坐标。

关于python - 像素化 ROI 边界框并使用 OpenCV 将其覆盖在原始图像上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59780034/

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