Praktikum Bildbearbeitung

Implementierung Hauptprogramm

Bereichsbasierte Schleife

in main.cpp:


  bba::Operations ops = bba::parse_arguments(argc, argv);
  for (const bba::Operation & op : ops) {
    // TODO
  }
      

switch case

in main.cpp:


    switch (op.action) {
      case bba::ACTION_INPUT:
        // TODO
      break;
      case bba::ACTION_OUTPUT:
        // TODO
      break;
      …
    }
      

Bild Laden

in main.cpp:


        cv::Mat img = cv::imread(op.filename);
      
Dokumentation cv::imread.

Bild Speichern

in main.cpp:


        cv::imwrite(op.filename, img);
      
Dokumentation cv::imwrite.

Ein Bild Laden und Speichern

in main.cpp:


  cv::Mat img;
  for (…) {
    switch (…) {
      case bba::ACTION_INPUT:
        img = cv::imread(…);
      break;
      case bba::ACTION_OUTPUT:
        cv::imwrite(…, img);
      break;
      …
    }
  }
      

Bilderstapel

in main.cpp:


#include <stack>
…
  std::stack<cv::Mat> stack;
  cv::Mat img;
  for (…) {
        …
        img = cv::imread(…);
        stack.push(img);
        …
        img = stack.top();
        stack.pop();
        cv::imwrite(…, img);
        …
  }
      
Dokumentation Sammlungen der Standardbibliothek, std::stack.

Mehrere Bilder Laden und Speichern

in main.cpp:


        …
        img = cv::imread(…);
        stack.push(img);
        …
      
korrigieren zu

        …
        {
          cv::Mat img = cv::imread(…);
          stack.push(img);
        }
        …

      
Dokumentation Zuweisungsoperator von cv::Mat.