python处理图像

Python一键实现图像压缩和图像处理_python image 压缩还原 大家好我是辣条哥,最近有小段时间没有更新大家还记得我吧!最近其实在弄一些别的小事情,大家有兴趣的话也可以来围观一下~点击查看→→→《五包辣条与Python》←←←希望大家也像在这里大力支持一样的支持辣条哥废话不多说我们直接进入今天正题,随着现在短视频类越来越火,随之而来的就是大量的视频图像的处理, **不过在辣条眼里编程无所不能,你们觉得呢~**接下来我们直接开始进入操作环节。 阅读详情

入门知识

  1. 颜色。如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是美术中的三原色,它们是不能再分解的基本颜色。在计算机中,我们可以将红、绿、蓝三种色光以不同的比例叠加来组合成其他的颜色,因此这三种颜色就是色光三原色。在计算机系统中,我们通常会将一个颜色表示为一个RGB值或RGBA值(其中的A表示Alpha通道,它决定了透过这个图像的像素,也就是透明度)。

    名称RGB值名称RGB值
    White(白)(255, 255, 255)Red(红)(255, 0, 0)
    Green(绿)(0, 255, 0)Blue(蓝)(0, 0, 255)
    Gray(灰)(128, 128, 128)Yellow(黄)(255, 255, 0)
    Black(黑)(0, 0, 0)Purple(紫)(128, 0, 128)
  2. 像素。对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,我们通常称之为像素(pixel)。每一个图像都包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小,大家如果爱好拍照或者自拍,对像素这个词就不会陌生。

用Pillow处理图像

Pillow是由从著名的Python图像处理库PIL发展出来的一个分支,通过Pillow可以实现图像压缩和图像处理等各种操作。可以使用下面的命令来安装Pillow。

pip install pillow

Pillow中最为重要的是Image类,可以通过Image模块的open函数来读取图像并获得Image类型的对象。

1、读取和显示图像

from PIL import Image

# 读取图像获得Image对象
image = Image.open('guido.jpg')
# 通过Image对象的format属性获得图像的格式
print(image.format) # JPEG
# 通过Image对象的size属性获得图像的尺寸
print(image.size)   # (500, 750)
# 通过Image对象的mode属性获取图像的模式
print(image.mode)   # RGB
# 通过Image对象的show方法显示图像
image.show()

效果如下

2、剪裁图像

3、生成缩略图

4、缩放和黏贴图像

from PIL import Image

# # 读取图像获得Image对象
# image = Image.open('guido.jpg')
# # 通过Image对象的format属性获得图像的格式
# print(image.format) # JPEG
# # 通过Image对象的size属性获得图像的尺寸
# print(image.size)   # (500, 750)
# # 通过Image对象的mode属性获取图像的模式
# print(image.mode)   # RGB
# # 通过Image对象的show方法显示图像
# # image.show()
#
#
# # 通过Image对象的crop方法指定剪裁区域剪裁图像
# # image.crop((80, 20, 310, 360)).show()
#
# image.thumbnail((128, 128))
# image.show()

# 读取骆昊的照片获得Image对象
luohao_image = Image.open('luohao.png')
# 读取吉多的照片获得Image对象
guido_image = Image.open('guido.jpg')
# 从吉多的照片上剪裁出吉多的头
guido_head = guido_image.crop((80, 20, 310, 360))
width, height = guido_head.size
# 使用Image对象的resize方法修改图像的尺寸
# 使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上
luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))
luohao_image.show()

运行效果:

5、旋转和翻转

from PIL import Image

# # 读取图像获得Image对象
# image = Image.open('guido.jpg')
# # 通过Image对象的format属性获得图像的格式
# print(image.format) # JPEG
# # 通过Image对象的size属性获得图像的尺寸
# print(image.size)   # (500, 750)
# # 通过Image对象的mode属性获取图像的模式
# print(image.mode)   # RGB
# # 通过Image对象的show方法显示图像
# # image.show()
#
#
# # 通过Image对象的crop方法指定剪裁区域剪裁图像
# # image.crop((80, 20, 310, 360)).show()
#
# image.thumbnail((128, 128))
# image.show()

# # 读取骆昊的照片获得Image对象
# luohao_image = Image.open('luohao.png')
# # 读取吉多的照片获得Image对象
# guido_image = Image.open('guido.jpg')
# # 从吉多的照片上剪裁出吉多的头
# guido_head = guido_image.crop((80, 20, 310, 360))
# width, height = guido_head.size
# # 使用Image对象的resize方法修改图像的尺寸
# # 使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上
# luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))
# luohao_image.show()

