from email.mime import image
import imghdr
from turtle import title
import cv2
import matplotlib.pyplot as plt
import numpy as np
def cv_show(img,name):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img=cv2.imread('jihe.jpg') # 读取图片
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转换为灰度图
ret,thresh=cv2.threshold(gray,55,255,cv2.THRESH_BINARY) # 对图片进行二值化 参数为阈值 图片大于阈值的像素点设置为255 小于阈值的像素点设置为0
cv_show(thresh,'after_threshold')
contours,bierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) # 轮廓检测 contours是轮廓的坐标 bierarchy是轮廓的结构 retr_tree是检测所有轮廓 chain_approx_none是检测所有轮廓
draw_img=img.copy()
res=cv2.drawContours(draw_img,contours,-1,(0,0,255),2) # 参数为输入图像 轮廓 填充颜色 线宽 -1表示填充所有轮廓 参数为输出图像
cv_show(res,'after_drawContours')
#保存
cv2.imwrite('jihe_contours.jpg',res)
for i in range(len(contours)):
cnt=contours[i]
print('轮廓',i,'的面积为',cv2.c
【opencv】轮廓近似
最新推荐文章于 2025-04-15 22:44:21 发布