OpenCV Python中的模糊方法类型?
我正在创建一个深度学习模型,用于检测图像中的模糊对象 为此,我需要创建一个模糊对象的数据集。我想用OpenCV自动完成它 所以我想应用所有的方法来创建一个好的数据集。到目前为止,我只找到了以下方法来模糊Python中的某些内容 我也可以使用OpenCV以外的其他库,如果您有建议的话OpenCV Python中的模糊方法类型?,python,opencv,Python,Opencv,我正在创建一个深度学习模型,用于检测图像中的模糊对象 为此,我需要创建一个模糊对象的数据集。我想用OpenCV自动完成它 所以我想应用所有的方法来创建一个好的数据集。到目前为止,我只找到了以下方法来模糊Python中的某些内容 我也可以使用OpenCV以外的其他库,如果您有建议的话 def blurface(img): num = random.randint(1,4) if num == 1: img = cv2.GaussianBlur(img, (rand
def blurface(img):
num = random.randint(1,4)
if num == 1:
img = cv2.GaussianBlur(img, (random.randrange(111, 190+1, 2),random.randrange(111, 190+1, 2)), random.randrange(111, 190+1, 2))
if num == 2:
img = cv2.medianBlur(img, random.randrange(71, 277+1, 2))
if num == 3:
img = cv2.blur(img,(random.randint(90,190),random.randint(90,190)))
if num == 4:
imgshape = img.shape
img = cv2.resize(img,(random.randint(4,9),random.randint(4,9)))
img = cv2.resize(img,(int(imgshape[1]),int(imgshape[0])),interpolation=cv2.INTER_NEAREST)
return img
目前,我使用4种方法来模糊
1.)高斯模糊、中间模糊、模糊、减小大小和增大大小模糊
另外,如何在不同的形状中进行模糊?圆形、椭圆形、随机形状等?您应该使用拉普拉斯方差进行模糊检测,如下所述:
它比应用深度学习更快、更容易。首先,如何使用深度学习检测模糊区域
import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread('image.jpg')
h, w, c = img.shape
plt.imshow(img)
plt.show()
c_mask = np.zeros((h,w), np.uint8)
cv2.circle(c_mask,(w//2,h//2),100,1,thickness=-1)
mask = cv2.bitwise_and(img, img, mask=c_mask)
plt.imshow(mask)
plt.show()
img_mask = img - mask
plt.imshow(img_mask)
plt.show()
blur = cv2.blur(img,(17, 17))
plt.imshow(blur)
plt.show()
mask2 = cv2.bitwise_and(blur, blur, mask=c_mask)
plt.imshow(mask2)
plt.show()
final_img = img_mask + mask2
print(np.max(final_img))
plt.imshow(final_img)
plt.show()
可以更改几何对象(遮罩)以获得更多形状
但它无法检测模糊的位置,是吗?大概我对数学一窍不通……谢谢,我也会试试这个,只有在脸部模糊的情况下。@Rahul将你的图像分割成多个部分,并分别检查每个部分。或者检测人脸并只检查那些区域。我试过这个。工作不太好…很多边缘案例,似乎无法手动修复或不值得,深度学习模型可以工作。但有很多过滤器,人们使用photoshop等…我想创建一个好的数据集。它是一个简单的分类数据集吗?或者你也打算增加本地化?我不在乎本地化。但我想知道,图像是否有意模糊。所以我想,本地化会有所帮助