python opencv

open cv python
把白色背景中的
红的三角形 框住
用黑色线

img


import cv2
import numpy as np

# 读取图片
img = cv2.imread("white_bg_red_triangle.jpg")

# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 阈值化
ret, thresh = cv2.threshold(gray, 127, 255, 0)

# 寻找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# 找到面积最大的轮廓
max_area = 0
max_index = 0
for i in range(len(contours)):
    area = cv2.contourArea(contours[i])
    if area > max_area:
        max_area = area
        max_index = i

# 用黑色线框住红色三角形
cv2.drawContours(img, contours, max_index, (0, 0, 0), 3)

# 显示图片
cv2.imshow("result", img)
cv2.waitKey(0)
cv2.destroyAllWindows()