小编len*_*non的帖子

如何使用morphologyEx和drawContours检测空的公园空间?

我有以下图像,其中有无人机捕获的汽车和空停车位。我想检测出空的公园空间,并画一个看起来像预期图像的盒子。

这是我的代码:

import cv2
import numpy as np 
from matplotlib import pyplot as plt
%matplotlib inline 

img = cv2.imread('parking.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)        
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)     
blurred = cv2.bilateralFilter(gray,21,41,41)         
edged = cv2.Canny(blurred,400,600)        
thresh = cv2.adaptiveThreshold(blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 5, 40)    

mask = cv2.bitwise_not(edged)    
thresh = cv2.bitwise_and(thresh,thresh,mask=mask)     
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))    
thresh = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel)    
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 

output = img.copy()     
cv2.drawContours(output, contours, -1, (0,255,0), 1)    
plt.imshow(output)
Run Code Online (Sandbox Code Playgroud)

问题是它检测到所有现有的矩形。如何缩小轮廓以仅检测车辆?

输入图片:

在此处输入图片说明

输出图像:

在此处输入图片说明

我想要获得什么,预期输出:

在此处输入图片说明

python opencv image-processing contour python-3.x

5
推荐指数
1
解决办法
127
查看次数

标签 统计

contour ×1

image-processing ×1

opencv ×1

python ×1

python-3.x ×1