OpenCV实例:方形检测
本篇文章将为大家介绍如何使用OpenCV库进行方形检测的实现。通过该实例,我们可以轻松地检测图片或视频中的方形物体。
实现代码如下:
import cv2
import numpy as np
# 加载测试图片
img = cv2.imread('test.png')
# 灰度化处理
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize = 3)
cv2.imshow('edges', edges)
# 轮廓检测
contours, hierarchy = cv2.findContours(edges,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
# 寻找方形轮廓
squares = []
for i in range(len(contours)):
cnt = contours[i]
area = cv2.contourArea(cnt)
if area > 500 and area < 5000:
perimeter = cv2.arcLength(cnt,True)
approx = cv2.approxPolyDP(cnt,0.02*perimeter,True)
if len(approx) == 4 and cv2.isCont