简单的图像处理

一、Image 模块

1.1 Image.open()

可以根据给定的路径返回Image图像

Image.open(im_path) ⇒ image 
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
print(type(im))

在这里插入图片描述

1.2 im.show()

可以直接将读取的图像可视化出来

from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
im.show()

在这里插入图片描述

1.3 im.save()

from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
im.save('./ali_save.png')

1.4 im.format

如果图像是png格式则输出"PNG",如果是jpg格式则输出"JPEG"

from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
print(im.format)

在这里插入图片描述

1.5 im.mode

modes描述
11位像素,黑和白,存成8位的像素
L8位像素,黑白
P8位像素,使用调色板映射到任何其他模式
RGB3× 8位像素,真彩
RGBA4×8位像素,真彩+透明通道
I32位整型像素
F32位浮点型像素
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
print(im.mode)

在这里插入图片描述

1.6 im.convert()

将当前图像转换为其他模式,并且返回新的图像。其中的参数是字符串格式并且必须是大写

im.convert(mode)⇒ image
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
im_L = im.convert('L')
im_L.save('./ali_L.png')

在这里插入图片描述

1.7 im.size

返回值为宽度和高度的二元组(width, height)

from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
print(im.size)

在这里插入图片描述

1.8 im.crop

从当前的图像中返回一个矩形区域的拷贝。变量box是一个四元组,定义了左、上、右和下的像素坐标。用来表示在原始图像中截取的位置坐标

im.crop(box) ⇒ image
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
box = (20, 50, 880, 800) # 人为指定
im_region = im.crop(box)
im_region.save('./ali_region.png')

在这里插入图片描述

1.9 im.filter()

返回一个使用给定滤波器处理过的图像的拷贝。具体参考图像滤波在ImageFilter 模块的应用,在该模块中,预先定义了很多增强滤波器,可以通过filter( )函数使用,预定义滤波器包括:BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN。其中BLUR就是均值滤波,CONTOUR找轮廓,FIND_EDGES边缘检测,使用该模块时,需先导入。

im.filter(filter) ⇒ image
from PIL import Image
from PIL import ImageFilter

im_path = './ali.png'
im = Image.open(im_path)
bluF = im.filter(ImageFilter.BLUR)
bluF.save('./ali_BLUR.png')
conF = im.filter(ImageFilter.CONTOUR)
conF.save('./ali_CONTOUR.png')
edgeF = im.filter(ImageFilter.FIND_EDGES)
edgeF.save('./ali_FIND_EDGES.png')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.10 im.resize()

返回改变尺寸的图像的拷贝。变量size是所要求的尺寸,是一个二元组:(width, height)。生成的图像会产生形变

im.resize(size) ⇒ image 
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
im_resize = im.resize((800,800))
im_resize.save('./ali_resize.png')

在这里插入图片描述

im.Rotate

返回一个按照给定角度逆时钟围绕图像中心旋转后的图像拷贝。

im.rotate(angle) ⇒ image
from PIL import Image

im_path = './ali.png'
im = Image.open(im_path)
im_45 = im.rotate(45)
im_45.save('./ali_45.png')

在这里插入图片描述

二、opencv

2.1 cv2.imread()

可以根据图像的路径获取图像的矩阵值,返回值是一个numpy,size是(h,w,c)

cv2.imread(im_path) ⇒ image 
import cv2

im_path = './ali.png'
im = cv2.imread('./ali.png')
print(type(im))
print(im.shape)

在这里插入图片描述
在这里插入图片描述
cv2.imread()还有第二个参数,表示读取的模式。
1:读入的为彩色图像(默认)
0:读入的为黑白图像(即使读入的为彩色图像也将转化为灰度图像)

import cv2

im_path = './ali.png'
im = cv2.imread('./ali.png', 0)
print(im.shape)

在这里插入图片描述
在这里插入图片描述

cv2.imwrite()

将numpy转成图像保存到指定路径

import cv2

im_path = './ali.png'
im = cv2.imread('./ali.png')
cv2.imwrite('./ali_save_cv.png', im)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值