总结图像处理读与写的一些函数

总结一下前面所学、所用图像处理的一些函数,以后也会多多总结,因为有些函数常常容易忘记,这里就简单记录一下。

1.读取图像

from PIL import Image
img = Image.open(’img’)
#读取当前目录下的图片’img’
#读取当前目录文件下的图片'./file/img'

import cv2
img = cv2.imread(’img’)

2.显示图像

plt.imshow(img)

cv2.imshow('img',img)
#设置图片展示时间
cv2.waitKey()
#释放内存
cv2.destroyAllWindows()

3.存储图像

#以jpg格式进行存储,名字为img
img.save('img.jpg')

img.save('save.jpg')
#还可以指定图片保存的质量
img.save('new1.jpg',quality=95),默认值为75

cv2.imwrite('im_8.jpg',im8)
#保存图片,命名为im8

5.调整图像大小

# 调整大小为(300,300)
img2 = cv2.resize(img2,(300,300))

4.创造画布

matplotlib.pyplot.figure(num=None, 
figsize=None, 
dpi=None, 
facecolor=None,
edgecolor=None, 
frameon=True, 
FigureClass=<class 'matplotlib.figure.Figure'>, 
clear=False, 
**kwargs)
  • num:图像编号或名称,数字为编号 ,字符串为名称。不指定调用figure时就会默认从1开始。
  • figsize:指定figure的宽和高,单位为英寸
  • dpi参数指定绘图对象的分辨率,即每英寸多少个像素
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框

这个后面的函数一般都用不上主要是figsize=(x,y)设置窗口大小

5.创造单个子图

subplot(nrows,
ncols,
sharex,
sharey,
subplot_kw,
**fig_kw)
  • nrows 表示 subplot 的行数
  • ncols 表示 subplot 的列数
  • sharex 表示 subplot 中 x 轴的刻度,所有的 subplot x 轴应该保持相同的刻度
  • sharey 表示 subplot 中 y 轴的刻度,所有的 subplot y 轴应该保持相同的刻度

6.shape函数的用法

shape函数的功能是读取矩阵或数组的长度

#通常有三种使用方法:shape[0],shape[1],shape
shape[0] #读取行数
shape[1]#读取列数

img.shape#行列数组成元组直接输出

7.np.zeros函数

zeros(shape, dtype=float, order=‘C’)
  • shape:形状
  • dtype:数据类型,可选参数,默认numpy.float64
  • order:可选参数,c代表与c语言类似,行优先;F代表列优先
    np.zeros((h,w),np.uint8)
    #创造h行w列数据类型为np.uint8的全0数组

8.flatten()函数用法

flatten()是对多维数据的降维函数
flatten(),默认缺省参数为0
适用:numpy对象,即数组array或者矩阵MAT,普通的list列表不可以

# flatten可将二维数组转化为一维
image.flatten()

9.hist函数–用于绘制直方图

hist(image.flatten(), 128)
show()#展示
  • hist(data,nbins);
  • data是待统计的向量,nbins是需要划分的条数(默认为10)

10.PIL中convert(‘L‘)函数

img.convert(mode=None, matrix=None, dither=None, palette=0, colors=256)
  • matrix:可选的转换矩阵。如果给定,则应为包含浮点值的4元组或12元组。
  • dither:抖动方法,在从模式“RGB”转换为“ P”或从“ RGB”或“ L”转换为“1”时使用。可用的方法有:data:NONE或:data:FLOYDSTEINBERG(默认)。请注意,在提供``matrix’'时不使用此选项。
  • palette:从模式“ RGB”转换为“ P”时使用的调色板。可用的调色板是WEB或ADAPTIVE。
  • colors:用于“ ADAPTIVE”调色板的颜色数。 默认值为256。
    PIL有九种不同模式: 1,L,P,RGB,RGBA,CMYK,YCbCr,I,F。
 img.convert(1)

为二值图像,非黑即白。每个像素用8个bit表示,0表示黑,255表示白。

img.convert(‘L’)

为灰度图像,每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。

11.图像拼接

def image_compose():
  # 创建一个新图
    to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE))
    # 循环遍历,把每张图片按顺序粘贴到对应位置上
    for y in range(1, IMAGE_ROW + 1):
        for x in range(1, IMAGE_COLUMN + 1):
            from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize(
                (IMAGE_SIZE, IMAGE_SIZE), Image.ANTIALIAS)
            to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
    plt.imshow(to_image)
    return to_image.save("拼接结果.jpg")  # 保存拼接之后的结果图

12.灰度图像转换

img1 = cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)

13.复制图像

dst1 = img1.copy()#对原图像复制

这些是我自己对上一篇图像处理总结的一些函数,以后不会了就回来看看,虽然比较简单,但是好记性不如烂笔头嘛。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>