检测图像上的半透明矩形叠加层

时间:2018-11-08 23:25:00

标签: image-processing computer-vision object-detection cv2

我有一些包含透明矩形叠加层的图像,类似于以下图像:Image1 Image2。我的目标是检测这些矩形框是否存在(位置无关紧要)。这些框将始终具有与图像侧面平行的边缘。

假设:

  • 现在知道如何绘制透明矩形的传递函数
  • 矩形的边也将与图像平行

尝试的解决方案1:颜色检测

到目前为止,我已经尝试通过cv.threshold进行颜色检测,以及在多个颜色空间(HSV,LUV,XYZ等)上对cv2.inRange()使用带通滤波器。颜色检测的问题在于,我还捕获了太多的噪声,因此无法有效地仅调整透明区域的像素。我尝试使用cv2.bitwiseAnd铺设口罩,但仍然无法将噪音调低到可以忽略的状态。我只尝试使用形态学转换来隔离大组像素,但这仍然失败。

尝试的解决方案2:边缘检测+边缘验证

我第二次尝试检测盒子的方法包括应用cv2.bilateralFilter,然后通过cv2.Cannycv2.HoughLinesP生成轮廓线。尽管我检测到大量与透明框相关的边缘,但我也得到了许多其他边缘。

要滤除虚假边缘,我将每个线段作为对象并检查左右两侧的一些样本像素。通过应用与我认为传递函数(cv2.addWeighted)类似的东西,我检查了是否可以重现相似的值。不幸的是,这还不能很好地说明透明框的边缘与“真实边缘”之间的区别。 Result From Edge Detection

任何关于如何检测这些盒子的想法都将受到赞赏!

0 个答案:

没有答案