打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
图像旋转90/180 opencv坐标系

问题描述:

图像旋转90、180、270等

使用类似下面的代码,会有黑边,图像变形之类的问题

其实windows系统自带类似的功能,但是我需要批量处理图像,因此尝试自己写

算法基础:

这种直角的旋转,个人理解不涉及到一些插值的东西,只是像素坐标变换

示例图图像:

逆时针旋转90度:

计算好旋转后各像素点的位置,映射过去就行

就像图像中黄色的点,逆时针旋转90度之后是图像的原点

opencv python(numpy)实现:

import cv2import numpy as npdef main():    # 1.随机创建图片    img_src = cv2.imread(r'11.jpg')    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):            map_x.itemset((i, j), i)#width -1 - i            map_y.itemset((i, j), j)    # 4.执行重映射处理    img_dst = cv2.remap(img_src, map_x, map_y, cv2.INTER_LINEAR)    # 5.显示结果    cv2.imwrite("qqq\img_yes_1_1_0_1.jpg", img_dst)    cv2.waitKey()    cv2.destroyAllWindows()if __name__ == '__main__':    main()

记不住在哪抄的了,个人觉得这个代码写的真是不错,有水平很python,简洁

这段代码跑出来是照着对角线旋转,如果想逆时针90度需要将map_x.itemset((i, j), i) 改为map_x.itemset((width - 1 - i, j), i),要怎么旋转全看这个位置

结果:

opencv C 实现:

https://blog.csdn.net/andylanzhiyong/article/details/84857915

来源:https://www.icode9.com/content-4-779201.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用OpenCV校准鱼眼镜头-第2部分
python+opencv图像处理(十一)
图像配准:基于 OpenCV 的高效实现
OpenCV卡尔曼滤波介绍与代码演示
使用CNN(卷积神经网络)和OpenCV进行手势识别
学习笔记:使用 OpenCV 识别 QRCode
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服