github:
https://github.com/kotomineshiki/MultiMediaHomework
问题1
算法描述:
读入两张图片
混合图片=图片1
For 圆形半径 小于 对角线长度
Foreach
像素 in 混合图片
If 该像素在圆形区域内
混合图片圆形半径内某位置的像素=图片2该位置上的像素
半径扩大
关闭图片窗口
辅助函数函数:输入矩阵上某个坐标,判断该坐标是否位于圆形区域内
优化1 按照以上算法,对于已经在圈内的像素点,会被重复判断是否在圆形区域内,这样会带来无用的性能消耗。
作为优化的算法,只用判断由于半径扩大所带来的“新”的圆环部分的像素点即可
程序实现:
语言及库:python3.7 cv2库
(未优化版本)
实现效果
问题2
算法描述:
这是一个LUT算法
本次作业采用二叉递归树的方法
步骤为:
-
按照红绿蓝的次序划分八次,得到256个块
-
每个块计算其中心颜色
-
把原颜色替换成中心颜色
-
得到新位码(8bit)和颜色的对应表
优化1. 如果随机取中心颜色会造成黑点,所