用另一个图像替换图像的白色部分

时间:2016-07-19 01:36:56

标签: python opencv

for i in range(25, 665):
  for j in range(55, 690): 
    pixel = background[i,j]
    whitePixel = [255,255,255]
    if np.array_equal(pixel,whitePixel):
      background[i,j] = rightsize[i-25,j-55]

当我执行此代码时,我得到一个像这样丑陋边缘的图像 -

enter image description here

有没有人知道如何解决这个问题并做到正确?我不明白为什么这样做我甚至尝试调整矩形区域,因此它比白色区域大一点,它仍然这样做 -

原始背景图片 -

enter image description here

现在,另一个图像(权利化)只是硬币的图像,我在硬币周围的完美正方形中裁剪,并调整大小以尝试完美地适合围绕该白色圆圈的相同大小的正方形,并替换硬币的白色部分,但由于某种原因,边缘就像这样。我在做这样的双循环之前遇到了同样的问题来替换像素。

1 个答案:

答案 0 :(得分:1)

看起来您的问题来自图像压缩。圆圈的边界不完全是白色。将jpeg图像加载到程序中时会发生这种情况。

你可以做的是threshold你的图像并在这个阈值图像上搜索白色像素。