2023(春)Python程序设计作业4:Numpy 和 Pillow在图像处理中的应用

软工212雷东旭 2023-春-学生 2023-05-23 11:34:54

一、实验题目

     Numpy 和 Pillow在图像处理中的应用

二、实验目的

1) 掌握Numpy的基本应用

2)掌握 Pillow的简单用法

三、实验任务

任务 1)从以下网站:南通大学[学校掠影](https://www.ntu.edu.cn/77/list.htm)任选一副图片下载,用Python程序显示原始图片。

代码:

from PIL import Image
img = Image.open('img.jpg')
img.show()

 

任务 2)将图片变成黑白图片,并用Python程序显示。

代码:

from PIL import Image
img = Image.open("img.jpg")
gray_img = img.convert('L')
gray_img.show()

 

任务3)将图片左右翻转,并用Python程序显示。

代码:

from PIL import Image
img = Image.open("img.jpg")
img_lr = img.transpose(Image.FLIP_LEFT_RIGHT)
img_lr.show()

 

任务4)将图片上下翻转,并用Python程序显示。

代码:

from PIL import Image
img = Image.open("img.jpg")
img_ud = img.transpose(Image.FLIP_TOP_BOTTOM)
img_ud.show()

 

任务5)自己设想一种图片处理任务,描述清楚,并给出实现代码和程序显示图片结果。

将图片旋转90度。

代码:

from PIL import Image
img = Image.open("img.jpg")
rotated_img = img.rotate(90)
rotated_img.show()

 

 

 

