- Rozpoznawanie twarzy
- Systemy rozpoznawania tęczówki
- Rozpoznawanie gestów
- Interakcja człowiek-komputer (HCI)
- Robotyka mobilna
- Identyfikacja obiektu
- Segmentacja i rozpoznawanie
- Widzenie stereopsyjne stereo: percepcja głębi z 2 kamer
- Rozszerzona rzeczywistość
- Piksele o wartości intensywności mniejszej niż próg.
- Piksele o wartości intensywności większej niż próg.
Wejściowy obraz RGB jest najpierw konwertowany na obraz w skali szarości przed wykonaniem progowania.
Rodzaje progów
Z dwóch uzyskanych wcześniej grup, grupie składającej się z członków o intensywności pikseli większej niż ustawiony próg przypisano Max_Value lub w przypadku skali szarości wartość 255 (biały). Członkowie pozostałej grupy mają intensywność pikseli ustawioną na 0 (czarny).
Jeśli wartość intensywności pikseli w (x y) obrazu źródłowego jest większa niż próg, wartość w obrazie końcowym jest ustawiana na wartość maxVal.
nr inw. Próg binarny jest taki sam jak próg binarny. Jedyną istotną różnicą jest to, że w przypadku progowania Inv.Binary grupa o intensywności pikseli większej niż ustawiony próg otrzymuje wartość „0”, podczas gdy pozostałe piksele o intensywności mniejszej niż próg są ustawiane na wartość maxVal.
Jeśli wartość intensywności pikseli w (x y) obrazu źródłowego jest większa niż próg, wartość w obrazie końcowym jest ustawiana na 0, w przeciwnym razie jest ustawiana na wartość maxVal.
Grupa posiadająca intensywność pikseli większą niż ustawiony próg jest obcinana do ustawionego progu lub innymi słowy wartości pikseli są ustawiane na takie same jak ustawiony próg. Wszystkie pozostałe wartości pozostają takie same.
Jeśli wartość intensywności pikseli w (x y) obrazu źródłowego jest większa niż próg, wartość na obrazie końcowym jest ustawiana na wartość progową, w przeciwnym razie pozostaje niezmieniona.
Bardzo prosta technika progowania, w której ustawiamy intensywność pikseli na „0” dla wszystkich pikseli w grupie, których wartość intensywności pikseli jest mniejsza niż próg.
Jeśli wartość intensywności pikseli w (x y) obrazu źródłowego jest większa niż próg, wartość w (x y) obrazu końcowego nie zmienia się. Wszystkie pozostałe piksele są ustawione na „0”.
Podobnie jak w poprzedniej technice, tutaj ustawiamy intensywność pikseli na „0” dla wszystkich pikseli w grupie, których wartość intensywności pikseli jest większa niż próg.
Jeśli wartość intensywności pikseli w (x y) obrazu źródłowego jest większa niż próg, wartość w (x y) obrazu końcowego jest ustawiana na „0”. Wszystkie pozostałe wartości pikseli pozostają niezmienione. Aby skompilować programy OpenCV, musisz mieć zainstalowaną bibliotekę OpenCV w swoim systemie. W nadchodzących dniach opublikuję prosty samouczek na ten temat. Jeśli zainstalowałeś już OpenCV, uruchom poniższy kod z wybranym obrazem wejściowym. 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); } }