You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计图像中指定颜色物体的角点数量

实现指定颜色区域角点统计的方案

核心逻辑

要实现按颜色筛选角点,只需要在原有角点检测的基础上增加颜色掩码过滤步骤即可,具体流程如下:

  • 将图像从BGR色彩空间转换为HSV色彩空间,HSV更适合做单一颜色的精准提取
  • 设定目标颜色的HSV阈值范围,生成仅保留目标颜色区域的二值掩码
  • 完成全图角点检测后,逐一校验角点坐标是否落在掩码的有效区域(目标颜色区域)内,仅统计符合条件的角点

完整修改代码

import cv2
import numpy as np
import matplotlib.pyplot as plt

def cornerpoint_by_color(img_path, lower_hsv, upper_hsv):
    # 读取图像
    img = cv2.imread(img_path)
    # 转换为HSV色彩空间
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    # 生成指定颜色的掩码
    mask = cv2.inRange(hsv, lower_hsv, upper_hsv)
    
    # 原有Harris角点检测逻辑
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    gray = np.float32(gray)
    dst = cv2.cornerHarris(gray,5,3,0.04)
    ret, dst = cv2.threshold(dst,0.1*dst.max(),255,0)
    dst = np.uint8(dst)
    ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst)
    criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001)
    corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria)
    
    # 过滤属于指定颜色区域的角点
    valid_corners = []
    for i in range(1, len(corners)):
        x, y = int(corners[i][0]), int(corners[i][1])
        # 判断角点是否在目标颜色掩码范围内
        if mask[y, x] == 255:
            valid_corners.append(corners[i])
            # 标记有效角点为红色
            cv2.circle(img, (x, y), 3, (0, 0, 255), -1)
    
    # 输出统计结果
    print(f"指定颜色区域的角点数量为:{len(valid_corners)}")
    for idx, pt in enumerate(valid_corners):
        print(f"角点{idx+1}坐标:{pt}")
    
    # 转换为RGB格式适配matplotlib显示
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    plt.imshow(img_rgb)
    plt.show()
    return len(valid_corners)

# 调用示例:提取蓝色区域的角点,蓝色HSV范围可根据实际图像调整
lower_blue = np.array([100, 43, 46])
upper_blue = np.array([124, 255, 255])
cornerpoint_by_color('/content/shapes.png', lower_blue, upper_blue)

参数调整说明

  • 如果需要识别其他颜色,只需修改传入的lower_hsv和upper_hsv阈值即可,可以通过取色工具读取目标像素的HSV值,设置上下浮动范围即可
  • 如果出现角点漏检或多检的情况,可以调整cv2.cornerHarris的最后一个参数,或者调整阈值0.1*dst.max()的系数,系数越大保留的角点越少

内容的提问来源于stack exchange,提问作者Asp Lab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:08