python-图像转数组和数组转图像,灰度反转,集中变换等
目录
python 图像转数组和数组转图像,灰度反转,集中变换等
python 图像转数组和数组转图像,灰度反转,集中变换等
文章目录
python图像转数组
#-*- coding: utf-8 -*-
# 导入包
import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from PIL import Image
#读取图片,并转为数组
im = np.array(Image.open("../../images/0.png").convert('L'))
# 打印数组
print(im)
python图像转数组后输出如下:
[[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]]
python数组转图像
#-*- coding: utf-8 -*-
# 导入包
import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from PIL import Image
#读取图片,并转为数组
im = np.array(Image.open("../../images/0.png").convert('L'))
# 打印数组
print(im)
# 隐藏x轴和y轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
# 显示图片
plt.imshow(im)
# #输出图中的最大和最小像素值
print(int(im.min()),int(im.max()))
# 显示图片
plt.show()
python数据转图像后效果如下:
python图像灰度
#-*- coding: utf-8 -*-
# 导入包
import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from PIL import Image
#读取图片,并转为数组
im = np.array(Image.open("../../images/0.png").convert('L'))
# 隐藏x轴和y轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
# 灰度显示
plt.gray()
# 显示图片
plt.imshow(im)
# #输出图中的最大和最小像素值
print(int(im.min()),int(im.max()))
# 显示图片
plt.show()
python数组转图像灰度:
tip:由于图像本身是灰色的,因此转后还是灰色的。
python图像色调反转
#-*- coding: utf-8 -*-
# 导入包
import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from PIL import Image
#读取图片,并转为数组
im = np.array(Image.open("../../images/0.png").convert('L'))
im_c = 255 - im
# 隐藏x轴和y轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
# 灰度显示
plt.gray()
# 显示图片
plt.imshow(im_c)
# #输出图中的最大和最小像素值
print(int(im_c.min()),int(im_c.max()))
# 显示图片
plt.show()
数组转图片后,颜色反转
数据保存为图片
#-*- coding: utf-8 -*-
# 导入包
import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from PIL import Image
#读取图片,并转为数组
im = np.array(Image.open("../../images/0.png").convert('L'))
im_c = 255 - im
# 隐藏x轴和y轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
# 灰度显示
plt.gray()
# 显示图片
plt.imshow(im_c)
# #输出图中的最大和最小像素值
print(int(im_c.min()),int(im_c.max()))
# plt.savefig('../../images/0_c.png', bbox_inches='tight')
# 显示图片
plt.show()
tips:
此方式对于一般的数据处理性能完全达标,当图片数据量达到上千万甚至上亿时,可能存在性能问题,需要使用其他方式解决。