Konvertieren von BufferedImage in Mat in opencv

Wie kann ich ein BufferedImage in OpenCV in eine Matte konvertieren? Ich benutze den Java-Wrapper für OpenCV (nicht JavaCV). Da ich neu bei OpenCV bin, habe ich einige Probleme, die Funktionsweise von Mat zu verstehen.

Ich möchte so etwas machen. (Gestützt auf die Antwort von Ted W.):

          BufferedImage image = ImageIO.read(b.getClass().getResource("Lena.png"));

          int rows = image.getWidth();
          int cols = image.getHeight();
          int type = CvType.CV_16UC1;
          Mat newMat = new Mat(rows,cols,type);

          for(int r=0; r<rows; r++){
              for(int c=0; c<cols; c++){
                  newMat.put(r, c, image.getRGB(r, c));
              }
          }

          Highgui.imwrite("Lena_copy.png",newMat);

Das geht nicht. "Lena_copy.png" ist nur ein schwarzes Bild mit den richtigen Abmessungen.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage