Разделение изображения на каналы
Разделить изображение UImage на отдельные каналы позволяет статический метод uimage_split() из класса UHelperNP. Формат метода:
UHelperNP.uimage_split(<UImage>)
В качестве параметра указывается объект UImage. Метод возвращает кортеж из 4-х элементов (R, G, B, A), или None — в случае ошибки. Каждый элемент кортежа является массивом NumPy. Операция выполняется с помощью библиотеки NumPy. Пример:
from unicross_image.uimage import UImage
from unicross_image.uhelper_np import UHelperNP
img = UImage.load("foto.png")
channels = UHelperNP.uimage_split(img)
if channels is not None:
red, green, blue, alpha = channels
print(red.shape) # (333, 500)
print(red.dtype) # int32
print(green.shape) # (333, 500)
print(blue.shape) # (333, 500)
print(alpha.shape) # (333, 500)
else:
print("Ошибка при выполнении операции")
Разделить изображение UImageRGB на отдельные каналы позволяет статический метод uimagergb_split() из класса UHelperNP. Формат метода:
UHelperNP.uimagergb_split(<UImageRGB>)
В качестве параметра указывается объект UImageRGB. Метод возвращает кортеж из 3-х элементов (R, G, B), или None — в случае ошибки. Каждый элемент кортежа является массивом NumPy. Операция выполняется с помощью библиотеки NumPy. Пример:
from unicross_image.uimagergb import UImageRGB
from unicross_image.uhelper_np import UHelperNP
img = UImageRGB.load("foto.jpg")
channels = UHelperNP.uimagergb_split(img)
if channels is not None:
red, green, blue = channels
print(red.shape) # (333, 500)
print(red.dtype) # int32
print(green.shape) # (333, 500)
print(blue.shape) # (333, 500)
else:
print("Ошибка при выполнении операции")
Если нужно получить только один канал, то можно воспользоваться следующими методами из класса UHelperNP:
UHelperNP.uimage_red_channel(<UImage или UImageRGB>)
UHelperNP.uimage_green_channel(<UImage или UImageRGB>)
UHelperNP.uimage_blue_channel(<UImage или UImageRGB>)
UHelperNP.uimage_alpha_channel(<UImage>)
В качестве параметра указывается объект UImage. В первых трех методах можно передать объект UImageRGB. Методы возвращают массив NumPy или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример:
from unicross_image.uimage import UImage, UImageRGB
from unicross_image.uhelper_np import UHelperNP
img = UImage.load("foto.png")
red = UHelperNP.uimage_red_channel(img)
green = UHelperNP.uimage_green_channel(img)
blue = UHelperNP.uimage_blue_channel(img)
alpha = UHelperNP.uimage_alpha_channel(img)
print(red.shape) # (333, 500)
print(red.dtype) # int32
print(green.shape) # (333, 500)
print(blue.shape) # (333, 500)
print(alpha.shape) # (333, 500)
img = UImageRGB.load("foto.jpg")
red = UHelperNP.uimage_red_channel(img)
green = UHelperNP.uimage_green_channel(img)
blue = UHelperNP.uimage_blue_channel(img)
print(red.shape) # (333, 500)
print(red.dtype) # int32
print(green.shape) # (333, 500)
print(blue.shape) # (333, 500)
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage