版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Python数字图像处理从基础概念到实践应用目录9.1基本的图像操作和处理了解数字图像的基本概念,掌握像素操作、颜色空间转换等基础技能。9.2Python图像处理类库PIL深入学习Python中最常用的图像处理库,进行图像的读取、保存与编辑。9.3使用OpenCV掌握功能强大的计算机视觉库,实现图像滤波、特征检测等高级应用。9.4Matplotlib绘制图形学习如何使用Matplotlib库进行图像的可视化展示,生成高质量图表。CHAPTER09.1基本的图像操作和处理理解数字图像的本质与基础操作,构建计算机视觉的基石图像读取与保存像素级处理色彩空间转换9.1.1图像和像素-概念介绍图像(Image)是用各种观测系统(如照相机、遥感设备等)观测客观世界而获得的视觉实体,是人类获取信息的主要来源之一。像素(Pixel)构成数字图像的基本单元。图像的空间分辨率与其包含的像素个数成正比,像素越多,图像越清晰,细节越丰富。9.1.1图像和像素-坐标系坐标系规则在Python图像处理库中,图像坐标系的原点(O)位于图像的左上角,这与数学坐标系有所不同。坐标表示(Pixel)纵轴(R)为行,横轴(C)为列。像素位置用二元组(x,y)表示,其中x是列坐标,y是行坐标。区域表示(Region)矩形区域用四元组(x1,y1,x2,y2)表示,(x1,y1)为左上角,(x2,y2)为右下角。9.1.2颜色空间-概述RGB颜色模型用于显示器、投影仪等发光设备,是典型的相加混色模型。通过红、绿、蓝三原色的叠加来产生各种颜色。CMYK颜色模型主要用于印刷行业,是相减混色模型。基于青、品红、黄、黑四种油墨的吸收特性来呈现色彩。HSL颜色模型更符合人类视觉感知的模型,通过色调(Hue)、饱和度(Saturation)和亮度(Lightness)来描述颜色。YUV/YIQ颜色模型用于电视广播系统,将亮度(Y)和色度(UV)信息分离,有利于信号传输和压缩,兼容黑白电视信号。9.1.2颜色空间-RGB模型核心原理:相加混色计算机显示器通过控制红(Red)、绿(Green)、蓝(Blue)三个电子枪发出的光强,以不同比例混合来产生各种颜色。主要应用:发光显示设备广泛应用于电视、电脑显示器、数码相机等几乎所有发光显示设备,是目前最主流的颜色标准。模型特点:全色域覆盖理论上,任何颜色都可以通过红、绿、蓝三种基色按不同比例混合得到,实现了视觉上的全色域覆盖。RGB颜色混合原理示意图9.1.2颜色空间-CMYK模型相减混色原理基于颜料吸收光线的原理,通过青色(C)、品红(M)、黄色(Y)和黑色(K)四种颜料的不同比例混合来产生颜色。主要应用领域专为印刷行业设计,广泛应用于书籍、海报、杂志等实体印刷品的色彩还原。模型特点由于CMY三色混合无法产生纯黑,因此引入了黑色(K),以确保印刷品的黑色纯正且节省油墨。CMYK颜色混合示意图9.1.2颜色空间-HSL与YUV模型HSL颜色模型核心构成由色调(Hue)、饱和度(Saturation)和亮度(Lightness)三个分量组成,是一种直观的颜色表示方式。主要特点符合人类对颜色的直观感知,调整饱和度可改变鲜艳程度,调整亮度可改变明暗,操作直观。YUV/YIQ颜色模型核心构成Y代表亮度(Luminance),U和V代表色度(Chrominance),实现了亮度与色彩信息的分离。特点与应用信号传输灵活,可单独传输亮度信息获得灰度图。广泛应用于彩色电视广播系统。9.1.3像素的位深像素的位深(BitDepth)决定了图像包含的颜色数量和色彩精确程度。位数越多,色彩越丰富。1位(黑白)只能表示黑和白两种颜色,色彩极度简化,常用于早期黑白显示器或二值图像。8位(灰度)可以表示256级灰度,从纯黑到纯白过渡,层次感丰富,常用于黑白摄影和医学影像。24位(真彩色)RGB三通道各占8位,共约1677万种颜色,色彩还原度极高,是最常见的彩色图像格式。32位(带透明)在24位真彩色基础上增加8位Alpha通道,用于精确控制图像的透明度,广泛用于图形设计。CHAPTER09.02Python图像处理类库PILPythonImagingLibrary的核心功能与应用详解图像编辑与处理多格式读写支持像素级操作控制9.2.1PIL模块基本介绍Image核心模块提供Image类,是PIL库的基石。负责图像的打开、创建、保存以及基本的像素级操作。ImageDraw绘图模块提供丰富的绘图功能,支持在图像上绘制点、线、矩形、圆形以及添加文字标注。ImageFilter滤镜模块内置多种图像滤镜效果,如高斯模糊、锐化、边缘检测、浮雕等,快速实现图像处理。ImageEnhance增强模块专注于图像质量调整,提供亮度、对比度、色彩饱和度和锐度的精细控制接口。9.2.2Image模块-属性Image类是PIL中最重要的类,代表一张图像。通过其属性可获取图像的基本元数据。format(文件格式)返回图像的文件格式(如JPEG,PNG),如果是PIL创建的图像则为None。mode(色彩模式)返回图像的色彩模式,如'L'表示灰度图,'RGB'表示真彩色。size(图像尺寸)返回图像的尺寸,是一个(width,height)的元组,即宽和高。palette(调色板)返回颜色调色板,如果图像模式是'P'(调色板模式)则有效。info(附加信息)返回一个字典,包含图像的附加信息,如EXIF数据、分辨率等元数据。9.2.2Image模块-函数与方法(一)open(fp)打开一个图像文件,返回一个Image对象。参数`fp`可以是文件名路径或文件对象,是图像处理的第一步。new(mode,size,color=0)创建一个新的空白图像对象。需指定色彩模式(mode)、尺寸(size)和初始颜色(color),用于生成画布。save(fp,format=None)将处理后的图像保存到文件。`fp`为目标文件名,`format`可指定保存格式(如'JPEG'),不指定则自动推断。show()调用系统默认的图像查看器显示图像。主要用于开发调试阶段,快速预览处理后的效果。9.2.3PIL应用-例9-1打开图像代码实现fromPILimportImageimg=Image.open("bird.jpg")img.show()代码解析导入PIL库的Image模块,这是图像处理的基础。使用open()方法打开指定路径的图片文件,返回Image对象。调用show()方法,系统会自动调用默认图像查看器显示图片。运行效果展示9.2.3PIL应用-例9-2调整图像大小核心代码实现fromPILimportImageimg=Image.open("img.jpg")#打开图像#调整大小为128x128,使用双线性插值new_img=img.resize((128,128),Image.BILINEAR)new_img.save("new_img.jpg")代码解析resize((w,h),algo):调整尺寸,BILINEAR保证平滑缩放save(path):将处理后的图像保存为文件效果预览原图(2048x1365)调整后(128x128)注:右侧展示了图片缩放前后的视觉对比。resize方法通过插值算法在改变尺寸的同时尽量保持图像的清晰度。9.2.3PIL应用-例9-3创建新图像Python代码实现fromPILimportImage#创建128x128的RGB图像,背景红色im=Image.new("RGB",(128,128),"#FF0000")im.show()运行效果预览生成的图像特征:尺寸:128×128像素模式:RGB颜色:纯红色(#FF0000)核心方法解析:Image.new()该方法用于创建新图像。参数依次为:模式(mode)、尺寸(size)、初始颜色(color)。颜色参数支持颜色名称(如"red")或十六进制RGB值。9.2.3PIL应用-例9-4图像模式转换核心代码实现#导入PIL库并打开图像fromPILimportImageimg=Image.open("bird.jpg")#转换为灰度模式('L'代表8位灰度)Img_gray=img.convert('L')img_gray.save("bird_gray.jpg")关键说明:img.convert('L'):将图像转换为8位灰度模式,每个像素仅保留亮度信息,去除色彩。原图:彩色图像(RGB模式)效果图:灰度图像('L'模式)9.2.3PIL应用-图像模式详解'1'二进制模式1位二进制模式,非黑即白,每个像素仅占1位空间,适用于简单的黑白图像。'L'灰度模式8位灰度模式,像素值范围0-255,0代表纯黑,255代表纯白,包含256级灰度。'P'调色板模式8位调色板模式,像素值为调色板的索引,最多支持256种颜色,常用于GIF图像。'RGB'真彩色模式24位真彩色模式,每个像素包含R、G、B三个8位通道,是最常用的彩色图像模式。'RGBA'透明模式32位带透明通道模式,在RGB基础上增加了8位Alpha通道,用于控制透明度。'CMYK'印刷模式32位印刷色彩模式,包含青(C)、品红(M)、黄(Y)、黑(K)四个通道,用于专业印刷。9.2.3PIL应用-例9-5生成缩略图Python代码实现fromPILimportImageimg=Image.open("peppers.jpg")img.thumbnail((64,64))#生成最长边≤64的缩略图img.save("peppers_small.jpg")效果对比展示原图(395x395)缩略图(64x64)核心知识点解析thumbnail()方法会在保持图像宽高比的前提下,将图像缩放到指定尺寸内。相比resize(),它能确保图片不会被拉伸变形,非常适合生成预览图。9.2.3PIL应用-例9-6旋转图像Python代码实现fromPILimportImageimg=Image.open("peppers.jpg")img=img.resize((256,256))img=img.rotate(45)img.save("peppers_rotate.jpg")关键说明img.rotate(45):将图像逆时针旋转指定的角度(45度)。旋转后的图像尺寸可能会变大以容纳全部内容。原图(395x395)旋转45度后(256x256)Image模块-函数与方法(二)crop(box)裁剪图像的指定区域。参数box是一个四元组(x1,y1,x2,y2),定义了裁剪区域的左上角和右下角坐标。copy()创建一个图像的拷贝。这在需要保留原图,同时对副本进行修改时非常有用,避免直接操作破坏原始数据。getpixel((x,y))获取指定坐标(x,y)处的像素值。返回值的格式取决于图像模式(如RGB模式返回元组)。putpixel((x,y),color)设置指定坐标(x,y)处的像素值为color。常用于逐像素处理或绘制简单图形。Image模块-函数与方法(三)blend(im1,im2,alpha)将两张尺寸和模式相同的图像融合。alpha参数控制融合比例(0-1),实现线性渐变过渡效果。composite(im1,im2,mask)使用遮罩图像(mask)来合成im1和im2,根据遮罩的透明度实现更复杂的图像叠加效果。split()将多通道图像分离成单个通道的图像。例如,将RGB图像分离为R、G、B三个独立的灰度图像。merge(mode,bands)将多个单通道图像合并成一个多通道图像。是split()方法的逆操作,常用于通道重组。9.3使用OpenCV强大的计算机视觉库入门OpenCV简介与安装核心简介OpenCV是一个开源的计算机视觉库,拥有超过2500个优化算法,涵盖从基础图像处理到高级视觉应用的全领域。应用领域广泛应用于人脸识别、目标检测、图像分割、运动跟踪以及三维重建等前沿技术领域。快速安装使用pip命令一键安装:pipinstallopencv-pythonOpenCV基本操作-读取与显示图像importcv2#读取图像,彩色模式img=cv2.imread('image.jpg',cv2.IMREAD_COLOR)#创建窗口并显示图像cv2.imshow('MyImage',img)#等待按键,0表示无限等待cv2.waitKey(0)cv2.destroyAllWindows()cv2.imread()读取图像第二个参数指定模式,常用的有IMREAD_COLOR(彩色)和IMREAD_GRAYSCALE(灰度)。cv2.imshow()显示图像在指定窗口中显示图像,窗口会自适应图像大小。cv2.waitKey()等待按键等待用户按键输入,参数0表示无限等待,是显示窗口的必要步骤。OpenCV基本操作-图像色彩空间转换Python代码示例importcv2img=cv2.imread('image.jpg')#BGR转灰度图gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#BGR转RGB(用于Matplotlib)rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)关键函数:cv2.cvtColor()参数1:源图像;参数2:转换码(如COLOR_BGR2GRAY)原图(BGR格式)灰度图(Grayscale)OpenCV基本操作-图像保存Python代码示例importcv2img=cv2.imread('image.jpg')gray_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#保存处理后的图像到指定路径cv2.imwrite('gray_image.jpg',gray_img)核心方法解析cv2.imwrite(filename,img)filename:保存的文件名(包含路径),如'output.png'img:要保存的图像对象(numpy数组)9.4Matplotlib绘制图形数据可视化与图像展示工具Matplotlib简介与安装核心功能简介Matplotlib是Python的2D绘图库,支持生成高质量的静态、动态和交互式图表(如折线图、柱状图等),广泛用于图像显示与标注。主要应用领域•数据可视化分析•科学计算结果展示与图像处理快速安装指南pipinstallmatplotlibMatplotlib基本操作-绘制简单图形importmatplotlib.pyplotaspltimportnumpyasnp
x=np.linspace(0,10,100)y=np.sin(x)
plt.plot(x,y)#绘制折线图plt.title('SimplePlot')plt.show()#显示图形绘图核心plt.plot()是绘制折线图的基础函数,用于将数据可视化。图表美化plt.title()与plt.xlabel()用于添加标题和坐标轴标签,提升可读性。显示图形plt.show()用于将绘制好的图形显示在屏幕上。Matplotlib基本操作-显示图像importmatplotlib.pyplotaspltimportmatplotlib.imageasmpimg
img=mpimg.imread('image.jpg')plt.imshow(img)plt.axis('off')plt.show()关键函数解析mpimg.imread()读取图像文件,返回NumPy数组plt.imshow()将图像数组渲染显示在画布上plt.axis('off')隐藏坐标轴,使图像显示更整洁Matplotlib基本操作-图像标注与保存Python代码实现importmatplotlib.pyplotaspltimportmatplotlib.imageasmpimgimg=mpimg.imread('image.jpg')plt.imshow(img)plt.title('MyImage')#添加标题plt.xlabel('Width')#X轴标签plt.ylabel('Height')#Y轴标签plt.savefig('out.png',dpi=300)可视化效果预览标注函数:使用plt.title(),plt.xlabel(),plt.ylabel()为图像添加元数据说明。图像保存:plt.savefig()支持设置分辨率(dpi),建议使用bbox_inches='tight'去除留白。项目实战-综合应用(一)项目名称:简易图像滤镜处理工具核心功能需求图像加载:支持选择并加载本地图片文件滤镜选择:提供模糊、浮雕、轮廓检测等多种效果效果预览:实时渲染并显示滤镜处理后的图像结果保存:将处理后的图像保存至本地磁盘技术选型方案PIL库:负责图像的基础操作、像素处理及滤镜算法的实现。Matplotlib:用于图像的实时显示、交互界面构建以及可视化呈现。项目实战-综合应用(二)01.加载图像(Loading)fromPILimportImage,ImageFilterimg=Image.open("input.jpg")02.应用滤镜(Filtering)#应用模糊、浮雕、轮廓滤镜blurred=img.filter(ImageFilter.BLUR)emboss=img.filter(ImageFilter.EMBOSS)03.显示对比(Display)使用Matplotlib的subplot功能,在同一窗口中并排显示原图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多元行业盈利模式的差异化对比与竞争能力分析
- 教育行业风险防控考试题库完整版及答案2026年
- 2026年湖南省公务员考试题库(检察官助理法官助理+法官助理)模拟试题+高频考点
- 2026-2031年中国电动摩托车和踏板车行业市场调查研究及发展前景预测报告
- 2026年产业园区雨水管网雨水井改造方案
- 女职工相关知识试题与答案解析
- 计算机网络工程师考试试题及答案
- 养老服务面试题目及精准答案
- 顶级智力挑战试题及解析
- 广告定义试题全解与答案分析
- 2026年人民法院聘用书记员考试重点试题及答案解析
- 2026年国企水质化验笔试试题(含答案)
- 2026福建漳州闽投华阳发电有限公司招聘43人笔试参考题库及答案详解
- 2026海南省农业信贷担保有限责任公司招聘高层管理人员1人考试模拟试题及答案详解
- 2025版中国心肺复苏指南(完整版 含AED使用)
- GB/T 47655-2026电力电子装备和系统的构网性能要求及试验方法
- GA/T 1466.1-2026智能手机型移动警务终端第1部分:技术要求
- 2026年新高考北京政治真题含答案
- 2026年博物馆社会教育活动策划方案
- 新版2026年高考政治(山东卷)真题详细解读及评析
- 2026年招聘消防文员笔试题库附答案
评论
0/150
提交评论