Ich habe nicht versucht OpenCV aktive Konturen verwenden, aber die Tatsache, dass Sie in der Nähe von Schwarz haben und in der Nähe von weißer Kontur entlang der Bildkanten wahrscheinlich nicht
(Eingangsbild in den Kommentaren oben beschrieben) hilft 
(dies ist ein opencv + python Prototyp)
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('skin.png')
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
red = rgb_img[:,:,0]
height, width, channels = rgb_img.shape
Maske erstellen und anwenden-fuelle
mask = np.zeros((height+2, width+2), np.uint8)
flooded = red.copy()
flags = 4 | cv2.FLOODFILL_MASK_ONLY
cv2.floodFill(flooded, mask, (8, 8), 1, 2, 2, flags)
plt.imshow(1-mask)
plt.colorbar()
plt.show()
ein Bit eines morphologischen cleanup
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(7,7))
omask = cv2.morphologyEx(1-mask, cv2.MORPH_OPEN, kernel)
plt.imshow(omask)
plt.colorbar()
plt.show()
finden Konturen:
contours, hierarchy = cv2.findContours(omask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
größte Fläche Kontur finden:
largest_contour = []
largest_area = 0
for contour in contours:
area = cv2.contourArea(contour)
if area > largest_area:
largest_area = area
largest_contour = contour
Anzeigefolge (eine CH Stimm von Rechteck und Umrisse):
x,y,w,h = cv2.boundingRect(largest_contour)
cv2.drawContours(rgb_img, [largest_contour], -1, (0, 128, 128), 3)
cv2.rectangle(rgb_img, (x,y), (x+w, y+h), (0, 0, 0), 2)
plt.imshow(rgb_img)
plt.show()

Dies ist eine sehr einfache und einfache Lösung, die nicht perfekt ist. Es kann mit grabcut (auf Kosten der Rechenkomplexität) oder anderen Techniken verbessert werden.
können Sie bitte ein Beispielbild posten? Es wird auch nützlich sein, den Code zu sehen, den Sie versucht haben, das Problem zu lösen. –
Großartig. Beispielbild, das ich versuche, Grenze um das Objekt im Bild zu zeichnen: https://www.dropbox.com/s/c45hc2ph2kqot8m/Screen%20Shot%202016-04-19%20at%201.27.38%20PM.png ? dl = 0 Code, ich habe das gleiche in Dropbox zur besseren Ansicht hochgeladen. Ich habe versucht, mithilfe der Active-Contour-Algorithmus-Gleichung XY-Koordinaten entlang von Grenzen auf dem Objekt innerhalb des Bildes zu erkennen. Code-Link, Swift-Datei: https://www.dropbox.com/s/6p4ff0wosynxmte/pixelRead.swift?dl=0 Gibt es einen gemeinsamen Fehler bei der aktiven Kontur-Methode, dass es falsche XY-Koordinaten gibt? –
Wie eng sollte die Grenze sein? Erwarten Sie eine tatsächliche Segmentierung? Begrenzungsbox? Irgendwas dazwischen? –