#-*- coding:utf-8 -*- import cv2 import numpy as np #1.导入图像 #img = cv2.imread("home.jpg",0) #因为还有在原始图像绘制轮廓,不能读入灰度图像 img = cv2.imread("home.jpg") img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #2.二值化处理, ret,thresh = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY) #3.查找轮廓 image,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #第1参数:输入图像 #第2参数:轮廓检索方式 #第3参数:轮廓近似方法 cv2.CHAIN_APPROX_SIMPLE(矩形框) cv2.CHAIN_APPROX_NONE(点) #第1返回值 图像 #第2返回值 轮廓(是list列表,寸纯图像中的所有轮廓,每个轮廓是个Numpy数组(x,y)) #第3返回值 轮廓的层析结构 #4.绘制轮廓 #imgage = cv2.drawContours(img,contours,-1,(0,255,0),2) #第1参数:原始图像 # 第2参数:轮廓,1个python列表 # 第3参数:轮廓的索引(-1时绘制所有轮廓) # 第4参数:轮廓颜色 # 第5参数:轮廓厚度 #5.绘制外界矩形 for cnt in contours: #从list列表取出每个轮廓 if cv2.contourArea(cnt) < 1500: continue x,y,w,h = cv2.boundingRect(cnt) #x,y 矩形顶点(左上角) w,h(矩形宽高) img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) cv2.imshow(‘dilation‘,img) cv2.waitKey(0) cv2.destroyAllWindows()
时间: 2024-10-11 11:49:47