将.byte文件转化为灰度图,这里新学习了几个接口,int(参数1,参数2)参数1可以是字符串,参数2是该字符串对应的进制,如果参数1是数字那么不可以有参数2。
np.unit8()是将数组里面的数值变成0-255之间
Image.fromarray(content) 是将数组content转化为灰度图
import numpy as np
from PIL import Image
import binascii
filename = r"D:\google下载\dataSample\0A32eTdBKayjCWhZqDOQ.bytes"
with open(filename,"r") as f:
content = f.read()
content = np.array( ["".join(line[9:].split(" ")) for line in content.split("\n")])
#print(content[:500])
content = np.array([i for line in content for i in line if i!='?' ])
#print(content.shape)
print(content[:30])
content=np.array([int(content[i]+content[i+1],16) for i in range(0,len(content[:920400]),2) ])
content = content.reshape(-1,600)
content = np.uint8(content)
im = Image.fromarray(content)
im.save("your_img_filename.png")
恶意代码灰度图
将灰度图转化为rgb图,cv2.imread(),cv2.imwrite(), os.path.basename(path) ,是要path的基文件名,如果以\结尾则结果为空。glob模块可以查找符合特定规定的文件路径名,可以用正则表达式。
import cv2
import glob
import os
path = "your_img_filename.png"
img_path = "./"
img_name = os.path.basename(path)
img = cv2.imread(path,0)
img_rgb = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
img_paths = img_path+"111.jpg"
cv2.imwrite(img_paths, img_rgb)