如何正确实现Python中的二进制对称通道?

时间:2018-03-22 15:20:59

标签: python numpy

基本上我想实施BSC。将照片更改为位,其中一些更改并创建新图像。我遇到的问题是我得到了相同的图像。我已经放了一些print()语句来查看error()是否有效,看起来是这样的。这是我的代码:

import numpy as np
import random as rand

# Seed

rand.seed(4)

# Filenames
in_name = 'in_img.png'
out_name = 'out_img.png'

# Into bits
in_bytes = np.fromfile(in_name, dtype="uint8")
in_bits = np.unpackbits(in_bytes)
data = list(in_bits)



# BSC

def error(x):
    p = 0.1
    is_wrong = rand.random() < p
    if is_wrong:
        if x == 1:
            return 0
        else:
            return 1
    else:
        return x


for i in data:
    i = error(i)

# To PNG
out_bits = np.array(data)
out_bytes = np.packbits(out_bits)
out_bytes.tofile(out_name)

1 个答案:

答案 0 :(得分:0)

虽然你的代码中的问题似乎与kazemakase在注释中指出的一样重复,但你的代码首先不应该使用这样的循环和Python #nav{ float:right; } #nav > ul > li { display:inline-block; list-style:none; vertical-align:top; } #nav > ul > li > ul{ display:none; position:absolute; width:100%; }。对于<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div id="nav"> <ul> <li> Item 1 </li> <li> Item 2 <ul> <li>Sub Item 1</li> <li>Sub Item 2</li> </ul> </li> <li> Item 3 <ul> <li>Sub Item 1</li> <li>Sub Item 2</li> </ul> </li> <li> Item 4 <ul> <li>Sub Item 1</li> </ul> </li> </ul> </div>,通常会尝试将尽可能多的循环推送到numpy数据类型中。

list
相关问题