计算机视觉第四课:寻找轮廓(自动框出所有物体)
·
先上代码
import cv2
import numpy as np
# 1. 读取图片
img = cv2.imread("test.jpg")
# 2. 预处理:灰度 + 模糊(必须做,不然轮廓很乱)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
# 3. Canny边缘检测
canny = cv2.Canny(blur, 50, 150)
# 4. 寻找轮廓(核心!)
contours, hierarchy = cv2.findContours(
canny, # 边缘图
cv2.RETR_EXTERNAL, # 只找最外层轮廓
cv2.CHAIN_APPROX_SIMPLE # 简化轮廓点(提速)
)
# 打印找到几个物体
print(f"找到 {len(contours)} 个物体轮廓!")
# 5. 把所有轮廓画出来(红色,粗细2)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
# 6. 显示结果
cv2.imshow("Canny Edge", canny)
cv2.imshow("Detected Contours", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1. 寻找轮廓
cv2.findContours(边缘图, 模式, 方法)
2. 画轮廓
cv2.drawContours(原图, 轮廓列表, 画第几个, 颜色, 粗细)
-1:画所有轮廓
3. 运行效果

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)