《大数据应用技术基础》课件 项目五 处理图片_第1页
《大数据应用技术基础》课件 项目五 处理图片_第2页
《大数据应用技术基础》课件 项目五 处理图片_第3页
《大数据应用技术基础》课件 项目五 处理图片_第4页
《大数据应用技术基础》课件 项目五 处理图片_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五处理图片目录任务一:在批量图片中添加图像标志任务二:图片批量加标题任务三:识别两张图像的相似度任务四:实现图像识别和分类任务任务五:图片批量处理成黑白任务一:在批量图片中添加图像标志【任务分析】

现在“D:\pictures”目录中有一批图片,在“D:\picture1”目录中有一张“logo.png”图片,如图5-1、图5-2所示。请尝试编程实现对图像批量添加“logo.png”图片。(1)遍历“D:\pictures”目录的所有图片,逐个在图片右上角添加“logo.png”图片。(2)完成后的图片另存在“结果”子目录下,原图片文件不变。图5-1一张“logo.png”图片任务一:在批量图片中添加图像标志图5-2一批图片任务一:在批量图片中添加图像标志【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按“任务分析”完成批量图片中添加图像标志的功能,如图5-3所示。图5-3输入程序代码任务一:在批量图片中添加图像标志参考代码:importos

fromPILimportImage

#定义原始图片目录和logo图片路径

picture_dir="D:/pictures"

logo_path="D:/picture1/logo.png"

#创建结果目录

result_dir="D:/pictures/结果"

os.makedirs(result_dir,exist_ok=True)

#遍历原始图片目录

forfilenameinos.listdir(picture_dir):

#检查文件扩展名,确保只处理图片文件

iffilename.lower().endswith((".png",".jpg",".jpeg")):

#打开原始图片和logo图片

picture_path=os.path.join(picture_dir,filename)

picture=Image.open(picture_path)

logo=Image.open(logo_path)

#获取原始图片和logo图片的尺寸

picture_width,picture_height=picture.size

logo_width,logo_height=logo.size

#计算logo添加的位置(右上角)

position=(picture_width-logo_width,0)

#将logo图片粘贴到原始图片的右上角

picture.paste(logo,position,logo)

#保存结果图片到结果目录

result_path=os.path.join(result_dir,filename)

picture.save(result_path)

#关闭打开的图片

picture.close()

logo.close()

#完成

print("图像处理完成!")任务一:在批量图片中添加图像标志2.运行程序,打开“结果”目录,可以看到图片右上角已添加了“logo.png”的图片,如图5-4所示。图5-4任务二:图片批量加标题【任务分析】

现在“D:\pictures”目录中有一批图片,如图5-5所示。请尝试编程实现对图像批量添加标题。(1)遍历“D:\pictures”目录的所有图片,逐个在图片左下角添加“内部设计初稿”文字,文字设为白色,设置一种背景色。(2)完成后的图片另存在“结果”子目录下,原图片文件不变。图5-5一批图片任务二:图片批量加标题【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按“任务分析”完成图片批量加标题的功能,如图5-6所示。图5-6输入程序代码任务二:图片批量加标题参考代码:importos

fromPILimportImage,ImageDraw,ImageFont

input_dir="D:\\pictures"#图片所在目录

output_dir="D:\\pictures\\结果"#处理后的图片保存目录

text='内部设计初稿'#设置文本

#如果输出目录不存在,则创建

ifnotos.path.exists(output_dir):

os.makedirs(output_dir)

forfilenameinos.listdir(input_dir):

iffilename.endswith(".jpg")orfilename.endswith(".png"):

img_path=os.path.join(input_dir,filename)

img=Image.open(img_path)

draw=ImageDraw.Draw(img)

#设置字体和字号大小

font=ImageFont.truetype('simsun.ttc',20)

text_width,text_height=draw.textsize(text,font)

#设置文字颜色

text_color=(255,255,255)#修改字体颜色为白色(RGB值为255,255,255)

#添加文字水印

position=(10,img.height-text_height-10)#文字位置设定为左下角

draw.text(position,text,font=font,fill=text_color)

#保存到新文件夹中

output_path=os.path.join(output_dir,filename)

img.save(output_path)#保存图片

print("处理完成")任务二:图片批量加标题2.运行程序,打开“结果”目录,可以看到图片左下角已添加了文字标题,如图5-7所示。图5-7打开“结果”目录任务三:识别两张图像的相似度【任务分析】

现在“D:\pictures”目录中有logo1.png、logo2.png两张图片,如图5-8所示。