image = Image.open('guido.jpg')
# 使用Image对象的rotate方法实现图像的旋转
image.rotate(45).show()
# 使用Image对象的transpose方法实现图像翻转
# Image.FLIP_LEFT_RIGHT - 水平翻转
# Image.FLIP_TOP_BOTTOM - 垂直翻转
image.transpose(Image.FLIP_TOP_BOTTOM).show()

运行效果:

6、操作像素

from PIL import Image

# # 读取图像获得Image对象
# image = Image.open('guido.jpg')
# # 通过Image对象的format属性获得图像的格式
# print(image.format) # JPEG
# # 通过Image对象的size属性获得图像的尺寸
# print(image.size)   # (500, 750)
# # 通过Image对象的mode属性获取图像的模式
# print(image.mode)   # RGB
# # 通过Image对象的show方法显示图像
# # image.show()
#
#
# # 通过Image对象的crop方法指定剪裁区域剪裁图像
# # image.crop((80, 20, 310, 360)).show()
#
# image.thumbnail((128, 128))
# image.show()

# # 读取骆昊的照片获得Image对象
# luohao_image = Image.open('luohao.png')
# # 读取吉多的照片获得Image对象
# guido_image = Image.open('guido.jpg')
# # 从吉多的照片上剪裁出吉多的头
# guido_head = guido_image.crop((80, 20, 310, 360))
# width, height = guido_head.size
# # 使用Image对象的resize方法修改图像的尺寸
# # 使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上
# luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))
# luohao_image.show()

image = Image.open('guido.jpg')
# 使用Image对象的rotate方法实现图像的旋转
# image.rotate(45).show()
# 使用Image对象的transpose方法实现图像翻转
# Image.FLIP_LEFT_RIGHT - 水平翻转
# Image.FLIP_TOP_BOTTOM - 垂直翻转
# image.transpose(Image.FLIP_TOP_BOTTOM).show()

for x in range(80, 310):
    for y in range(20, 360):
        # 通过Image对象的putpixel方法修改图像指定像素点
        image.putpixel((x, y), (128, 128, 128))
image.show()

运行效果如下:

7、滤镜效果

from PIL import Image

# # 读取图像获得Image对象
# image = Image.open('guido.jpg')
# # 通过Image对象的format属性获得图像的格式
# print(image.format) # JPEG
# # 通过Image对象的size属性获得图像的尺寸
# print(image.size)   # (500, 750)
# # 通过Image对象的mode属性获取图像的模式
# print(image.mode)   # RGB
# # 通过Image对象的show方法显示图像
# # image.show()
#
#
# # 通过Image对象的crop方法指定剪裁区域剪裁图像
# # image.crop((80, 20, 310, 360)).show()
#
# image.thumbnail((128, 128))
# image.show()

# # 读取骆昊的照片获得Image对象
# luohao_image = Image.open('luohao.png')
# # 读取吉多的照片获得Image对象
# guido_image = Image.open('guido.jpg')
# # 从吉多的照片上剪裁出吉多的头
# guido_head = guido_image.crop((80, 20, 310, 360))
# width, height = guido_head.size
# # 使用Image对象的resize方法修改图像的尺寸
# # 使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上
# luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))
# luohao_image.show()

image = Image.open('guido.jpg')
# 使用Image对象的rotate方法实现图像的旋转
# image.rotate(45).show()
# 使用Image对象的transpose方法实现图像翻转
# Image.FLIP_LEFT_RIGHT - 水平翻转
# Image.FLIP_TOP_BOTTOM - 垂直翻转
# image.transpose(Image.FLIP_TOP_BOTTOM).show()

# for x in range(80, 310):
#     for y in range(20, 360):
#         # 通过Image对象的putpixel方法修改图像指定像素点
#         image.putpixel((x, y), (128, 128, 128))
# image.show()

from PIL import ImageFilter

# 使用Image对象的filter方法对图像进行滤镜处理
# ImageFilter模块包含了诸多预设的滤镜也可以自定义滤镜
image.filter(ImageFilter.CONTOUR).show()

运行效果如下:

总结

使用Python语言做开发,除了可以用Pillow来处理图像外,还可以使用更为强大的OpenCV库来完成图形图像的处理,OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,可以用来开发实时图像处理、计算机视觉和模式识别程序。在我们的日常工作中,有很多繁琐乏味的任务其实都可以通过Python程序来处理,编程的目的就是让计算机帮助我们解决问题,减少重复乏味的劳动。通过本章节的学习,相信大家已经感受到了使用Python程序绘图P图的乐趣,其实Python能做的事情还远不止这些,继续你的学习吧。

