2017-08-15 2 views
0

enter image description herein Bilder?

Wie Sie sehen können, habe ich ein Bild von einigen Formeln

aber es hat einige interferentiellen Kurve, so wie kann ich es entfernen?

Ich versuchte zu erodieren und zu erweitern, aber scheiterte.

Antwort

0

Sie können diese Linien entfernen, indem Sie Bild einfügen verwenden. Aber zuerst eine Maske machen. Werfen Sie einen Blick auf this- http://docs.opencv.org/trunk/df/d3d/tutorial_py_inpainting.html

Ich habe gerade versucht, ein Klarsicht Made a rough mask

Dieser Code (Python) hilft Ihnen, machen Sie eine Maske:

import cv2 
import numpy as np 
imgg=cv2.imread("your_image.png") 
flag = False 
def draw(event,x,y,flags,param): 
    global flag 

    if event == cv2.EVENT_LBUTTONDOWN: 
     flag = True 

    elif event == cv2.EVENT_MOUSEMOVE: 
     if flag == True: 
       cv2.circle(img,(x,y),2,(255,255,255),-1) 

    elif event == cv2.EVENT_LBUTTONUP: 
     flag = False 

img = np.zeros(imgg.shape[:2], np.uint8) 
cv2.namedWindow('image') 
cv2.setMouseCallback('image',draw) 

while(1): 
    cv2.imshow('image',imgg) 
    cv2.imshow("mask",img) 
    if(cv2.waitKey(1))==27: 
     break 
cv2.imwrite("mask.png",img) 
cv2.destroyAllWindows() 
+0

Vielen Dank für Ihre Antwort, lese ich den Link und finde, dass ich die Maske brauche. Aber jetzt ist die Schwierigkeit für mich, die Maske zu finden, wenn ich eine Maske habe, brauche ich keine Inpainting, ich setze sie einfach auf den Hintergrund oder setze sie einfach auf die Zahl Farbe – Liujiajun

+0

Wenn Sie sagen, dass Sie die Maskenwerte gleich zu den benachbarten Pixeln in machen Ihr Image, das ist was für Inpainting. Auch Sie können Maske nicht finden .. Sie müssen einen entsprechend Ihren Interferenzen machen. Die meisten anderen Methoden wie Erosion usw. werden sich auch auf Ihre Formeln auswirken und das Image verschlechtern –