请尝试编程实现识别两张图像的相似度,输出相似度参数。图5-8两张图片任务三:识别两张图像的相似度【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按“任务分析”完成识别两张图像的相似度的功能,如图5-9所示。图5-9输入程序代码任务三:识别两张图像的相似度参考代码:importcv2

#加载图像

img1=cv2.imread(r'D:\pictures\logo1.png')

img2=cv2.imread(r'D:\pictures\logo2.png')

#将图像转换为灰度图像

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

gray_img2=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)

#计算直方图

hist1=cv2.calcHist([gray_img1],[0],None,[256],[0,256])

hist2=cv2.calcHist([gray_img2],[0],None,[256],[0,256])

#计算两个直方图之间的差异

diff=pareHist(hist1,hist2,cv2.HISTCMP_CORREL)

#打印结果

print("相似度:",diff)任务三:识别两张图像的相似度2.运行程序,从终端可以看到相似度的值,如图5-10所示。图5-10从终端可以看到相似度的值任务四:实现图像识别和分类保存【任务分析】

现在“D:\picture1”目录中有一张图片rabbit.png,在“D:\pictures”目录下有一批待处理图片,如图5-12、图5-13所示。请尝试编程实现图像识别和分类任务。(1)遍历“D:\pictures”目录的所有图片,逐个对比与rabbit.png的图片相似度,并输出相似度的值。(2)把与rabbit.png相似度的值大于80%的图片文件挑选出来,按原文件名保存在“挑选出的结果”子目录下。图5-12一张图片rabbit.png任务四:实现图像识别和分类保存图5-13一批待处理图片任务四:实现图像识别和分类保存【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按“任务分析”完成实现图像识别和分类保存的功能,如图5-14所示。图5-14输入程序代码任务四:实现图像识别和分类保存参考代码:importos

importcv2

importshutil

#加载rabbit.png图像并转换为灰度图像

rabbit_img=cv2.imread('D:\\picture1\\rabbit.png')

rabbit_gray=cv2.cvtColor(rabbit_img,cv2.COLOR_BGR2GRAY)

rabbit_hist=cv2.calcHist([rabbit_gray],[0],None,[256],[0,256])

#创建保存挑选结果的子目录

result_dir='D:\\pictures\\挑选出的结果'

ifnotos.path.exists(result_dir):

os.makedirs(result_dir)

#遍历“D:\pictures”目录中的每张图片

forfilenameinos.listdir('D:\\pictures'):

iffilename.endswith('.png')orfilename.endswith('.jpg'):

#加载当前遍历到的图片并转换为灰度图像

img_path=os.path.join('D:\\pictures',filename)

current_img=cv2.imread(img_path)

current_gray=cv2.cvtColor(current_img,cv2.COLOR_BGR2GRAY)

current_hist=cv2.calcHist([current_gray],[0],None,[256],[0,256])

#比较rabbit.png图像的直方图与当前遍历到的图片的直方图

similarity=pareHist(rabbit_hist,current_hist,cv2.HISTCMP_CORREL)

#输出相似度的值

print(f"{filename}与rabbit.png的相似度:{similarity}")

#如果相似度大于80%,则将该图片保存到“挑选出的结果”子目录下

ifsimilarity>0.8:

shutil.copy(img_path,os.path.join(result_dir,filename))任务四:实现图像识别和分类保存2.运行程序,从终端可以看到逐张图对比的相似度值,如图所示。图5-15从终端可以看到逐张图对比的相似度值任务四:实现图像识别和分类保存3.打开“D:\pictures\挑选出的结果”目录,可以看到挑选出来的图片文件,如图5-16所示。图5-16可以看到挑选出来的图片文件任务五:图片批量处理成黑白【任务分析】

现在“D:\待处理图片”目录中有一批彩色图片文件,如图5-17所示。

现需要全部处理成黑白图片,如果逐张打开进行处理,必定耗费过多的工作时间,为提高工作效率。请尝试编程实现批量把图片处理成黑白效果的功能。(1)把“D:\待处理图片”目录下图片打开并全部处理成黑白效果。

(2)处理完成后,按原文件名保存在“黑白图片”子目录下。图5-17“D:\待处理图片”任务五:图片批量处理成黑白【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按“任务分析”完成图片批量处理成黑白的功能,如图5-18所示。图5-18输入程序代码任务五:图片批量处理成黑白参考代码:fromPILimportImage

importos

#原始图片目录和黑白图片保存目录

input_di

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论