创建一个字典,有26个键从"A"到"Z",每个键关联的值是从1到26。
代码实现:
dic_alphabeta
= {chr(i
): i
-64 for i
in range(65, 91)}
print("字典内容为:{}".format(dic_alphabeta
))
运行结果:
读取一个二进制图像文件,并尝试进行图像处理(更改其像素数值)再写回文件。
代码实现:
import numpy
as np
import struct
import matplotlib
.pyplot
as plt
image
= np
.zeros
((256, 256), dtype
=np
.float)
for i
in range(256):
image
[i
] = np
.arange
(256)
fp
= open('image.raw', 'wb')
write_buf
= struct
.pack
('={}f'.format(image
.size
), *image
.flatten
())
fp
.write
(write_buf
)
fp
.close
()
fp
= open('image.raw', 'rb')
raw_data
= fp
.read
(256 * 256 * 4)
raw_data
= struct
.unpack
('={}f'.format(256 * 256), raw_data
)
image
= np
.asarray
(raw_data
).reshape
(256, 256)
fp
.close
()
plt
.subplot
(121)
plt
.imshow
(image
, cmap
=plt
.cm
.gray
)
def turntran(grayarray
):
new
= np
.array
(grayarray
).reshape
(256, 256)
for i
in range(256):
for j
in range(256):
new
[i
][j
] = (i
+j
)/2
for i
in range(256*256):
p
= int(i
/256)
q
= i
% 256
grayarray
[i
] = new
[p
][q
]
return grayarray
fp
= open('image.raw' , 'rb')
raw_data
= fp
.read
(256 * 256 * 4)
raw_data1
= np
.zeros
(256 * 256, dtype
=np
.float)
raw_data
= struct
.unpack
('={}f'.format(256 * 256), raw_data
)
raw_datachange
=list(raw_data
)
raw_data1
= turntran
(raw_datachange
)
raw_data2
= tuple(raw_data1
)
image
= np
.asarray
(raw_data2
).reshape
(256, 256)
fp
.close
()
plt
.subplot
(122)
plt
.imshow
(image
, cmap
='gray')
plt
.show
()
fp
= open('image1.raw', 'wb')
write_buf
= struct
.pack
('={}f'.format(image
.size
), *image
.flatten
())
fp
.write
(write_buf
)
fp
.close
()
运行结果:
左侧为原始图像,右侧为处理后图像。
转载请注明原文地址:https://blackberry.8miu.com/read-35644.html