数字图像处理课上了解到了seam carving算法,对这个自适应非等比缩放方法比较感兴趣,于是尝试用python来实现。
图像处理方面用了opencv以及numpy,能量函数方面,尝试先对原图像进行高斯模糊,再使用Sobel或者Canny算法计算能量,进一步得到能量累加图后用动态规划找到能量最小的seam line。
最终效果支持双向缩小,自定义缩小程度,缩小过程中显示每次删除的seam line。
Python 版本:3.6.4
numpy 版本:1.14.2
opencv-contrib-python 版本:3.4.0.12
原图 | 能量图 |
---|---|
横向、纵向缩小20% | 横向缩小33% |
---|---|
动态演示