2017-10-05 4 views
0

Ich Berechnung des Histogramms eines Graustufenbild, und ich möchte den Bereich der Graustufen-Pixel auf Schwarz konvertieren. Ich verwende den folgenden Code, um die histogram.`alle Graustufen-Pixelwert zu schwarz

image = cv2.imread('./images/test/image_5352.jpg') 
cv2.imshow("image", image) 
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
cv2.imshow("gray", gray) 

hist = cv2.calcHist([gray], [0], None, [256], [0, 256]) 
plt.figure() 
plt.title("Grayscale Histogram") 
plt.xlabel("Bins") 
plt.ylabel("# of Pixels") 
plt.plot(hist) 
plt.xlim([0, 256]) 
key = cv2.waitKey(0) 
cv2.destroyAllWindows() 

Histogram of the image

Zum Beispiel abzurufen i alle Pixel mit einem Wert von 50 bis schwarz konvertieren möchten.

+0

Ziemlich sicher, dass das ist, was Sie wollen, wenn es ist, können Sie diese Frage mit den Besonderheiten zu beantworten http: //answers.opencv .org/question/97416/ersetzen-a-Range-of-Farben-mit-specific-Farbe-in-python/ – GPPK

+0

ich glaube opencv gibt numpy Arrays für Bilder. Sie können boolean Indizierung, um das Bild zu manipulieren: 'grau [grau == 50] = 0 'sollte funktionieren. – umutto

+0

Was ist mit Pixeln von 49? Und 51? –

Antwort

0

Vielleicht ist Bild Thresholding, was Sie wollen ...

Wenn Pixelwert größer ist als ein Schwellenwert ist, es ein Wert zugewiesen wird (weiß sein kann), sonst wird es einen anderen Wert zugewiesen (kann schwarz sein).

cv2.threshold(img,127,255,cv2.THRESH_BINARY)

Der obige Code ist in C++, aber leicht genug, um zu konvertieren. Der erste Parameter ist das fragliche Bild, der zweite ist der Schwellenwert, der dritte ist, was Pixelwerte zugewiesen werden sollen, wenn er den Schwellenwert übersteigt, und der vierte ist der Schwellenwerttyp, in dem es mehrere gibt:

Weiterführende Literatur: see here

+0

Danke für die Antwort, aber ich möchte nicht alle Pixel in sich ändern schwarz und weiß wollen nur ein paar Pixel in bestimmten Bereich ändern –

+0

Ah okay, ich missread dann. Könnten Sie nicht einfach nur senden? https://docs.scipy.org/doc/numpy-1.13.0/user/basics.broadcasting.html – Sam