基于重映射实现图像的旋转

使用重映射实现图像旋转
这段代码展示了如何通过重映射技术实现图像的旋转。首先,根据输入图像的尺寸创建X和Y映射矩阵,然后根据旋转方向(90度逆时针或顺时针)调整映射点的位置。最后,使用OpenCV的remap函数执行重映射操作,得到旋转后的图像。

基于重映射实现图像的旋转

def img_rotation(self,img_src,direction=90):
        # 1.随机创建图片
        height, width = img_src.shape[:2]
        # print("img width:%d height:%d" % (width, height))
        # 2.创建X,Y map
        map_x = np.zeros([width, height], np.float32)
        map_y = np.zeros([width, height], np.float32)
        # 3.执行重映射 调整 X Y map位置
        for i in range(width):
            for j in range(height):
                if direction==-90:
                    map_x.itemset((i, j), i)  # 1
                    map_y.itemset((i, j), j)# 2
                elif direction==90:
                    map_x.itemset((i, j), i)  # 1
                    map_y.itemset((i, height - 1 - j), j)  # 3
                else:
                    pass
                '''map_x.itemset((i, j), i) # 1
                # map_y.itemset((i, j), j)# 2
                map_y.itemset((i, height-1-j), j)# 3'''
                # 1和2是逆时针90,1和3是顺时针90
        # 4.执行重映射处理
        img_dst = cv2.remap(img_src, map_x, map_y, cv2.INTER_LINEAR)
        # cv2.imwrite('rp1.jpg',img_dst)
        return img_dst
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值