如下例子,实现图片关于中心旋转任意角度,及坐标变换

import os
import os.path
import cv2
import numpy as np
from math import cos,sin,pi
def rotate_angle(angle,image,center_xy,wh):(image_h, image_w) = image.shape[:2]cx, cy = image_w / 2, image_h / 2r_image=rotate_image(image, angle)x,y=center_xyr_center_xy=rotate_xy(x,y,angle,cx,cy)r_wh=rotate_wh(center_xy,wh,angle,cx,cy)return r_image,r_center_xy,r_whdef rotate_image(image, angle):# grab the dimensions of the image and then determine the# center(h, w) = image.shape[:2](cX, cY) = (w // 2, h // 2)# grab the rotation matrix (applying the negative of the# angle to rotate clockwise), then grab the sine and cosine# (i.e., the rotation components of the matrix)M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)(nW, nH)=(w,h)# perform the actual rotation and return the imagereturn cv2.warpAffine(image, M, (nW, nH))
def rotate_wh(center_xy,wh,angle,cx,cy):'''angle = angle*pi/180print('angle,cos(angle)',angle,cos(angle))r_wh=np.abs(wh*cos(angle))'''s_x,s_y=center_xy-wh/2e_x,e_y=center_xy+wh/2r_s_x_s_y=rotate_xy(s_x,s_y,angle,cx,cy)r_s_x_e_y=rotate_xy(s_x,e_y,angle,cx,cy)r_e_x_s_y=rotate_xy(e_x,s_y,angle,cx,cy)r_e_x_e_y=rotate_xy(e_x,e_y,angle,cx,cy)r_x_y=np.array([r_s_x_s_y,r_s_x_e_y,r_e_x_s_y,r_e_x_e_y])min_xy=np.min(r_x_y,axis=0)max_xy=np.max(r_x_y,axis=0)return max_xy-min_xy
def rotate_xy(x,y,angle,cx,cy):"""点(x,y) 绕(cx,cy)点旋转"""angle = angle*pi/180x_new = (x-cx)*cos(angle) - (y-cy)*sin(angle)+cxy_new = (x-cx)*sin(angle) + (y-cy)*cos(angle)+cyreturn x_new,y_newdef save_image(image_path,image):cv2.imwrite(image_path,image)print('save image to path:',image_path)image=cv2.imread('C:/Develop/AI/datasets/chest_ct/images/test2/688604_0.jpg')
image_rect=image*1
center_xy=np.array([150,250])
wh=np.array([100,50])
s_x,s_y=center_xy-wh/2
e_x,e_y=center_xy+wh/2
s_x,s_y,e_x,e_y=int(s_x),int(s_y),int(e_x),int(e_y)
cv2.rectangle(image, (s_x,s_y), (e_x,e_y), (0,255,255), 1)angle=360
r_image,r_center_xy,r_wh=rotate_angle(angle,image,center_xy,wh)s_x,s_y=r_center_xy-r_wh/2
e_x,e_y=r_center_xy+r_wh/2
s_x,s_y,e_x,e_y=int(s_x),int(s_y),int(e_x),int(e_y)
cv2.rectangle(r_image, (s_x,s_y), (e_x,e_y), (0,0,255), 1)
cv2.imwrite('C:/Develop/AI/datasets/chest_ct/images/test2/688604_0_rotate.jpg', r_image);

运行结果:黄色框为原图的坐标,转换后获取包含其的红色的框输出

参考博文:

图像旋转--矩阵变换

