史上最简单&最全&最基础&入门到精通的opencv图像处理 第十八课:图像轮廓

一、代码部分

代码如下(示例):

#图像轮廓
import cv2 #opencv BGR
import matplotlib.pyplot as plt #包导入
import numpy as np

def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()

img = cv2.imread('C:/Users/akaak/Pictures/OpenCV/contours.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv_show(img,'img')
cv_show(thresh,'thresh')
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)


#传入绘制图像,轮廓,轮廓索引,颜色模式,线条厚度
# 注意需要copy,要不原图会变。。。
draw_img = img.copy()
res = cv2.drawContours(draw_img, contours, -1, (0, 0, 255), 2)#-1是识别所有图
cv_show(res,'res')

draw_img = img.copy()
res = cv2.drawContours(draw_img, contours, 0, (0, 0, 255), 2)#0是识别一个图
cv_show(res,'res')

# 轮廓特征
cnt = contours[0]
#面积
print('面积:',cv2.contourArea(cnt))
#周长,True表示闭合的
print('周长:',cv2.arcLength(cnt,True))

二、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

完成图像轮廓检测。

猜你喜欢

转载自blog.csdn.net/qq_45825952/article/details/121610819
今日推荐