【问题标题】:Numpy salt and pepper image on color region?彩色区域上的 Numpy 盐和胡椒图像?
【发布时间】:2018-08-31 09:32:23
【问题描述】:

我有大量如下所示的图片:

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

问题

如何使用 Numpy 做到这一点?

【问题讨论】:

  • 你有什么问题 - 确定圆形区域?还是它的形状/位置是恒定的?
  • 以上所有。如何添加随机、尖锐的噪点(非常暗或非常亮的像素),并确保它们只添加到图像的彩色部分。噪音可以在任何地方添加,但我需要一种方法来覆盖该外边界以确保该区域始终为黑色。

标签: numpy image-processing machine-learning dataset


【解决方案1】:

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

while saltcount < limit:
   rx = random(width)
   ry = random(height)
   c = pixel[ry][rx]
   if (c != 0):
       pixel[ry][rx] = 0xFFFFFF * random(2)
       saltcount++ 

这种方法拒绝了大约 21% 的试模(完美内接圆的黑色面积比),但非常简单。如果你知道圆的参数,只在圆内生成点:

x = cx + r * sqrt(t) * cos(2 * Pi * a)
y = cy + r * sqrt(t) * sin(2 * Pi * a)

其中cx,cy,r是圆心坐标和半径,ta0..1范围内的随机数

如果需要在图片上找圆,可以制作灰度图或使用r,g,b的任意通道,使用霍夫变换发现圆参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 2023-04-05
    • 1970-01-01
    • 2014-05-21
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多