Ich habe transparentGUI.png Bild mit transparentem Hintergrund - in GIMP es so aussieht:Kann nicht transparentes Bild in OpenCV laden und Overlay
Wenn ich es in OpenCV laden, indem Mat imgColorPanel = imread("transparentGUI.png", -1);
und dann zeige es durch imshow("widok", imgColorPanel);
an, ich kann dieses Bild mit weißem Hintergrund sehen (was falsch ist, weil es sollte transparent sein):
Irgendwann möchte ich dieses Bild (mit transparentem Hintergrund) auf Kamera aufgenommenen Bild überlagern. Wenn ich es mit anderen Bildern mache, die Hintergrund haben (also ist es nicht transparent) - dann ist es richtig überlagert.
Allerdings, wenn ich mit Konsole Fehlern transparentGUI.png Bild auf aufgenommene Kamerabild durch addWeighted(imgColorPanel, 0.8, imgOriginal, 0.6, 0, imgOriginal);
, Programm stürzt zu überlagern will:
sowie Debugging-Fehler:
Alles funktioniert, wenn ich Bild mit transparentem Hintergrund laden und anzeigen möchte. Ich nehme an, dass es ein Konflikt mit imgOriginal
sein kann, weil es in HSV ist - ich baue Programm für Objekterkennung durch HSV-Farben, also kann ich es nicht ändern. Ist es in Ordnung, das HSV-Bild mit dem BGRA-Bild zu überlagern (das Transparente)? Der Standard-Farbbereich von OpenCV ist BGR, also wird auch das Kamera-Capture-Bild in HSV konvertiert, dann kann ich es mit einem anderen Bild, das BGR ist, überlagern - also denke ich, dass etwas anderes ein Problem sein muss.
Wie konvertiert man imgOriginal, um dann 4 Kanäle zu haben? Ich habe versucht, 'cvtColor (imgOriginal, imgOriginal, COLOR_HSV2RGB_FULL);', aber es verursacht Absturz. Es gibt keine ** COLOR_HSV2RGBA ** Option in der 'cvtColor()' Funktion, um es von einem Farbraum in einen anderen zu konvertieren - was damit zu tun? – Chris92