Ich habe nach ähnlichen Fragen gesucht, aber nichts hilfreich gefunden, da die meisten Lösungen ältere Versionen von OpenCV verwenden.Wie konvertiert man ein Python-Numpy-Array mit Opencv 2.4 in ein RGB-Bild?
Ich habe ein 3D-Nummernfeld, und ich möchte es als ein BGR-Bild mit OpenCV (CV2) anzeigen und/oder speichern.
Als kurzes Beispiel: Angenommen, ich hatte: speichern und anzeigen
import numpy, cv2
b = numpy.zeros([5,5,3])
b[:,:,0] = numpy.ones([5,5])*64
b[:,:,1] = numpy.ones([5,5])*128
b[:,:,2] = numpy.ones([5,5])*192
Was würde ich tun b als Farbbild ähnlich ist:
cv2.imwrite('color_img.jpg', b)
cv2.imshow('Color image', b)
cv2.waitKey(0)
cv2.destroyAllWindows()
Dies funktioniert nicht , vermutlich weil der Datentyp von b nicht korrekt ist, aber nach gründlicher Suche kann ich nicht herausfinden, wie ich ihn in den richtigen ändern kann. Wenn Sie irgendwelche Zeiger anbieten können, würde es sehr geschätzt werden!
Danke für den Kommentar @beaker! Das Problem in dieser Frage ist jedoch, dass das Poster ein Argument in "imshow()" vergessen hat. Mein Problem ist, dass 'imshow' /' imwrite' das Array numpy nicht wie oben erzeugt. – jmanring220
Möchten Sie es als 'BGR' oder' RGB' speichern? Der Titel und die Frage haben beide. – jmunsch
@ jmanring220 Ja, aber die Antworten zeigen immer noch, wie man ein numpiges Array in eine Matte umwandelt. – beaker