Python照片压缩教程:如何轻松减小图片大小 在日常的编程工作中,我们经常需要处理图像,例如上传、下载、显示、编辑等。有时候,我们需要对图像进行压缩,以减少占用的空间和带宽,提高加载速度和用户体验。那么,如何用Python来实现图像压缩呢? 阅读详情

相关推荐

Python OpenCV 图像处理

在图像产生、传输和复制过程中,常常会因为多方面原因而被噪声干扰或出现数据丢失,降低了图像的质量(某一像素,如果它与周围像素点相比有明显的不同,则该点被噪声所感染)。因此,我们得到了同一图像不同区域的不同阈值,对于不同光照下的图像,得到了更好的结果。阈值参数:threshold_value = 127,像素值大于127的地方将根据选择的阈值类型做相应处理,max_value = 255 表示阈值操作后的最大值。cv.THRESH_TOZERO_INV:小于阈值的像素值保持不变,大于阈值的像素值设为 0。

余生的博客 2007

python压缩图片--指定压缩大小且保真压缩

python压缩图片--指定压缩大小且保真压缩

Paper_Sheep的博客 1万+

Python图像处理项目:从基础到实战,打造你的图像处理技能!

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1072

PYTHON 自动化办公:压缩图片(PIL)

利用python的Pillow库对图片、文件夹图片进行压缩

Henry的博客 2526

【Python】Python处理图像

在深入学习图像处理技术之前,我们必须对数字图像本身有一个清晰的认识。1.1 什么是数字图像?一幅数字图像可以被看作是一个二维的离散信号。在最常见的表示形式中,数字图像是由一个矩形的像素(Pixel)网格组成的。每个像素是图像中的一个最小单元,它携带了该位置的颜色或灰度信息。想象一个图像是一个巨大的表格,表格的每一个小格子就是一个像素。表格的行数和列数决定了图像的尺寸或分辨率。例如,一个1920x1080的图像意味着它有1920列像素和1080行像素,总共有1920 * 1080 = 2,073,600个像素

宅男很神经 1080

Python编程:实现图片压缩算法(附完整代码)

首先,为了实现图片的压缩,我们需要使用到Python中的PIL库。然而,高清晰度的图片会占用大量的存储空间和网络带宽,极大地影响了用户的体验。因此,如何实现对图片的压缩成为了一个重要的问题。本文提供的Python图片压缩算法可以有效地减小图片的存储空间和网络带宽占用,同时保证图片的质量。接下来,根据图片的大小和分辨率设置合适的参数,使用。本文将介绍一个基于Python语言实现的图片压缩算法,并提供完整的源代码。最后,我们在代码的main函数中指定原图片路径和压缩后的图片路径,调用。方法保存压缩后的图片。

持续更新 1258

Python 中的图像处理

OpenCV 是一个流行的开源包,涵盖了广泛的图像处理和计算机视觉功能和方法。在 OpenCV 中,可以使用各种不同的模糊方法,每种方法在模糊强度和速度之间都有特定的权衡。它提供了一套全面的功能和工具,有助于开发处理图像和视频的应用程序。是一种广受欢迎的边缘检测方法。图像处理的目标是提高图像的视觉质量,提取有用的信息,并使图像适合进一步分析或解释。的图像处理为各种工作提供了坚实的基础,但利用深度学习的卷积功能可能会进一步改进。Canny 边缘检测器是一种强大的边缘检测算法,可以生成高质量的边缘图像。

jianqimingtian的博客 1447

Python图像处理【3】Python图像处理库应用

和多数编程任务类似,在编写图像处理应用程序时,我们无需重复“造轮子”的过程,利用 Python 强大且丰富的第三方库能够大量缩减应用程序的编写时间,达到事半功倍的效果。在本节中,我们将学习使用不同的 Python 库实现一些常见的图像处理、变换和可视化技术,这些技术通常可以用作更复杂的图像处理任务的基本预处理/后处理步骤。

qq_30167691的博客 15万+

用Python做图像处理

用Python做图像处理 最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能。因为我是初学,对图像处理方面就不太了解了,欲要利吾事,必先利吾器,既然只是做一下实验,那用 Python 来作原型开发再好不过了。在 Python 中,比较常用的图像处理库是 PIL(Python Image Library),当前版本是 1.1.6 ,用起来非常方便。大家可以在

赖勇浩的编程私伙局 13万+

Python图像处理【2】探索Python图像处理库

和多数编程任务类似,在编写图像处理应用程序时,我们无需重复“造轮子”的过程,利用 Python 强大且丰富的第三方库能够大量缩减应用程序的编写时间,达到事半功倍的效果。在本节中,我们将学习使用不同的 Python 库实现一些常见的图像处理、变换和可视化技术,这些技术通常可以用作更复杂的图像处理任务的基本预处理/后处理步骤。

