python+opencv寻找图像中类似长方形并计算图形面积周长和中心点

python+opencv寻找图像中类似长方形并计算图形面积周长和中心点

import cv2

def detect_rectangle(image_path):
    # 读取图像
    image = cv2.imread(image_path)
    # 转换为灰度图像
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 进行边缘检测
    edges = cv2.Canny(gray, 50, 150)
    # 查找轮廓
    contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

    for contour in contours:
        # 计算轮廓的面积
        area = cv2.contourArea(contour)
        # 如果轮廓的面积小于一个阈值,认为其无效
        if area < 100:
            continue
        # 计算轮廓的周长
        perimeter = cv2.arcLength(contour, True)
        # 进行多边形逼近,得到近似的轮廓
        approx = cv2.approxPolyDP(contour, 0.02 * perimeter, True)
        # 如果轮廓的近似形状是长方形(4个顶点),则处理该物体
        if len(approx) == 4:
            # 计算中心点坐标
            M = cv2.moments(approx)
            center_x = int(M["m10"] / M["m00"])
            center_y = int(M["m01"] / M["m00"])
            # 在图像上绘制中心点
            cv2.circle(image, (center_x, center_y), 5, (0, 255, 0), -1)

    # 显示结果图像
    cv2.imshow("Result", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 调用函数进行长方形检测和中心点获取
detect_rectangle("image.jpg")

你可能感兴趣的:(opencv,opencv,python,计算机视觉)