opencv+python3.6图像旋转、并保持图像像素大小不变、不被裁剪(旋转90/180/270度

opencv图片旋转关于中心旋转任意角度与坐标转换相关推荐

  1. unity物体自身轴旋转_unity3D实现物体任意角度自旋转

    本文实例为大家分享了unity3D实现物体任意角度自旋转的具体代码,供大家参考,具体内容如下 主要涉及函数: Input.GetAxis("Mouse x") 可取得鼠标横向(x轴 ...

  2. c 语言drawtext字体旋转,C# GDI+文字画图 添加任意角度文字(文字旋转是中心旋转,角度顺时针为正)...

    public Bitmap AddText(string DrawText) { Bitmap bmp = new Bitmap(350, 300); Graphics g = Graphics.Fr ...

  3. HTML图片在div中心旋转+变色 鼠标移除后 慢慢恢复原样

    //鼠标移除后 慢慢恢复原样 列   th th{   transition: all 2s;  } th:hover{ //变为原来的几倍大小 transform: scale(1.4); } &l ...

  4. C# 使用 GDI+ 实现添加中心旋转(任意角度)的文字

    这篇文章是 GDI+ 总结系列的第三篇,如果对 GDI+ 的基础使用不熟悉的朋友可以先看第一篇文章<C# 使用 GDI+ 画图>. 需求 需求是要实现给图片添加任意角度旋转的文字,文字的旋 ...

  5. 任意角度旋转图片的ground truth目标检测框

    任意角度旋转图片的ground truth目标检测框 (感谢前辈)转自:https://zhuanlan.zhihu.com/p/72129125 因为检测一个物体的时候需要对目标进行多个任意角度的旋 ...

  6. Word图片也能随意旋转(转)

    Word图片也能随意旋转(转) 以前往Word中插入图片的时候,如果需要将图片旋转一定的角度,只能在别的软件中将图片先处理好,然后再插入到Word中.如果在Word中,能够像旋转自选图形那样,自由旋转 ...

  7. JAVA对图片的任意角度旋转,以及镜像操作

    package relevantTest; /*  * 该代码实现了对图像的水平镜像变换,垂直镜像变换,任意角度旋转,jtf的实时监控,以及对图像的缩放变换,以及按钮的若隐若现效果.  * 在对图像进 ...

  8. java如何利用rotate旋转图片_JAVA对图片的任意角度旋转,以及镜像操作

    package relevantTest; /* * 该代码实现了对图像的水平镜像变换,垂直镜像变换,任意角度旋转,jtf的实时监控,以及对图像的缩放变换,以及按钮的若隐若现效果. * 在对图像进行任 ...

  9. java 旋转图片_Java实现图片翻转以及任意角度旋转

    最近几天在做一个项目,因为涉及到了图片(绝大部分都不是整图,是把一张张的大图切成小图,也就是Title)的翻转以及90°旋转,弄得焦头烂额.在网上搜索好几天,发现用到的方法都是比较公式化的,对于只是在 ...

最新文章

  1. mysql启动、关闭与登录
  2. 服务器无法执行该事务_分布式事务、MVCC、事务隔离级别
  3. Docker极简入门
  4. Jedis使用java连接Redis
  5. 原创设计师交流平台|集设作品传播和推荐的地方
  6. 任意电脑登录MySQL_使用批处理命令注册运行mysql数据库,无需注册mysql服务,可以在任意电脑登录使用...
  7. java http data chunk_HTTP协议之Chunked解析
  8. 在Windows Server 2008 R2(64位)上安装SharePoint 2007出现的一个错误的解决方法
  9. Windows Mobile开发的一些小技巧(持续更新)
  10. 20130828 到底我能赚多少钱?
  11. idea全局主题_2020年最新-IDEA最详细配置(配图文收藏版配置)
  12. Spring框架学习---Spring Framework上篇
  13. 年终工作总结汇报和述职报告ppt模板,内含范文可参考,精选20套可下载
  14. 三角函数计算,Cordic 算法入门
  15. 【codeforces 894A】QAQ
  16. vi使用手册(zt)
  17. 热门表情包+头像+壁纸自动采集多分类微信小程序源码下载支持多种流量主模式
  18. 机器学习预测世界杯球队冠
  19. 杨辉三角详细解析(C语言)
  20. uwb无线定位系统的原理和介绍

热门文章

  1. 如何打开*.ASA文件!
  2. 基于python的网络爬虫搜索引擎的设计
  3. 从IPage 中取值和赋值
  4. 关于武汉理工大学-Winner对成绩复评结果
  5. UE4 材质笔记之岩石(法线初级应用)
  6. STM32学习第一周之 循环显示RGBLED的七种颜色
  7. python解锁电脑屏幕_电脑屏幕水印之Python
  8. 数的定义 【第二章 数的定义】(数理哲学导论)
  9. 代号“TRUEngine”:GE航空与微软合作推出区块链跟踪飞机零件
  10. 工程项目管理信息系统是基于计算机,基于建筑工程施工的项目管理信息系统的研究.doc...