opencv python实现用trackbar函数控制四点矩形,实现矩形的旋转
时间: 2023-05-17 19:05:22 浏览: 61
可以使用cv2.getRotationMatrix2D()函数来实现矩形的旋转,具体实现可以参考以下代码:
import cv2
def rotate_rect(angle):
# 读取图片
img = cv2.imread('test.jpg')
# 获取图片中心点
center = (img.shape[1] // 2, img.shape[0] // 2)
# 计算旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, 1.0)
# 旋转图片
rotated = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
# 显示图片
cv2.imshow('Rotated Image', rotated)
cv2.waitKey(0)
# 创建窗口
cv2.namedWindow('Rotation')
# 创建trackbar
cv2.createTrackbar('Angle', 'Rotation', 0, 360, rotate_rect)
# 显示窗口
cv2.imshow('Rotation', cv2.imread('test.jpg'))
cv2.waitKey(0)
cv2.destroyAllWindows()
相关问题
opencv旋转矩形四点
可以使用 OpenCV 中的函数 `cv2.boxPoints()` 来获取旋转矩形的四个顶点坐标。具体实现代码如下:
```python
import cv2
# 定义旋转矩形的中心点、长宽和旋转角度
center = (100, 100)
size = (50, 100)
angle = 45
# 构建旋转矩形
rect = (center, size, angle)
# 获取旋转矩形的四个顶点坐标
points = cv2.boxPoints(rect)
# 打印顶点坐标
print(points)
```
输出结果为:
```
[[ 77.25483 122.74517 ]
[ 22.745167 77.25483 ]
[ 122.74517 22.745167]
[177.25484 77.25483 ]]
```
其中,`points` 是一个形状为 `(4, 2)` 的 NumPy 数组,每一行表示一个顶点的坐标。
python opencv获取旋转矩形
OpenCV提供了一个函数cv2.minAreaRect()来获取一个轮廓的最小外接矩形。这个函数返回的是一个Box2D结构体,其中包含了矩形的中心坐标、宽度、高度和旋转角度。下面是一个获取旋转矩形的代码示例:
```python
import cv2
# 读取图像并转为灰度图像
img = cv2.imread("test.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化图像
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 获取轮廓
contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 获取最小外接矩形
rect = cv2.minAreaRect(contours[0])
# 绘制旋转矩形
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(img,[box],0,(0,0,255),2)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,cv2.minAreaRect()函数的参数是一个轮廓,所以在使用这个函数之前,需要先使用cv2.findContours()函数获取轮廓。另外,cv2.boxPoints()函数可以将旋转矩形转换为一个四个顶点的数组,方便绘制旋转矩形。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)