版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
练习题(参考答案)练习题1.下面有一段代码,请填空补充完整。importosfromPILimportImage#定义原始图片目录和logo图片路径source_images_folder="D:/pictures"watermark_logo_path="D:/picture1/logo.png"output_directory="D:/pictures/watermarked_results"#创建结果输出目录(如果不存在)output_directory记录的目录的路径os.makedirs(output_directory,exist_ok=True)#支持的图片格式allowed_extensions=(".png",".jpg",".jpeg")#预加载水印logowatermark_logo=Image.open(watermark_logo_path)logo_size=watermark_logo.size#处理计数器,用于记录处理的张数,初始化为0processed_images_count=【1】0#遍历并处理每张图片forimage_fileinos.listdir(source_images_folder):#检查是否为支持的图片格式ifnotimage_file.lower().endswith(allowed_extensions):continue#构建完整图片路径original_image_path=os.path.join(source_images_folder,image_file)#打开原始图片original_image=Image.【2】open(original_image_path)#计算水印位置(右上角)watermark_position=(original_image.width-logo_size[0],#X坐标:图片宽度减去logo宽度0#Y坐标:顶部对齐)#添加水印(保留透明度)original_image.paste(watermark_logo,watermark_position,watermark_logo)#保存处理后的图片result_image_path=os.path.join(output_directory,image_file)original_image.save(result_image_path)#关闭图片资源original_image.【3】close()#更新计数器processed_images_count+=1print(f"已处理:{image_file}")#关闭logo资源watermark_logo.【4】close()#输出处理结果print(f"\n图片处理完成!共处理【5】{processed_images_count}张图片")print(f"处理结果保存在:{output_directory}")
2.下面有一段代码,请填空补充完整。#导入操作系统模块和图像处理相关模块importos#用于文件和目录操作fromPIL【1】importImage,ImageDraw,ImageFont#用于图像处理、绘制和字体设置#目录设置source_folder="D:\\pictures"#原始图片所在的源目录路径result_folder="D:\\pictures\\结果"#处理后图片保存的结果目录路径watermark_text='内部资料'#要添加的水印文字内容#创建输出目录ifnotos.path.exists(result_folder):#检查结果目录是否存在os.makedirs(【2】result_folder)#如果不存在则创建该目录#处理图片forfileinos.listdir(source_folder):#遍历源目录下的所有文件iffile.endswith((【3】".jpg",".png")):#判断文件是否是jpg或png图片#打开图片picture=Image.open(os.path.join(source_folder,file))#使用完整路径打开图片文件#创建绘图对象drawing=ImageDraw.Draw(picture)#创建一个可以在图片上绘制的对象#设置字体text_font=【4】ImageFont.truetype('simsun.ttc',20)#使用宋体,字号20#获取文字尺寸text_w,text_h=drawing.textsize(watermark_text,text_font)#计算水印文字的宽度和高度#添加水印drawing.text((10,picture.height-text_h-10),#水印位置:左下角,距离左边10像素,下边10像素watermark_text,#要绘制的水印文字fill=(255,255,255),#文字颜色:白色(RGB值)font=text_font#使用的字体)#保存图片picture.【5】save(os.path.join(result_folder,file))#将处理后的图片保存到结果目录#输出完成提示print("图片处理完成")#所有图片处理完成后显示提示信息
3.下面有一段代码,请填空补充完整。#导入OpenCV库【1】importcv2#加载两张需要比较的图片#读取第一张图片D:\pics\image1.pngimage_A=cv2.imread(r'D:\pics\image1.png')#读取第二张图片D:\pics\image2.pngimage_B=cv2.imread(【2】r'D:\pics\image2.png')#将彩色图片转换为灰度图片gray_A=cv2.cvtColor(image_A,cv2.COLOR_BGR2GRAY)#转换第一张图片为灰度图gray_B=cv2.cvtColor(image_B,cv2.COLOR_BGR2GRAY)#转换第二张图片为灰度图#计算灰度图片的直方图histogram_A=cv2.calcHist([gray_A],[0],None,[256],[0,256])#计算第一张图片的直方图【3】histogram_B=cv2.calcHist([gray_B],[0],None,[256],[0,256])#计算第二张图片的直方图#比较两张图片(histogram_A和histogram_B)直方图的相似度similarity=pareHist(【4】histogram_A,histogram_B,cv2.HISTCMP_CORREL)#使用相关系数法比较直方图#输出两张图片的相似度结果【5】print("图片相似度:",similarity)#打印相似度数值4.下面有一段代码,请填空补充完整。#导入必要的库importos#用于文件和目录操作【1】importcv2#用于图像处理importshutil#用于文件复制#加载参考图像并处理template_image=【2】cv2.imread('D:\\pic1\\rabbit.png')#读取参考图像template_gray=cv2.cvtColor(template_image,cv2.COLOR_BGR2GRAY)#转换为灰度图template_hist=cv2.calcHist([template_gray],[0],None,[256],[0,256])#计算直方图#创建结果目录output_dir='D:\\pics\\results'#结果目录路径if【3】notos.path.exists(output_dir):#检查目录是否存在os.makedirs(output_dir)#不存在则创建#遍历图片目录进行处理source_dir='D:\\pics'#源图片目录forfileinos.listdir(【4】source_dir):#遍历目录中的文件iffile.lower().endswith(('.png','.jpg')):#检查是否为图片文件#处理当前图片file_path=os.path.join(source_dir,file)#获取完整文件路径target_img=cv2.imread(file_path)#读取图片target_gray=cv2.cvtColor(target_img,cv2.COLOR_BGR2GRAY)#转换为灰度图target_hist=cv2.calcHist([target_gray],[0],None,[256],[0,256])#计算直方图#计算与参考图像的相似度match_score=pareHist(template_hist,target_hist,cv2.HISTCMP_CORREL)print(f"{file}与参考图像的相似度:{match_score:.2f}")#输出相似度(保留2位小数)#相似度高于阈值则复制到结果目录ifmatch_score>0.8:#设置相似度阈值shutil.【5】copy(file_path,os.path.join(output_dir,file))#复制符合条件的文件
5.下面有一段代码,请填空补充完整。#导入图像处理库和操作系统库fromPILimportImage#用于图像处理的Python库【1】importos#用于文件和目录操作#设置图片目录路径source_image_folder="D:/待处理的图片"#原始图片所在的目录monochrome_output_folder="D:/处理完成的图片"#黑白图片(结果)输出目录#检查并创建输出目录if【2】notos.path.exists(monochrome_output_folder):#判断输出目录是否存在os.【3】makedirs(monochrome_output_folder)#不存在则创建该目录#获取源目录中的所有文件all_files=os.listdir(source_image_folder)#列出源目录下所有文件和子目录#遍历处理每个图片文件forimage_file【4】inall_files:#逐个处理目录中的文件#检查文件扩展名是否为支持的图片格式ifimage_file.lower().endswith((".jpg",".png")):#判断是否是jpg或png图片#构建完整的图片路径full_image_path=os.path.join(source_image_folder,image_file)#拼接完整路径#打开原始图片original_image=Image.open(full_image_path)#使用PIL库打开图片#将图片转换为黑白模式graysca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制米工操作规程测试考核试卷含答案
- 油母页岩干馏工诚信强化考核试卷含答案
- 白酒酿造工岗前技术突破考核试卷含答案
- 驳筑、集拆坨盐工安全管理强化考核试卷含答案
- 剑麻纤维生产工安全培训效果评优考核试卷含答案
- 刨花板调施胶工岗前安全教育考核试卷含答案
- 干法熄焦工岗前基础验收考核试卷含答案
- 电线电缆包制工成果转化模拟考核试卷含答案
- 樟川双语面试题目及答案
- 联通考核面试题目及答案
- 官兵心理健康档案模版
- GB/T 8834-2006绳索有关物理和机械性能的测定
- 基础工程连续基础课件
- 真分数和假分数-完整版课件
- 1.《郑人买履》课件PPT
- GB∕T 36110-2018 文物展柜密封性能及检测
- 甘肃省生态功能区划
- 模拟电子技术基础 第四章 放大电路的频率响应
- 江苏职业工种分类
- 东方汽轮发电机密封油及内冷水系统介绍
- 湖泊(水库)富营养化评价方法及分级技术规定
评论
0/150
提交评论