001_20180909

开始接触图像处理这方面的内容了,循序渐进吧。!!!

首先显示最简单的输入与输出

from PIL import Image

pil_im = Image.open(r'C:\Users\liukuo\Desktop\330.jpg')

print(pil_im.format, pil_im.size, pil_im.mode)

pil_im.show()

# pil_im.rotate(45).show()
#旋转45度输出

首先显示从PIL中引入了Image

上述代码的返回值 pil_im 是一个 PIL 图像对象。第三行的解释如下

 format 这个属性标识了图像来源。如果图像不是从文件读取它的值就是None。size属性是一个二元tuple,包含width和height(宽度和高度,单位都是px)。 mode 属性定义了图像bands的数量和名称,以及像素类型和深度。常见的modes 有 “L” (luminance) 表示灰度图像, “RGB” 表示真彩色图像, and “CMYK” 表示出版图像。
如果文件打开错误,返回 IOError 错误。

而且只需要在使用open函数的时候加入

.convert('L')       就可以得到相应的灰度图像了

在文件读取的时候出现了一些错误,所以我在前面加入了一个小r,如果后来又不懂了,那就来看看这里

https://blog.csdn.net/u011242657/article/details/64437612

这里对于图像的输出只是用了一个普通的Imaged的方法,我又发现了如下的两种方法:

1. 这个是基于matplotlib的

plt.figure("330")
plt.axis('off')  #这就是把横向和纵向的坐标关了,axis: 轴,轴线;

plt.imshow(pil_im)
plt.show()

2.还有一个是基于   from scipy import misc  这个的;(不过这貌似只是个修改的方法,先看看吧)

import numpy as np
from scipy import misc
import matplotlib.pyplot as plt
 
 
def test_misc():
    #读取图像
    im = misc.imread("lena.jpg")
    #显示图像
    plt.figure(0)
    plt.imshow(im)
 
    #旋转图像
    im_rotate = misc.imrotate(im, 90)
    plt.figure(1)
    plt.imshow(im_rotate)
 
    #保存图像
    misc.imsave("lena_rotate.jpg", im_rotate)
 
    plt.show()
 
    return

好了,我出去又回来啦!!!!!!!!!!!!!!!

下面继续吧

这里有看到一个Python dir()内置函数作用及使用方法

感觉dir()就是一个查询的函数,他可以查找参数的使用方法http://www.iplaypy.com/jichu/dir.html

搞完了open,现在搞一下save吧

#  很简单的单独保存,存储的位置在你的工作空间里
plt_in02.save("plt_in02.png")

其实应该还可以批量保存,并且更改后缀名,我试一下

# import os
# import sys
#
# for infile in sys.argv[1:]:
#     f,e = os.path.splitext(infile)  #分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
#     # print(f)
#     # print(e)
#
#     outfile = f + ".png"
#     if infile != outfile:
#         try:
#             Image.open(infile).save(outfile)
#         except IOError:
#             print("Cannot convert",infile)

唯一不懂得就是for语句的传入参这个sys.argv[1:] ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

这个传入的参数我总是搞不好,哎,先放一放吧

http://python.jobbole.com/84956/

https://blog.csdn.net/nature_XD/article/details/70741765

现在是将两幅图片放入同一个figure中,其实简单的很,

plt.figure()    #现在这里定格基调,意思就是你要用一张figure来显示x张图
plt.subplot(2,2,1)   # 主角登场
plt.imshow(pil_im)
plt_in02 = Image.open(r'C:\Users\liukuo\Desktop\330.jpg').convert('L')
plt.subplot(2,2,2)    # 2x2矩阵中的第二个,也就是第一行第二列
plt.imshow(plt_in02)
plt.show()

这样就OK啦,这里感觉第一行和第七行的优先级可能要高一些,哈哈

猜你喜欢

转载自blog.csdn.net/Pierce_KK/article/details/82562925
001
今日推荐