目录

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数据转图像后效果如下:

https://i-blog.csdnimg.cn/blog_migrate/4a99b22f9ec02e0c5a1fb7296b2df144.png

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数组转图像灰度:

https://i-blog.csdnimg.cn/blog_migrate/4a99b22f9ec02e0c5a1fb7296b2df144.png

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()

数组转图片后,颜色反转

https://i-blog.csdnimg.cn/blog_migrate/648df822cab86d6f5d45c67d13863c3f.png

数据保存为图片

#-*- 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: 此方式对于一般的数据处理性能完全达标,当图片数据量达到上千万甚至上亿时,可能存在性能问题,需要使用其他方式解决。