使用OpenCV for Python扩展图像的意外结果

时间:2018-03-24 02:41:06

标签: python-3.x computer-vision

我试图进行一些形态转换而不是得到我期待的结果。

目标是扩大alpha地图并使其变灰。然而,它似乎破坏了细节,而不是扩展它们。我的扩张也垂直倾斜。

我是否误解了扩张的作用?我的代码和结果如下。

    for layer in img:
    rand_dilate_kernel = random.randrange(2, 8)
    rand_iters = random.randrange(10, 50)
    dilate_kernel = np.ones((rand_dilate_kernel, rand_dilate_kernel), np.uint8)
    layer_pre_di = layer
    for i in np.nditer(layer_pre_di, op_flags=['readwrite']):
        if i == 0:
            i[...] = 0
        else:
            i[...] = 255

    dilation = cv2.dilate(layer_pre_di, dilate_kernel, iterations=rand_iters)

    for i in np.nditer(dilation, op_flags=['readwrite']):
        if i == 0:
            i[...] = 0
        elif i == 255:
            i[...] = 127
        else:
            i[...] = 127

输入: alpha

输出: result

1 个答案:

答案 0 :(得分:0)

我的问题是我的内核形状(2,2,1),但我的图层形状(1,320,320)。我解决了这个问题,重新整理了我的数组以进行转换,然后重新塑造它们。