Python TypeError:传递给numpy.ndarray.\uu格式的格式字符串不受支持__
我试图将Python TypeError:传递给numpy.ndarray.\uu格式的格式字符串不受支持__,python,python-3.x,numpy,opencv,Python,Python 3.x,Numpy,Opencv,我试图将数据转换为字符串“”的二进制格式,但当我将图像提供给函数时,出现了错误- TypeError:传递给numpy.ndarray的格式字符串不受支持。格式 这是我的密码:- import cv2 import numpy as np import os def to_bin(data): """Convert `data` to binary format as string""" if isinstance(
数据
转换为字符串“”的二进制格式,但当我将图像提供给函数时,出现了错误-
TypeError:传递给numpy.ndarray的格式字符串不受支持。格式
这是我的密码:-
import cv2
import numpy as np
import os
def to_bin(data):
"""Convert `data` to binary format as string"""
if isinstance(data, str):
return ''.join([ format(ord(i), "08b") for i in data ])
elif isinstance(data, bytes) or isinstance(data, np.ndarray):
return [ format(i, "08b") for i in data ]
elif isinstance(data, int) or isinstance(data, np.uint8):
return format(data, "08b")
else:
raise TypeError("Type not supported.")
image = cv2.imread("google.png")
print(to_bin(image))
您是否采取了添加
print(类型(数据))的明显步骤
在函数顶部?是的,让我们退一步。这里的真正目标是什么?你不能真的希望将整个图像转换为一个巨大的0和1字符串。那将是毫无意义的。我正在尝试更改LSBSo,用于隐写术?你当然不想将像素转换为二进制字符字符串。要设置LSB,您可以执行x=x | 1
,要清除它,您可以执行x=x&254
。