- Gesichtserkennung
- Iris-Erkennungssysteme
- Gestenerkennung
- Mensch-Computer-Interaktion (HCI)
- Mobile Robotik
- Objektidentifikation
- Segmentierung und Erkennung
- Stereopsis-Stereovision: Tiefenwahrnehmung von 2 Kameras
- Erweiterte Realität
- Pixel mit einem Intensitätswert, der unter dem Schwellenwert liegt.
- Pixel mit einem Intensitätswert, der über dem Schwellenwert liegt.
Das eingegebene RGB-Bild wird zunächst in ein Graustufenbild konvertiert, bevor die Schwellenwertbildung durchgeführt wird.
Schwellenwerttypen
Von den beiden zuvor erhaltenen Gruppen wird der Gruppe, deren Mitglieder eine Pixelintensität haben, die größer als der festgelegte Schwellenwert ist, ein Max_Value oder im Fall einer Grauskala ein Wert von 255 (weiß) zugewiesen. Die Pixelintensitäten der Mitglieder der verbleibenden Gruppe sind auf 0 (schwarz) gesetzt.
Wenn der Pixelintensitätswert bei (x y) im Quellbild größer als der Schwellenwert ist, wird der Wert im endgültigen Bild auf maxVal gesetzt.
Inv. Der binäre Schwellenwert ist derselbe wie der binäre Schwellenwert. Der einzige wesentliche Unterschied besteht darin, dass bei der Inv.Binary-Schwellenwertbildung der Gruppe mit Pixelintensitäten, die über dem festgelegten Schwellenwert liegen, „0“ zugewiesen wird, während die übrigen Pixel mit Intensitäten unter dem Schwellenwert auf maxVal gesetzt werden.
Wenn der Pixelintensitätswert bei (x y) im Quellbild größer als der Schwellenwert ist, wird der Wert im endgültigen Bild auf 0 gesetzt, andernfalls wird er auf maxVal gesetzt.
Die Gruppe mit Pixelintensitäten, die über dem festgelegten Schwellenwert liegen, wird auf den festgelegten Schwellenwert gekürzt, oder mit anderen Worten: Die Pixelwerte werden auf den gleichen Wert wie der festgelegte Schwellenwert gesetzt. Alle anderen Werte bleiben gleich.
Wenn der Pixelintensitätswert bei (x y) im Quellbild größer als der Schwellenwert ist, wird der Wert im endgültigen Bild auf den Schwellenwert gesetzt, andernfalls bleibt er unverändert.
Eine sehr einfache Schwellenwerttechnik, bei der wir die Pixelintensität für alle Pixel der Gruppe, deren Pixelintensitätswert unter dem Schwellenwert liegt, auf „0“ setzen.
Wenn der Pixelintensitätswert bei (x y) im Quellbild größer als der Schwellenwert ist, ändert sich der Wert bei (x y) im endgültigen Bild nicht. Alle verbleibenden Pixel werden auf „0“ gesetzt.
Ähnlich wie bei der vorherigen Technik setzen wir hier die Pixelintensität für alle Pixel der Gruppe, deren Pixelintensitätswert größer als der Schwellenwert ist, auf „0“.
Wenn der Pixelintensitätswert bei (x y) im Quellbild größer als der Schwellenwert ist, wird der Wert bei (x y) im endgültigen Bild auf „0“ gesetzt. Alle verbleibenden Pixelwerte bleiben unverändert. Um OpenCV-Programme zu kompilieren, muss die OpenCV-Bibliothek auf Ihrem System installiert sein. Ich werde in den kommenden Tagen ein einfaches Tutorial dafür veröffentlichen. Wenn Sie OpenCV bereits installiert haben, führen Sie den folgenden Code mit dem Eingabebild Ihrer Wahl aus. CPP // CPP program to demonstrate segmentation // thresholding. #include #include #include #include using namespace cv; int main(int argc char** argv) { if (argc != 2) { cout << ' Usage: ' ' ' << endl; return -1; } int threshold_value = 0; // Valid Values: 0 1 2 3 4 int threshold_type = 2; // maxVal useful for threshold_type 1 and 2 int maxVal = 255; // Source image Mat src = imread(argv[1] 1); cvNamedWindow('Original' CV_WINDOW_NORMAL); imshow('Original' src); Mat src_gray dst; // Convert the image to GrayScale cvtColor(src src_gray CV_BGR2GRAY); // Create a window to display results cvNamedWindow('Result' CV_WINDOW_NORMAL); createTrackbar('Threshold' 'Result' &threshold_value 255); while (1) { threshold(src_gray dst threshold_value maxVal threshold_type); imshow('Result' dst); waitKey(1); } }