Skip to content

PhilippLue/mdaw12

Repository files navigation

#OpenCV

Codebeispiele zur OpenCV Library. Für die Ausführung der Beispiele ist es notwendig die iOS Version zum Projekt hinzuzufügen.

##Allgemeines

In diesen Beispielen wird die Frontkamera verwendet.

self._videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionFront;

Um die Rückkamera zu verwenden ändern Sie die defaultAVCaptureDevicePosition in viewDidLoad auf AVCaptureDevicePositionBack

self._videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack;

Um die Auflösung der Bilder bei der Aufnahme zu verändern wählen Sie die entsprechende Auflösung als defaultAVCaptureSessionPreset

self._videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset352x288;

oder

self._videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset1280x720;

Bitte beachten Sie, dass die Auflösung einen Einfluss auf die Performance hat.

Wenn nicht anders genannt finden alle Änderungen in processImage statt

##Sample 1: Graustufen

Mat image_copy;

cvtColor(image, image_copy, COLOR_BGR2GRAY);

cvtColor konvertiert den Farbraum eines Bildes. In diesem Fall von BGR nach GRAY Vergessen Sie nicht das Bild am Schluss wieder nach BGR zu konvertieren um es anzuzeigen.

##Sample 2: Graustufen invertiert

bitwise_not(image_copy, image_copy);

bitwise_not invertiert alle Werte innerhalb der Bildmatrix

##Sample 3: Threshold

Es gibt in OpenCV 5 Arten des Thresholds.

  1. Binary
  2. Binary Inverted
  3. Threshold Truncated
  4. Threshold to Zero
  5. Threshold to Zero Inverted

threshold( image_copy, image_copy, 128, 255, 0 );

threshold führt einen Threshold auf das Bild aus. 128 ist der Grenzwert, 255 der Maximalwert und 0 die Art des Thresholds

##Sample 4: Canny Edges

Canny(image_copy, image_copy, 100, 200);

##Sample 5: Cascading Classifier

Deklaration des Classifiers im Header

CascadeClassifier faceDetector;

Laden des Classifiers aus einer Datei in viewDidLoad

NSString* cascadePath = [[NSBundle mainBundle]pathForResource:@"haarcascade_frontalface_alt" ofType:@"xml"];

faceDetector.load([cascadePath UTF8String]);

blur(image_copy, image_copy, cv::Size(3, 3) );

std::vectorcv::Rect faces; faceDetector.detectMultiScale(image_copy, faces, 1.1, 3, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));

for (int i = 0; i < faces.size(); i++) {

const cv::Rect& face = faces[i];

cv::Point top_left(face.x, face.y);

cv::Point bottom_right = top_left + cv::Point(face.width, face.height);

Scalar magenta = Scalar(255, 0, 255); cv::rectangle(image, top_left, bottom_right, magenta);

}

About

OpenCV Codesamples für den MDAW #12

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published