rod*_*ira -1 numpy machine-learning image-processing dataset
我有大量的图像,如下所示:
我想为这些图像添加随机的黑白像素(盐和胡椒),但仅限于彩色圆圈内.圆圈周围的黑色边框必须保留[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++
Run Code Online (Sandbox Code Playgroud)
这种方法拒绝大约21%的试用(完美内切圆的黑色面积比),但非常简单.如果您知道圆参数,则仅在圆内生成点:
x = cx + r * sqrt(t) * cos(2 * Pi * a)
y = cy + r * sqrt(t) * sin(2 * Pi * a)
Run Code Online (Sandbox Code Playgroud)
其中cx,cy,r
是圆的中心坐标和半径,t
以及a
在范围内的随机量0..1
如果你需要在图片上找到圆圈,你可以制作灰度图片或使用r,g,b的任何通道,并使用Hough变换来发现圆形参数.