Przetwarzanie obrazu jest jednym z podstawowych modułów, które muszą być dostępne w każdym języku programowania, szczególnie jeśli chodzi o uczenie maszynowe lub głębokie uczenie się. Język programowania Pythona jest wysoce zalecany dla wszelkiego rodzaju uczenia się maszynowego i głębokiego uczenia się, a jeśli chodzi o przetwarzanie obrazu, Python zapewnia bibliotekę Scipy. Biblioteka Scipy w Python ma submodule ndimage specjalnie poświęcony przetwarzaniu obrazu w języku programowania Python. W tym artykule wyjaśnimy, czym jest przetwarzanie obrazu i jak można to zrobić za pomocą submodułu NDIMAGE w bibliotece Scipy.
Co to jest przetwarzanie obrazu w języku programowania Pythona?
Każda praca wykonana z obrazem jest znana jako przetwarzanie obrazu, i.mi., czytanie, pisanie, modyfikowanie, manipulowanie itp. wykonane na zdjęciach, aby wyodrębnić z nich znaczące informacje. Aby manipulować lub przekształcić obrazy, najczęściej używany język programowania Python. Najczęstszymi zadaniami, które można wykonać w celu przetwarzania obrazu, są pokazanie obrazów, obracanie, odwracanie, uprawy, wyostrzenie, denoise, etykieta, ekstrakcja cech itp. Wszystkie te funkcje można łatwo wykonać na obrazach z biblioteką Scipy i jej modułem NDIMAGE.
Co to jest scipy ndimage?
NDIMAGE oznacza obraz N-wymiarowy i jest dostarczany jako moduł przez bibliotekę Scipy. Składa się z różnych funkcji Przetwarzanie i analiza obrazu FMOR. Kilka zadań związanych z przetwarzaniem obrazu, i.mi., Ekstrakcja cech, wejście, wyjście, przewracanie, rotacja, klasyfikacja itp., można wykonać z modułem NDIMAGE. Pakiet ndimage biblioteki Scipy jest poświęcony działaniu z tablicami o wymiarach. Obejmuje funkcje pomiaru obiektów, morfologii binarnej, filtrowania liniowego, interpolacji B-splajnowej i filtrowania nieliniowego. Wyjaśnimy funkcję modułu NDImage z przykładami, aby pomóc Ci zrozumieć, jak działają te funkcje.
Przykład 1:
Tutaj wyjaśnimy metodę „skorelowaną” modułu NDIMAGE. Metoda korelacji modułu NDIMage działa jako korelacja wielowymiarowa. Metoda „skorelowana” służy do skorelowania obrazu z danym jądrem. Metoda „skorelowania” przetwarzania obrazu służy do przeniesienia jądra na obraz i obliczanie sumy produktu w każdej lokalizacji. Zobacz przykładowy kod podany w fragmencie poniżej:
importować Numpy jako NP
od Scipy.import ndimage koreluje
wydrukować (skorelowanie (NP.Arange (100), [2, 4.5]))
Tutaj zaczęliśmy od importu biblioteki Numpy jako NP w programie, abyśmy mogli dalej korzystać z jej odpowiednich funkcji w programie. Następnie zaimportowaliśmy bibliotekę Scipy wraz z jej modułem NDImage i metodą skorelową. Pamiętaj, że musisz dołączyć wszystkie biblioteki i moduły w programie, aby używać ich odpowiednich metod i funkcji. Jeśli nie uwzględnisz bibliotek, skończysz z błędami i błędami. Funkcje i metody języka programowania Pythona nie działają bez importowania bibliotek nadrzędnych do programu.
Wszystkie wymagane biblioteki są importowane i możemy zacząć pracować nad głównym kodem. Zauważ, że użyliśmy funkcji układu ze zmienną NP, która reprezentuje bibliotekę Numpy, aby stworzyć tablicę 100 wartości. Wagi [2, 4.5] są przypisane do tablicy, a zarówno tablica, jak i waga są przekazywane do funkcji korelacji. Zobaczmy teraz, jaka tablica została wyprodukowana przez ndimag.skorelować funkcję. Dane wyjściowe podano poniżej:
Przykład 2:
W poprzednim przykładzie musiałeś zauważyć, że pomimo nadania wagi liczbowi zmiennoprzecinkowego, wyprodukowana tablica jest w liczbach liczb całkowitych. Jest tak, ponieważ domyślnie funkcja korelacji wytwarza numer liczby całkowitej; stąd konkretnie musisz wspomnieć, jak chcesz uzyskać tablicę wyjściową. Zobaczmy, jak możesz to osiągnąć, sprawdzając wiersze kodu podane w fragmencie kodu poniżej:
importować Numpy jako NP
od Scipy.import ndimage koreluje
wydrukować (skorelowanie (NP.Arange (100), [2, 4.5], wyjście = NP.float64))
Ponownie wymagane biblioteki i moduły są importowane do programu, a następnie ndimage.Funkcja skorelowana jest wywoływana. Jak widać, rodzaj danych tablicy wyjściowej jest dostarczany jako „flaot64”, co oznacza, że wynikowy tablica będzie miała liczby punktów pływających. Zobacz wynikową tablicę wyjściową podaną na zrzucie ekranu poniżej:
Przykład 3:
Jak wiemy, obrazy są reprezentowane przez tablice wielowymiarowe, ponieważ każda liczba w tablicy reprezentuje piksel obrazu. Tak więc tutaj używamy funkcji korelacji dla tablicy 1D. Aby pracować z jądrem 1D i przesunąć filtr na obrazie, mamy funkcję korelacji1d. Zobacz przykładowy kod podany w fragmencie kodu poniżej:
importować Numpy jako NP
od Scipy.Ndimage Import korelacyjny1d
ARR = [1, 2, 2, 1, 1, 2]
wydruku (korelate1d (arr, [1, 2, 1])))
Tutaj wyjaśnimy, jak zarządzać pochodzeniem jądra z funkcją korelowania1d. Zwykle pochodzenie jądra znajduje się w środku, co jest obliczane przez podzielenie wymiarów kształtu jądra przez 2. W podanym powyżej fragmencie kodu widać, że wymagane biblioteki są najpierw zaimportowane do programu, a następnie tablica o nazwie ARR jest deklarowana zawierająca sześć wartości. Tablica z odpowiednimi wagami została przekazana do funkcji korelacji1D. Zobaczmy teraz, w jaki sposób funkcja korelacji1d znajduje pochodzenie jądra danej tablicy. Wynik jest poniżej:
Przykład 4:
Po pierwsze, dowiedzieliśmy się, w jaki sposób funkcja korelacji1D znajduje pochodzenie jądra; Dowiedzmy się teraz, w jaki sposób możemy wyraźnie zmienić pochodzenie jądra. Czasami konieczne jest wybranie innego pochodzenia jądra niż centrum, więc dla tego mamy parametr „pochodzenia”. Parametr pochodzenia przekazany do funkcji korelacji1d pozwala wygodnie wybrać inne pochodzenie jądra.
importować Numpy jako NP
od Scipy.Ndimage Import korelacyjny1d
ARR = [1, 2, 2, 1, 1, 2]
druk (korelate1d (arr, [1, 2, 1], pochodzenie = -1))
Wynik wyboru innego jądra dla filtra jest podany w wyniku poniżej:
Przykład 5:
Nauczmy się w razie potrzeby przekształcić tablicę. Zdjęcia mogą być przekształcane, modyfikowane, obracane, przycinane itp. z funkcjami przetwarzania obrazu. Tutaj poprowadzimy Cię, jak przekształcić tablicę za pomocą funkcji korelowania1d. Funkcja przekształcenia jest dostarczana przez bibliotekę Numpy, więc jest używana ze zmienną NP. Zobacz przykładowy kod podany w fragmencie kodu poniżej:
importować Numpy jako NP
od Scipy.Ndimage Import korelacyjny1d
ARR = NP.Arange (100).Reshape (20, 5)
wydruku (korelate1d (arr, [1, 2, 1])))
Wytworzona tablica będzie zawierać 100 pozycji w 20 rzędach i 5 kolumnach. Zobacz wynikową tablicę podaną poniżej:
Wniosek
W tym artykule dowiedzieliśmy się o przetwarzaniu obrazu w języku programowania Pythona. Przetwarzanie obrazu jest bardzo istotną cechą każdego języka programowania, ponieważ praca z obrazami stała się bardziej powszechna niż praca z surowymi danymi. Dlatego Python zapewnia funkcje do pracy z obrazami w różnych bibliotekach, takich jak Numpy, Scipy itp. Tutaj użyliśmy modułu NDIMAGE z funkcjami korelacji i korelacji1D do pracy w celu przetwarzania obrazu z tablicami wielowymiarowymi.