颜色区域上的Numpy盐和胡椒图像?

颜色区域上的Numpy盐和胡椒图像?,numpy,image-processing,machine-learning,dataset,Numpy,Image Processing,Machine Learning,Dataset,我有大量的图像,如下所示: 我想给这些图像添加随机的黑白像素(盐和胡椒),但只在彩色圆圈内。圆圈周围的黑色边框必须保持[0,0,0]。其目的是扩充机器学习数据集 问题: 如何使用Numpy实现这一点?最简单的方法是在给定的矩形中生成随机坐标,并检查此位置的像素是否为黑色。如果不是,则将其颜色更改为随机选择的黑色和白色。伪代码: while saltcount < limit: rx = random(width) ry = random(height) c = pixe

我有大量的图像,如下所示:

我想给这些图像添加随机的黑白像素(盐和胡椒),但只在彩色圆圈内。圆圈周围的黑色边框必须保持
[0,0,0]
。其目的是扩充机器学习数据集

问题:
如何使用Numpy实现这一点?

最简单的方法是在给定的矩形中生成随机坐标,并检查此位置的像素是否为黑色。如果不是,则将其颜色更改为随机选择的黑色和白色。伪代码:

while saltcount < limit:
   rx = random(width)
   ry = random(height)
   c = pixel[ry][rx]
   if (c != 0):
       pixel[ry][rx] = 0xFFFFFF * random(2)
       saltcount++ 
其中,
cx、cy、r
是圆心坐标和半径,
t
a
是范围
0..1


如果您需要在图片上找到圆,您可以制作灰度图片或使用r、g、b的任何通道,并使用Hough变换来发现圆参数。

您有什么问题-确定圆区域?或者它的形状/位置是恒定的。如何添加随机、尖锐的噪声(非常暗或非常亮的像素),并确保它们只添加到图像的有色部分。噪音可以在任何地方增加,但我需要一种方法来覆盖外部边界,以确保该区域始终是黑色的。
x = cx + r * sqrt(t) * cos(2 * Pi * a)
y = cy + r * sqrt(t) * sin(2 * Pi * a)