2016-05-06 1 views
0

J'extrait les contours d'une image, que vous pouvez voir ici: contourOpenCV comment lisser le contour, ce qui réduit le bruit

Cependant, il a un peu de bruit. Comment puis-je atténuer le bruit? Je l'ai fait un gros plan pour rendre plus clair ce que je veux signifiait enter image description here

Image originale que je l'ai utilisé: enter image description here

code:

rMaskgray = cv2.imread('redmask.jpg', cv2.CV_LOAD_IMAGE_GRAYSCALE) 
(thresh, binRed) = cv2.threshold(rMaskgray, 50, 255, cv2.THRESH_BINARY) 

Rcontours, hier_r = cv2.findContours(binRed,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_SIMPLE) 
r_areas = [cv2.contourArea(c) for c in Rcontours] 
max_rarea = np.max(r_areas) 
CntExternalMask = np.ones(binRed.shape[:2], dtype="uint8") * 255 

for c in Rcontours: 
    if((cv2.contourArea(c) > max_rarea * 0.70) and (cv2.contourArea(c)< max_rarea)): 
     cv2.drawContours(CntExternalMask,[c],-1,0,1) 

cv2.imwrite('contour1.jpg', CntExternalMask) 
+0

Pouvez-vous poster le code utilisé pour créer cette? –

+0

@MartinEvans Modifié! – marco

+0

Que se passe-t-il si vous remplacez cv2.CHAIN_APPROX_SIMPLE par cv2.CHAIN_APPROX_NONE? – tfv

Répondre

1

Essayez un à OpenCV 3.1.0 modernisés . Après quelques adaptations de code pour la nouvelle version comme indiqué ci-dessous, je l'ai essayé avec OpenCV version 3.1.0 et je n'ai vu aucun des effets que vous décrivez.

import cv2 
import numpy as np 

print cv2.__version__ 

rMaskgray = cv2.imread('5evOn.jpg', 0) 
(thresh, binRed) = cv2.threshold(rMaskgray, 50, 255, cv2.THRESH_BINARY) 

_, Rcontours, hier_r = cv2.findContours(binRed,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_SIMPLE) 
r_areas = [cv2.contourArea(c) for c in Rcontours] 
max_rarea = np.max(r_areas) 
CntExternalMask = np.ones(binRed.shape[:2], dtype="uint8") * 255 

for c in Rcontours: 
    if((cv2.contourArea(c) > max_rarea * 0.70) and (cv2.contourArea(c)< max_rarea)): 
     cv2.drawContours(CntExternalMask,[c],-1,0,1) 

cv2.imwrite('contour1.jpg', CntExternalMask) 

enter image description here

+0

J'ai encore quelques problèmes: https://dl.dropboxusercontent.com/u/710615/externalpcb.jpg – marco

+0

Avez-vous déjà trouvé une solution pour cela? Désolé, une vieille question ayant le même problème. @Marco –

+0

@Jonathan: Comme mentionné ci-dessus, les problèmes semblent avoir disparu avec la version OpenCV utilisée ci-dessus. Si ce n'est pas le cas pour vous, veuillez poster un exemple. – tfv