...全文
32 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
基于小波变换的数字水印研究项目是一个结合了Python编程和Django框架的Web应用程序,旨在研究和演示利用小波变换技术实现数字水印的嵌入与提取过程。数字水印是一种将信息(如版权信息、所有者身份标识等)隐藏在数字媒体内容的技术,而小波变换提供了一种高效的方法来处理信号,使得水印信息能够在图像、音频或视频不显眼地嵌入和提取。 主要特性和功能可能包括: 1. **用户界面**:提供简单直观的用户界面,允许用户上传图片或视频文件以进行水印处理。 2. **水印嵌入**:使用小波变换算法将用户指定的水印信息嵌入到媒体文件。 3. **水印提取**:能够从已嵌入水印的媒体检测并提取出水印信息。 4. **效果对比**:展示原始媒体文件和加入水印后的文件对比,评估水印技术的隐蔽性和鲁棒性。 5. **性能分析**:分析不同类型和大小的水印对原始媒体质量的影响。 6. **教育资料**:提供关于数字水印技术和小波变换原理的教育资源和文档。 7. **实验记录**:记录每次实验的参数设置、结果和用户反馈。 8. **安全性**:确保上传的媒体文件安全不被未授权访问。 技术栈通常涉及: - Python编程语言:作为主要的后端逻辑和算法实现语言。 - Django框架:用于快速搭建稳定的Web应用平台和API接口。 - 前端技术:HTML, CSS, JavaScript,用于构建用户交互界面。 - 科学计算库:如NumPy和SciPy,用于执行小波变换和其他数学运算。 - 图像处理库:如PIL/Pillow,用于图像文件的处理。 - 数据库技术:如SQLite、MySQL、PostgreSQL或MongoDB,用于存储用户数据和实验记录。 部署方式可能包括: - 本地部署:在研究机构或个人实验室的计算机系统配置环境运行系统。 - 云服务部署:将系统部署到云平台,如AWS、Azure或Google Cloud,以便远程访问和协作。 该系统对于学术研究、教育演示以及数字版权管理领域具有重要价值,它可以帮助研究人员、学生和开发者更好地理解数字水印的概念和应用,同时也为数字媒体的版权保护提供了一个实验和教学平台。随着技术的发展,未来这个系统可能会整合更复杂的信号处理算法,增强系统的实用性和安全性,甚至拓展到其他类型的媒体文件,如音频或3D模型的数字水印处理。
<项目介绍> 机器学习应用基于Python实现的监控视频行人轨迹搜索项目+使用说明(毕业设计源码).zip 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 基于Python的机器学习应用,针对监控视频完成行人轨迹搜索。通过一张目标图像,能自动从大量视频搜索出包含目标的视频片段,并标记目标。此项目为本人本科毕业设计项目。 运行环境 ``` Python 3.6.2 TensorFlow-GPU 1.6.0 opencv-python numpy 1.18.1 keras 2.2.0 scikit-learn pillow ``` 适用平台 笔者在Windows 10上基于Visual Stdio Code开发,但并不代表此项目存在平台限制 项目算法简述 预处理过程(edg_code),图见edg_algorithm_structure.png ``` 1. 基于三帧差分法,结合阈值法,对数据量庞大的监控视频文件进行预处理,去除其的无意义部分(无行人出现),分割视频得到大量的视频片段。 2. 对每个视频片段基于YOLO算法,进行行人识别 [此处算法以及模型来源详见引用] 3. 结合YOLO和Deep Sort进行行人轨迹追踪 [此处算法以及模型来源详见引用] 4. 基于Caffe算法对行人人脸进行识别并评分,缓存评分较高的人脸(存在最大数量限制) 5. 基于EigenFace/LBPHFace, 对前面缓存的人脸建立模型文件 6. 将行人轨迹缓存结果与人脸模型文件关联,即预处理结果 ``` 搜索过程(client),图见client_algorithm_structure.png ``` 1. 对输入图片基于caffe算法截取人脸部分 2. 基于EigenFace/LBPHFace, 将目标人脸与预处理得到的人脸模型比对,得到置信度 3. 通过对置信度排序,并截取适当比例的结果,作为搜索结果输出 ``` 运行说明 code for edg(执行过程耗时) 下面的main.py统一指代为 search_from_videos/edg_code/main.py ``` # 将待处理的单个/多个视频文件(支持mp4)放入main.pyrow_path指定的目录 python main.py # 根据环境自动修正设置 # 程序将自动在main.pyvideo_path和save_path指定路径生成处理参数 ``` code for client(运行过程快速) 下面的main.py统一指代为 search_from_videos/client/main.py ``` # 在main.pyimage_path指定待搜索的目标人物的照片 # main.py的pre_dict和result_dict指向为edg_code生成的对应目录video_path和save_path python main.py # 根据环境自动修正设置 # 程序会自动在main.pysearch_result_path指定路径生成搜索结果
【资源说明】 1、基于Python+yolo的机器学习应用,针对监控视频完成行人轨迹搜索项目源码+说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Python+yolo的机器学习应用,针对监控视频完成行人轨迹搜索项目源码+说明.zip 基于Python的机器学习应用,针对监控视频完成行人轨迹搜索。通过一张目标图像,能自动从大量视频搜索出包含目标的视频片段,并标记目标。 ## 运行环境 ``` Python 3.6.2 TensorFlow-GPU 1.6.0 opencv-python numpy 1.18.1 keras 2.2.0 scikit-learn pillow ``` 额外依赖项下载(模型文件上传到百度云,读者也可根据后续教程自己获得): ``` 文件名:yolo.h5 目标文件夹:search_from_videos\edg_code\model_data\ 链接:https://pan.baidu.com/s/1_oCYDz3Gpcn-WEr6qcqtsA 提取码:yimi 文件名:yolov3.weights 目标文件夹:search_from_videos\edg_code\ 链接:https://pan.baidu.com/s/1mNMwqp_R2-0G586hG9nmSA 提取码:zkvu ``` ## 适用平台 笔者在Windows 10上基于Visual Stdio Code开发,但并不代表此项目存在平台限制 ## 项目算法简述 预处理过程(edg_code),图见edg_algorithm_structure.png ``` 1. 基于三帧差分法,结合阈值法,对数据量庞大的监控视频文件进行预处理,去除其的无意义部分(无行人出现),分割视频得到大量的视频片段。 2. 对每个视频片段基于YOLO算法,进行行人识别 [此处算法以及模型来源详见引用] 3. 结合YOLO和Deep Sort进行行人轨迹追踪 [此处算法以及模型来源详见引用] 4. 基于Caffe算法对行人人脸进行识别并评分,缓存评分较高的人脸(存在最大数量限制) 5. 基于EigenFace/LBPHFace, 对前面缓存的人脸建立模型文件 6. 将行人轨迹缓存结果与人脸模型文件关联,即预处理结果 ``` 搜索过程(client),图见client_algorithm_structure.png ``` 1. 对输入图片基于caffe算法截取人脸部分 2. 基于EigenFace/LBPHFace, 将目标人脸与预处理得到的人脸模型比对,得到置信度 3. 通过对置信度排序,并截取适当比例的结果,作为搜索结果输出 ``` ## 运行说明 #### code for edg(执行过程耗时) 下面的main.py统一指代为 search_from_videos/edg_code/main.py ``` # 将待处理的单个/多个视频文件(支持mp4)放入main.pyrow_path指定的目录 python main.py # 根据环境自动修正设置 # 程序将自动在main.pyvideo_path和save_path指定路径生成处理参数 ``` #### code for client(运行过程快速) 下面的main.py统一指代为 search_from_videos/client/main.py ``` # 在main.pyimage_path指定待搜索的目标人物的照片 # main.py的pre_dict和result_dict指向为edg_code生成的对应目录video_path和save_path python main.py # 根据环境自动修正设置 # 程序会自动在main.pysearch_result_path指定路径生成搜索结果 ``` ## 修改方向 本项目仅为原型机,尚未提供可视化调用接口。可以考虑采用B/S架构,将其升级为真实可用的saas应用 ## 引用 ``` YOLO算法: Redmon J , Divvala S , Girshick R , et al. You Only Look Once: Unified, Real Time Object Detection[C].The IEEE Conference on Computer Vision and Pattern Recognition (CVPR).2016 ,01.

163

社区成员

发帖
与我相关
我的任务
社区描述
软件工程老师
python 高校 江苏省·南通市
社区管理员
  • juking@ntu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