第三周——配置项目环境、熟悉项目框架
第四周——人像抠图功能
第五周——图像无损放大、去除遮挡物功能
第六周——图像去雾、清晰度增强功能
第七周——黑白图像上色、动漫化风格化功能
第九周——图像马赛克功能
第十周——HDR高动态范围图像处理
第十一周——色彩均衡化(ACE)功能
第十二周——颜色检测功能
第十三周——批量压缩图片功能
第十四周——透视变换矫正功能
第十五周——UI整合、项目总结
一、工作量及代码难度总结
-
环境配置、部分UI整合
-
AI接口调用:
-
功能:
- 人像抠图
- 无损放大
- 图像去雾
- 图像清晰度增强
- 黑白图像上色
- 图片风格化——绘画风格
-
技术点:
-
接口调用
- request接口请求
- 直接使用aip包中的函数,如AipBodyAnalysis
-
图片格式转换
-
f = open(imgfile, ‘rb’) 二进制方式读取
-
base64.b64decode解码
-
转换为opencv可用格式
- res_array=np.frombuffer(res, np.uint8)
- res=cv2.imdecode(res_array, cv2.COLOR_RGB2BGR)
-
-
-
Opencv算法编写
-
图像马赛克功能
——图像采样
-
去除遮挡物、水印
- 快速行进算法(cv2.INPAINT_TELEA)
- 基于流体动力学的偏微分方程(cv2.INPAINT_NS)
-
HDR高动态范围处理
- 利用曝光时间估计相机响应函数
- 合成HDR图像后实现色调映射
-
色彩均衡化
-——自动色彩均衡化(Automatic Color Enhancement,ACE)算法
-
颜色检测函数
- 鼠标回调函数
- 颜色格式转换
- 使用占位符显示数值
-
批量调整图片尺寸
- 通过os.listdir和file_filter函数读取文件夹中的所有图片文件
-
透视变换校正
- 指定顶点构造透视变换矩阵
- Canny边缘检测算法获取顶点构造透视变换矩阵
- 傅里叶变换及Hough直线检测获取图片倾斜角度从而使用仿射变换进行旋转
-
三、项目总结
我们团队在明确方向后,从确定项目选题,到配置环境、编写功能和UI界面、项目整合,分工明确,不仅实现了数媒专业所学的图像处理功能之后,还添加了较为实用的AI功能。既可以作为数媒专业的教学工具,也可以作为功能全面的图象处理软件发布。
在项目进行过程中,我个人遇到了诸如环境三四天没有配成、功能实现困难等各种问题,但都在自己的学习和队友的帮助下一一实现了。在这次创新项目实训过程中,我不仅锻炼了自己的代码能力,更收获了项目合作的经验,了解了软件UI编写的主要框架。虽然不知道最终结果如何,但很荣幸能参与这样的一次项目实训。