使用cv2.line()函数绘制一个边长为200个像素的等边三角形
时间: 2024-05-04 09:15:13 浏览: 9
可以这样绘制:
```
import cv2
import numpy as np
# 创建一个黑色背景画布
canvas = np.zeros((500, 500, 3), dtype=np.uint8)
# 定义三角形的三个顶点
pt1 = (250, 100)
pt2 = (50, 400)
pt3 = (450, 400)
# 绘制三角形
cv2.line(canvas, pt1, pt2, (255, 255, 255), 2)
cv2.line(canvas, pt2, pt3, (255, 255, 255), 2)
cv2.line(canvas, pt3, pt1, (255, 255, 255), 2)
# 显示图像
cv2.imshow("Triangle", canvas)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
使用cv2.line()函数绘制九个嵌套的矩形,窗口大小为320*200
好的,根据您的要求,我可以为您提供以下代码来使用cv2.line()函数绘制九个嵌套的矩形,窗口大小为320*200:
```python
import cv2
# 创建一个黑色的图像
img = np.zeros((200,320,3), np.uint8)
# 循环绘制嵌套的矩形
for i in range(10):
# 计算起始点和结束点坐标
top_left = (10*i, 10*i)
bottom_right = (320-10*i, 200-10*i)
# 绘制矩形
cv2.rectangle(img, top_left, bottom_right, (255,255,255), 1)
# 绘制对角线
cv2.line(img, top_left, bottom_right, (255,255,255), 1)
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
希望这可以解决您的问题,如果您还有其他问题,请随时提出。
请使用cv2.findContours函数写一个识别黑色矩形的python程序
好的,这里是一个使用cv2.findContours函数识别黑色矩形的Python程序:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 转为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓
for contour in contours:
# 计算轮廓周长
perimeter = cv2.arcLength(contour, True)
# 近似轮廓
approx = cv2.approxPolyDP(contour, 0.04 * perimeter, True)
# 如果轮廓是矩形
if len(approx) == 4:
# 确保矩形是黑色的
x, y, w, h = cv2.boundingRect(contour)
roi = image[y:y+h, x:x+w]
hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
lower_black = np.array([0, 0, 0])
upper_black = np.array([180, 255, 30])
mask = cv2.inRange(hsv, lower_black, upper_black)
if cv2.countNonZero(mask) == 0:
# 在图像上绘制矩形
cv2.drawContours(image, [contour], -1, (0, 255, 0), 2)
# 显示图像
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个程序中,我们首先读取了一张图像,并将其转化为灰度图像。然后使用cv2.threshold函数将其二值化,并使用cv2.findContours函数查找轮廓。接下来,我们遍历每个轮廓,并使用cv2.approxPolyDP函数将其近似为一个多边形。如果近似后的多边形有4个顶点,则我们认为它是一个矩形。然后,我们检查矩形是否是黑色的,如果是,则在图像上绘制矩形。最后,我们显示结果图像。