portrait_plus.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:AutoPortraitMatting 作者: PetroWu 项目源码 文件源码
def rotateNormalizedCord(self, matx, maty, angle):
        h, w = matx.shape
        x_avg = np.mean(matx)
        x_min = np.min(matx)
        y_avg = np.mean(maty)
        y_min = np.min(maty)
        xmat = np.zeros((h, w), dtype=np.float)
        ymat = np.zeros((h, w), dtype=np.float)
        for k in range(h):
            for j in range(w):
                cor_y = k - h / 2
                cor_x = j - w / 2
                if cor_x == 0 and cor_y == 0:
                    xmat[k][j] = x_avg
                    ymat[k][j] = y_avg
                else:
                    x_dis = math.cos(math.pi / 2 - angle) * (-math.tan(math.pi / 2 - angle) * cor_x + cor_y)
                    xmat[k][j] = x_avg - (x_avg - x_min) * x_dis * 2 / w
                    y_dis = math.cos(angle) * (math.tan(angle) * cor_x + cor_y)
                    ymat[k][j] = y_avg + (y_avg - y_min) * y_dis * 2 / h
        return xmat, ymat
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号