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('lena.jpg') # 读取图片
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转换为灰度图
ret,thresh=cv2.threshold(gray,127,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('lena_contours.jpg',res)
【opencv】轮廓检测结果
于 2022-01-20 22:32:24 首次发布