【问题标题】:Python - NumPy Array Logical XOR operation byte wisePython - NumPy 数组逻辑 XOR 操作逐字节
【发布时间】:2016-09-14 05:09:56
【问题描述】:

我正在通过 Pillow 读取图像并将其转换为 numpy 数组。

        A = numpy.asarray(Image.open(
            ImageNameA).convert("L"))
        B = numpy.asarray(Image.open(
            ImageNameB).convert("L"))

print A
[[255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 ..., 
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]]

现在,当我对这 2 个 numpy 数组进行任何逻辑运算时,我会以 'True' 和 'False' 的形式得到它

Answer = numpy.logical_xor(A,B)

print  numpy.logical_xor(A,C)
[[False False False ..., False False False]
 [False False False ..., False False False]
 [False False False ..., False False False]
 ..., 
 [False False False ..., False False False]
 [False False False ..., False False False]
 [False False False ..., False False False]]

我的图像处理功能无法使用 True、False ... 我如何获得 0、255(以字节为单位)形式的图像

【问题讨论】:

    标签: python numpy pillow


    【解决方案1】:

    从问题标题来看,我想您要使用的函数实际上是numpy.bitwise_xor,它将按照您的预期输出 0-255 范围内的数组。

    logical_xor 将所有大于 1 的数字视为True,将 0 视为False,并始终输出布尔数组(仅 0 和 1)。

    【讨论】:

    • 另请注意,numpy 数组的按位异或的中缀运算符是^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2016-06-30
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    相关资源
    最近更新 更多