2016-10-19 91 views
0

我有类似的背景噪声类似的图像。 使用OpenCV,有没有办法检测覆盖标签区域的区域(检测轮廓)。 或者至少是否有可能检测到覆盖标签区域的“粗糙”边框?OpenCV:检测覆盖标签的边框

enter image description here

+2

怎么样使用了较高的门槛,然后找出最大的连通分量? –

+1

可否请您澄清一下,您想在不同的照片上找到类似的标签?或者你想只选择自己的标签并删除背景? –

+0

我想选择标签并删除背景。一旦我提取包含标签的区域,我可以使用SURF/SIFT运行它以找到相似的图像。我已经覆盖了第二部分,这只是背景噪音,我的命中率太低 –

回答

2

我试图完成这项任务,这可能不会让一概而论这种算法主要问题是如何选择合适的轮廓。我有两个值(轮廓长度)3108和2855.您可以尝试取出所有照片(如果它们距离相机距离相近),并在3050和2750之间设置所需轮廓的阈值,但不能保证它可以正常工作。因此,这是我怎么去除背景(全码):

import cv2 
import numpy as np 


image=cv2.imread('C:/Users/srlatch/Desktop/of8cA.png') 
img = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 

def clear_vertical(img, target): 
    for i in range(img.shape[1]): 
     for j in range(img.shape[0]): 
      if img[j][i]: 
       break 
      else: 
       target[j][i]=[0,0,0] 

def clear_horizontal(img, target): 
    for i in range(img.shape[0]): 
     for j in range(img.shape[1]): 
      if img[i][j]: 
       break 
      else: 
       target[i][j]=[0,0,0] 



def turn_off(img): 
    for i in range(img.shape[0]): 
     for j in range(img.shape[1]): 
      img[i][j]=0 

def turn_on(img,result): 
    for i in result: 
     img[i[0][1]][i[0][0]]=255 


def f(list): 
    max=[] 
    for i in list: 
     if len(i)>len(max): 
      max=i 
    return max 

def rem(ls, thresh): 
    new_c=[] 
    for i in ls: 
     if len(i)>thresh: 
      new_c.append(i) 
    return new_c 

def rn(ls,min,max): 
    ret=[] 
    for i in ls: 
     if len(i)<max and len(i)>min: 
      print(len(i)) 
      ret.append(i) 
    return ret 

#ret,tresh = cv2.threshold(img,40,255,cv2.THRESH_BINARY) 
kernel = np.ones((2,2),np.uint8) 
new=cv2.Canny(img,190,1) 
dilated=cv2.dilate(new, kernel) 
tresh,c,hr=cv2.findContours(dilated,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
c=rn(c, 2600, 4000) 
turn_off(new) 
turn_on(new,c[0]) 

clear_horizontal(new,image) 
clear_vertical(new,image) 

cv2.imwrite('result_image_end.png',image) 

cv2.imshow('wnd',image) 
cv2.waitKey(100) 

我已经尝试不同的方法,但这似乎工作比别人更好。我相信在opencv存在函数可以取代clear_horizo​​ntally和垂直,但我不记得它的名字。希望能帮助到你! enter image description here

enter image description here