qq_30167691的博客 14万+

[Python从零到壹] 四十一.图像处理基础篇之图像采样处理

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍。上一篇文章介绍图像量化处理。这篇文章将详细讲解图像采样处理,包括原理知识、代码实现和局部马赛克处理。希望文章对您有所帮助,如果有不足之处,还请海涵。

杨秀璋的专栏 1万+

Python图像预处理

1.阈值法:阈值法就是通过设置一个阈值,将灰度图中的每一个像素值与该阈值进行比较,小于等于阈值的像素就被设置为0(通常代表背景),大于阈值的像素就被设置为maxval(通常代表前景)。自适应二值化方法会对图像中的所有像素点计算其各自的阈值,这样能够更好的保留图片里的一些信息。也就是说,二值化的过程,就是将一张灰度图上的像素根据某种规则修改为0和maxval(maxval表示最大值,一般为255,显示白色)两种像素值,使图像呈现黑白的效果,能够帮助我们更好地分析图像中的形状、边缘和轮廓等特征。

2303_81188436的博客 1887

python设置图片尺寸

python设置图片尺寸,用python直接给图片设置你想要的尺寸

Python与图像处理

在众多的Python的第三方的库中,Pillow库是一个强大且方便的库,它能够处理图像,比如批量的对一些图片进行处理,或者增加一些滤镜,剪裁等等。

2401_84944910的博客 1543

python图像压缩脚本(内附PIL安装包和处理图片、基于SVD分解和图像重组)

python图像压缩脚本(内附PIL安装包和处理图片、基于SVD分解和图像重组)

基于python的JPEG图像压缩

这是用python写的数据压缩代码,可运行,包括图片处理等,及测试代码,内含详细处理图片的文档,理解起来方便通透。

python图像预处理

# -*- coding:utf-8 -*- ''' Created on 2017年8月4日 @author: fengj ''' import numpy as np from PIL import Image, ImageFilter import math imageWidth=151#图片宽度 imageHeight=112#图片高度 #每个点用他旁边的8个点及自己综合平均 d

fengjiexyb的专栏 6581

数控弯管机xyz转换ybc的算法_花了一年时间开发的三维弯管机交互式转档软件(三维管子模型UG,SOLIDWORK,PRO/E文件转成YBC)...

在弯管机加工中,由管子模型生成可直接进行弯管加工的YBC数据可以大大提高弯管编程过程.传统的做法是先用dxf数据文件(用autocad绘制管子的轴心线数据)转出XYZ数据,然后由XYZ数据转成YBC数据,而且大部分厂家对文件版本以及软件做管方式都有不少限制,这大大花费了用户的时间跟精力.随着企业的信息化管理以及不断的技术升级,传统用autocad线条模式来描述管子的方式正在被用户用PRO/E,UG...

weixin_29065959的博客 1960

Python图像处理

该资源为作者在优快云的撰写Python图像处理文章的支撑,主要是Python实现图像处理、图像识别、图像分类等算法代码实现。该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望该资源对您有所帮助,一起加油!......

m0_61899108的博客 1241

单细胞分析R包monocle3服务器安装教程

由于centos7系统yum只能安装到低版本gdal,而monocle3依赖包需要 gdal>2 版本,从gdal官网下载2.4.4版本编译安装。monocle3的安装是通过cole-trapnell-lab安装的,该包挂在github上,需要通过github先安装leidenbase包,需要提前安装devtools包下载工具。接着利用BiocManager安装相应的依赖包,由于这些包的特殊性,所以不要切换到国内Bio_Mirror镜像,否则会找不到,如果一次不成功,缺啥补啥即可。运行 ldconfig。

qq_36608036的博客 1万+

STM32CubeIDE之SHT3X温湿度传感器移植HAL库

有了前面的OLED的学习,这个学习起来也很快。 分以下几步走 1.你要有个温度传感器,SHT3X这个型号的,因为我要讲这个 2.你要有个STM32开发板(我用的是STM32L431RCT) 3.顺便找台电脑下载一个STM32CubeIDE 4.简单的找一个SHT3X的驱动,我是去某宝嫖的,一般卖这个的都有,这个驱动分两个文件,是.c和.h的,我直接把这两个放在下边 读了我上一篇的人,看这个应该很熟悉吧,一样的套路,学习方法是一样的,你就照搬就行 下面是sht3x.c的原文档,里面有个CRC..

qq_47736089的博客 2313
上一篇: python处理xlsx文件
下一篇: python正则表达式
veminhe
博客等级 码龄14年 721粉丝 426原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值