openCV求轮廓面积占比

本文详细介绍了一种基于高斯模糊降噪、灰度转换及Canny边缘检测算法的图像处理方法,并通过轮廓发现和面积计算展示了如何进一步分析边缘检测后的图像区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def edge_demo(image):
    blurred = cv.GaussianBlur(image,(3,3),0)#高斯模糊降噪
    gray = cv.cvtColor(blurred,cv.COLOR_BGR2GRAY)#灰度图
    edge_output = cv.Canny(gray,50,150)#不求梯度也可以
    return edge_output
def edge_area(image):
    contours, hierarchy = cv.findContours(image, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)# 轮廓发现
    dst = cv.cvtColor(image,cv.COLOR_GRAY2BGR)
    cv.drawContours(dst, contours, -1, (0, 0, 255), 3)  # 画出轮廓
    area = 0
    for c in range(len(contours)):
        area += cv.contourArea(contours[c])# 面积
    cv.putText(dst, "area/sum:" + str(area/image.size), (50, 50), cv.FONT_HERSHEY_SIMPLEX, .7, (255, 0, 0), 2)#显示
    cv.imshow("t3",dst)
    
src = cv.imread("t1.jpg")
edge_output=edge_demo(src)
edge_area(edge_output)

结果是这个:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值