图像旋转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

(0)

相关推荐

  • 《计算机视觉》中的几何变换:Python示例的直观解释

    重磅干货,第一时间送达 图片由Payton Tuttle在Unsplash提供 几何变换是任何图像批量处理中最常见的变换操作之一.在今天的文章中,我们将讨论其中的三种变换:旋转.平移和缩放,然后仅仅使 ...

  • 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者 Goog ...

  • 使用OpenCV校准鱼眼镜头

    重磅干货,第一时间送达 01.简介 当我们使用的鱼眼镜头视角大于160°时,OpenCV中用于校准镜头"经典"方法的效果可能就不是和理想了.即使我们仔细遵循OpenCV文档中的步骤 ...

  • python 图像处理:一福变五福

    快过年了,各种互联网产品都出来撒红包.某宝一年一度的集五福(shua hou)活动更是成为每年的必备活动.虽然到最后每人大概也就分个两块钱,但作为一个全民话题,大多数人还是愿意凑凑热闹.毕竟对于如今生 ...

  • 利用OpenCV建立视差图像

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者 Goog ...

  • python+opencv图像处理(十二)

    图像仿射变换和透视变换 天晴了...... 1.仿射变换 图像的仿射变换就是图像的旋转加上拉升,说直白点,就是把矩形变成平行四边形. 要把矩形变成平行四边行,只需要拉伸其四个角点就行了,事实上,只需要 ...

  • 基于OpenCV实战:对象跟踪

    重磅干货,第一时间送达 介绍 跟踪对象的基本思想是找到对象的轮廓,基于HSV颜色值. 轮廓:突出显示对象的图像片段.例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色 ...

  • 基于OpenCV的手掌检测和手指计数

    重磅干货,第一时间送达 利用余弦定理使用OpenCV-Python实现手指计数与手掌检测. 手检测和手指计数 接下来让我们一起探索以下这个功能是如何实现的. OpenCV OpenCV(开源计算机视觉 ...

  • 基于OpenCV的实用图像处理操作

    重磅干货,第一时间送达 图像处理适用于图像和视频.良好的图像处理结果会为后续的进一步处理带来很大的帮助,例如提取到图像中的直线有助于对图像中物体的结构进行分析,良好的特征提取会优化深度学习的结果等.今 ...

  • python+opencv图像处理(六)

    图像相加 两幅图像是可以加在一起的. 图像相加是通过对两幅大小相同的图像对应位置像素的相加运算,以产生一幅新的含有两幅图像信息的图像的方法.有时也称为图像合成. 1.(+)法 数学运算中的+可以用于图 ...

  • 基于OpenCV的条形码区域分割

    重磅干货,第一时间送达 本期,我们将一起学习如何从图像中提取出含有条形码的区域.下面的代码,我们将在Anaconda中采用Python 2.7 完成,当然OpenCV中的图像处理库也是必不可少的. 分 ...

  • python+opencv图像处理(十一)

    图像镜像 图像的镜像指的是将图像以某条线为中心进行镜像对换. 图像的镜像根据翻转的方向可分为水平镜像翻转.垂直镜像翻转和对角镜像翻转3种. 水平镜像翻转指的是将图像以y轴为中心进行左右镜像对换. 垂直 ...

  • python+opencv图像处理(十)

    图像旋转 本篇主要利用opencv的转换函数warpAffine实现图像的平移和旋转. 1.图像旋转 图像旋转即是根据某个中心点进行旋转. 要进行旋转,要找到中心点,要知道旋转角度,opencv提供了 ...

  • (9条消息) OCR预处理:矫正图片中的文本信息(opencv)

    (9条消息) OCR预处理:矫正图片中的文本信息(opencv)

  • 使用OpenCV校准鱼眼镜头-第2部分

    重磅干货,第一时间送达 在昨天的文章中我们介绍了有关如何使用OpenCV校准鱼眼镜头的一些基础知识,并我们在最后留下了一个问题.那么今天我们就来看看这个问题该如何解决. 但是,如果大家遇到以下任何一种 ...

  • OpenCV实战(1)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 最近 ...

  • OpenCV-Python,计算机视觉开发利器

    人工智能,一个已经被谈论了几十年的概念(最早是图灵在1950年提出).如今这几年,相关技术的发展速度是越来越快.高大上如无人驾驶.智能安防.AI辅助诊断,接地气如刷脸支付.内容推荐.自动翻译等,众多领 ...

  • 基于OpenCV的实战:轮廓检测(附代码解析)

    重磅干货,第一时间送达 利用轮廓检测物体可以看到物体的各种颜色,在这种情况下放置在静态和动态物体上.如果是统计图像,则需要将图像加载到程序中,然后使用OpenCV库,以便跟踪对象. 每当在框架中检测到 ...