<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>WWWadmin.ru</title>
		<link>https://wwwadmin.ru/</link>
		<description>Блог</description>
		<lastBuildDate>Thu, 19 Mar 2026 19:56:44 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://wwwadmin.ru/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Sobel, Sharr, Prewitt, Laplacian: сравнение операторов поиска границ</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Sobel, Sharr, Prewitt, Laplacian: сравнение операторов поиска границ&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;При работе с изображением в градациях серого мы имеем дело с матрицей чисел, описывающих яркость пикселя в определенной точке. В каждой точке изображения вектор градиента показывает направление наибольшего увеличения яркости, а его длина &amp;mdash; величину изменения яркости. Для точки внутри области с постоянной яркостью вектор будет нулевым. Для вычисления градиента наиболее часто используется фильтр Собеля. Сравним операторы поиска границ Sobel, Sharr, Prewitt и Laplacian.&lt;/p&gt;


&lt;div class=&quot;u-listing&quot; id=&quot;code50&quot; title=&quot;code50&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;import math
import numpy as np

def test_sobel(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = -1 * k[0] + -2 * k[1] + -1 * k[2]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x += k[6] + 2 * k[7] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y = -1 * k[0] + k[2] + -2 * k[3]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y += 2 * k[5] + -1 * k[6] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_xy = sum_x *...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Sobel, Sharr, Prewitt, Laplacian: сравнение операторов поиска границ&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;При работе с изображением в градациях серого мы имеем дело с матрицей чисел, описывающих яркость пикселя в определенной точке. В каждой точке изображения вектор градиента показывает направление наибольшего увеличения яркости, а его длина &amp;mdash; величину изменения яркости. Для точки внутри области с постоянной яркостью вектор будет нулевым. Для вычисления градиента наиболее часто используется фильтр Собеля. Сравним операторы поиска границ Sobel, Sharr, Prewitt и Laplacian.&lt;/p&gt;


&lt;div class=&quot;u-listing&quot; id=&quot;code50&quot; title=&quot;code50&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;import math
import numpy as np

def test_sobel(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = -1 * k[0] + -2 * k[1] + -1 * k[2]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x += k[6] + 2 * k[7] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y = -1 * k[0] + k[2] + -2 * k[3]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y += 2 * k[5] + -1 * k[6] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_xy = sum_x * sum_x + sum_y * sum_y
 &amp;nbsp;&amp;nbsp;&amp;nbsp;magn = int(math.sqrt(sum_xy))
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Sobel: {0} {1} = {2}&quot;.format(sum_x, sum_y, magn))

def test_sharr(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = -3 * k[0] + -10 * k[1] + -3 * k[2]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x += 3 * k[6] + 10 * k[7] + 3 * k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y = -3 * k[0] + 3 * k[2] + -10 * k[3]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y += 10 * k[5] + -3 * k[6] + 3 * k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_xy = sum_x * sum_x + sum_y * sum_y
 &amp;nbsp;&amp;nbsp;&amp;nbsp;magn = int(math.sqrt(sum_xy))
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Sharr: {0} {1} = {2}&quot;.format(sum_x, sum_y, magn))

def test_prewitt(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = -1 * k[0] + -1 * k[1] + -1 * k[2]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x += k[6] + k[7] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y = -1 * k[0] + k[2] + -1 * k[3]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_y += k[5] + -1 * k[6] + k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_xy = sum_x * sum_x + sum_y * sum_y
 &amp;nbsp;&amp;nbsp;&amp;nbsp;magn = int(math.sqrt(sum_xy))
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Prewitt: {0} {1} = {2}&quot;.format(sum_x, sum_y, magn))

def test_laplacian(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = k[1] + k[3] + -4 * k[4] + k[5] + k[7]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Laplacian: = {0}&quot;.format(sum_x))

def test_edges(k):
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x = -1 * k[0] + -1 * k[1] + -1 * k[2] + -1 * k[3] + 8 * k[4]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;sum_x += -1 * k[5] + -1 * k[6] + -1 * k[7] + -1 * k[8]
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Edges: = {0}&quot;.format(sum_x))

arr = [
0, 255, 0,
0, 255, 0,
0, 255, 0
]

arr_np = np.array(arr).reshape(3, 3)
print(arr_np)

test_sobel(arr)
test_sharr(arr)
test_prewitt(arr)
test_laplacian(arr)
test_edges(arr)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Одноцветная область:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code51&quot; title=&quot;code51&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[255 255 255]
 [255 255 255]
 [255 255 255]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = 0
Edges: = 0

[[128 128 128]
 [128 128 128]
 [128 128 128]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = 0
Edges: = 0

[[0 0 0]
 [0 0 0]
 [0 0 0]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = 0
Edges: = 0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Граница по вертикали:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code52&quot; title=&quot;code52&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[ &amp;nbsp;0 255 255]
 [ &amp;nbsp;0 255 255]
 [ &amp;nbsp;0 255 255]]
Sobel: 0 1020 = 1020
Sharr: 0 4080 = 4080
Prewitt: 0 765 = 765
Laplacian: = -255
Edges: = 765

[[255 255 &amp;nbsp;&amp;nbsp;0]
 [255 255 &amp;nbsp;&amp;nbsp;0]
 [255 255 &amp;nbsp;&amp;nbsp;0]]
Sobel: 0 -1020 = 1020
Sharr: 0 -4080 = 4080
Prewitt: 0 -765 = 765
Laplacian: = -255
Edges: = 765

[[ &amp;nbsp;0 128 128]
 [ &amp;nbsp;0 128 128]
 [ &amp;nbsp;0 128 128]]
Sobel: 0 512 = 512
Sharr: 0 2048 = 2048
Prewitt: 0 384 = 384
Laplacian: = -128
Edges: = 384

[[128 128 &amp;nbsp;&amp;nbsp;0]
 [128 128 &amp;nbsp;&amp;nbsp;0]
 [128 128 &amp;nbsp;&amp;nbsp;0]]
Sobel: 0 -512 = 512
Sharr: 0 -2048 = 2048
Prewitt: 0 -384 = 384
Laplacian: = -128
Edges: = 384

[[ 0 50 50]
 [ 0 50 50]
 [ 0 50 50]]
Sobel: 0 200 = 200
Sharr: 0 800 = 800
Prewitt: 0 150 = 150
Laplacian: = -50
Edges: = 150

[[ 0 10 10]
 [ 0 10 10]
 [ 0 10 10]]
Sobel: 0 40 = 40
Sharr: 0 160 = 160
Prewitt: 0 30 = 30
Laplacian: = -10
Edges: = 30

[[ 0 15 15]
 [ 0 15 15]
 [ 0 15 15]]
Sobel: 0 60 = 60
Sharr: 0 240 = 240
Prewitt: 0 45 = 45
Laplacian: = -15
Edges: = 45

[[15 30 30]
 [15 30 30]
 [15 30 30]]
Sobel: 0 60 = 60
Sharr: 0 240 = 240
Prewitt: 0 45 = 45
Laplacian: = -15
Edges: = 45

[[15 35 35]
 [15 35 35]
 [15 35 35]]
Sobel: 0 80 = 80
Sharr: 0 320 = 320
Prewitt: 0 60 = 60
Laplacian: = -20
Edges: = 60&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Граница по горизонтали:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code53&quot; title=&quot;code53&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
 [255 255 255]
 [255 255 255]]
Sobel: 1020 0 = 1020
Sharr: 4080 0 = 4080
Prewitt: 765 0 = 765
Laplacian: = -255
Edges: = 765

[[255 255 255]
 [255 255 255]
 [ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
Sobel: -1020 0 = 1020
Sharr: -4080 0 = 4080
Prewitt: -765 0 = 765
Laplacian: = -255
Edges: = 765&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Диагональ:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code54&quot; title=&quot;code54&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 255]
 [ &amp;nbsp;0 255 255]
 [255 255 255]]
Sobel: 765 765 = 1081
Sharr: 3315 3315 = 4688
Prewitt: 510 510 = 721
Laplacian: = -510
Edges: = 765

[[255 255 255]
 [255 255 &amp;nbsp;&amp;nbsp;0]
 [255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
Sobel: -765 -765 = 1081
Sharr: -3315 -3315 = 4688
Prewitt: -510 -510 = 721
Laplacian: = -510
Edges: = 765

[[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
 [255 255 &amp;nbsp;&amp;nbsp;0]
 [255 255 255]]
Sobel: 765 -765 = 1081
Sharr: 3315 -3315 = 4688
Prewitt: 510 -510 = 721
Laplacian: = -510
Edges: = 765

[[255 255 255]
 [ &amp;nbsp;0 255 255]
 [ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 255]]
Sobel: -765 765 = 1081
Sharr: -3315 3315 = 4688
Prewitt: -510 510 = 721
Laplacian: = -510
Edges: = 765&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Угловые точки:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code55&quot; title=&quot;code55&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[255 255 255]
 [255 255 255]
 [ &amp;nbsp;0 255 255]]
Sobel: -255 255 = 360
Sharr: -765 765 = 1081
Prewitt: -255 255 = 360
Laplacian: = 0
Edges: = 255

[[255 255 255]
 [255 255 255]
 [255 &amp;nbsp;&amp;nbsp;0 255]]
Sobel: -510 0 = 510
Sharr: -2550 0 = 2550
Prewitt: -255 0 = 255
Laplacian: = -255
Edges: = 255

[[255 255 255]
 [255 255 255]
 [255 255 &amp;nbsp;&amp;nbsp;0]]
Sobel: -255 -255 = 360
Sharr: -765 -765 = 1081
Prewitt: -255 -255 = 360
Laplacian: = 0
Edges: = 255

[[30 30 30]
 [30 30 30]
 [30 30 &amp;nbsp;0]]
Sobel: -30 -30 = 42
Sharr: -90 -90 = 127
Prewitt: -30 -30 = 42
Laplacian: = 0
Edges: = 30&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Значение &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; не всегда означает одноцветную область!&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code56&quot; title=&quot;code56&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = -510
Edges: = 1530

[[ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = -1020
Edges: = 2040

[[ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
 [255 255 255]
 [ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
Sobel: 0 0 = 0
Sharr: 0 0 = 0
Prewitt: 0 0 = 0
Laplacian: = -510
Edges: = 1530&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Концы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code57&quot; title=&quot;code57&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[[ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 255 &amp;nbsp;&amp;nbsp;0]
 [ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
Sobel: -510 0 = 510
Sharr: -2550 0 = 2550
Prewitt: -255 0 = 255
Laplacian: = -765
Edges: = 1785&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/sobel_sharr_prewitt_laplacian_sravnenie_operatorov_poiska_granic/2026-03-19-129</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/sobel_sharr_prewitt_laplacian_sravnenie_operatorov_poiska_granic/2026-03-19-129</guid>
			<pubDate>Thu, 19 Mar 2026 19:56:44 GMT</pubDate>
		</item>
		<item>
			<title>UImageCV C API. Руководство разработчика</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV C API. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;&lt;b&gt;UImageCV C API&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageBGR C API: изображение BGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UIm...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV C API. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;&lt;b&gt;UImageCV C API&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageBGR C API: изображение BGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageBGR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageHSV C API: изображение HSV&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HSV и наоборот (тип unsigned char)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HSV и наоборот (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageHSV и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UImageHSV и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageHSL C API: изображение HSL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта HSL в объект HLS и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageLab C API: изображение Lab&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UCvGray C API: алгоритмы компьютерного зрения для изображений в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск минимального и максимального значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Абсолютные значения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Приведение к диапазону от 0 до 255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление разницы двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Прибавление значения ко всем пикселям&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки сверху или снизу изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение контуров объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Собеля 3x3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Собеля 5x5&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Щарра&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Прюитта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение контуров&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Лапласиан изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление паддинга для свертки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление паддинга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3 (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление градиента&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Определение направления градиента&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3 (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5 (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5 (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие и подавление цифрового шума&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Однородное &amp;nbsp;размытие&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие по Гауссу (ядро 3x3)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие по Гауссу (ядро 5x5)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Медианный фильтр&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сглаживание изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение темных областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение светлых областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UCvBW C API: алгоритмы компьютерного зрения для черно-белых изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логические операции&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое И&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое ИЛИ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Исключающее ИЛИ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое РАВНО&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Импликация&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размеров изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение со значением&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Не равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Меньше&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Меньше или равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Больше&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Больше или равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Диапазон значений&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvRGB C API: компьютерное зрение для UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование значения RGB в ARGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Цветовая карта изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск одноцветных областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Палитра из 21 цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск ближайшего цвета из цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание цветовой карты для изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Гистограмма цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статистика по цветам в изображении и палитра цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Основные цвета изображения и число уникальных цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в строку в формате CMAPSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветовую карту&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение границ объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Карта границ объектов для изображения RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Карта границ объектов для изображения в оттенках серого&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UCvRGBA C API: компьютерное зрение для UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Проверка наличия прозрачных пикселей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование значения RGB в ARGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование значения RGBA в ARGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvArea C++ API: работа с контурами и областями изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка произвольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нумерация контуров и областей на черно-белом изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нумерация областей на изображении в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание маски по идентификатору области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание маски по идентификатору области в учетом вложенных областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка области с учетом идентификатора области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом идентификатора области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение контуров объектов на черно-белом изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование карты областей в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение черных областей на карте областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скелетона&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Освобождение динамической памяти для строки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание ключевых точек&lt;br /&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UOcrBlock C++ API: работа с текстовыми блоками для OCR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск слов внутри столбца&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение слов на изображении текста&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка блоков по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение букв в словах&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ блоков&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение блоков&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размазывающие фильтры&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение белых областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание карты расширения белых областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение черных областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск линий на карте границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск горизонтальных линий на карте границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск вертикальных линий на карте границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск лишних границ на карте границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Освобождение динамической памяти&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение страницы на прямоугольные блоки
&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_biblioteka_algoritmov_kompjuternogo_zrenija_dlja_python/2026-02-20-124&quot;&gt;Описание библиотеки UImageCV&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/uimagecv_c_api_rukovodstvo_razrabotchika/2026-03-16-128</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/uimagecv_c_api_rukovodstvo_razrabotchika/2026-03-16-128</guid>
			<pubDate>Mon, 16 Mar 2026 19:23:10 GMT</pubDate>
		</item>
		<item>
			<title>Создание цветовой карты изображения (Python, C, C++)</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Создание цветовой карты изображения (Python, C, C++)&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;В большинстве случаев для нужд компьютерного зрения достаточно изображения в градациях серого. Однако не следует забывать, что цвет также содержит большой объем информации. Эта информация позволяет отслеживать перемещение объекта по его цвету, а также разделять объекты при их перекрытии.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Проблема работы с цветом заключается в огромном количестве оттенков цвета. Причем один и тот же цвет при разном освещении и на разных мониторах будет выглядеть несколько иначе. Если разместить два цвета рядом, то можно заметить, что некоторые цвета кажутся человеку более светлыми или более темными. Кроме того, разные люди могут по-разному видеть один и тот же цвет при одинаковых условиях освещения. При этом я даже не имею в виду дальтоников. Это касается и здоровых людей.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Чтобы упростить работу с цветом в библиотеке UImageCV предусмотрена кластеризация всех...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Создание цветовой карты изображения (Python, C, C++)&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;В большинстве случаев для нужд компьютерного зрения достаточно изображения в градациях серого. Однако не следует забывать, что цвет также содержит большой объем информации. Эта информация позволяет отслеживать перемещение объекта по его цвету, а также разделять объекты при их перекрытии.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Проблема работы с цветом заключается в огромном количестве оттенков цвета. Причем один и тот же цвет при разном освещении и на разных мониторах будет выглядеть несколько иначе. Если разместить два цвета рядом, то можно заметить, что некоторые цвета кажутся человеку более светлыми или более темными. Кроме того, разные люди могут по-разному видеть один и тот же цвет при одинаковых условиях освещения. При этом я даже не имею в виду дальтоников. Это касается и здоровых людей.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Чтобы упростить работу с цветом в библиотеке UImageCV предусмотрена кластеризация всех цветов и их оттенков на 21 цвет. Первые 7 цветов являются оттенками серого. Остальные 14 цветов &amp;mdash; это основные цвета в цветовой модели &lt;code class=&quot;u-courier&quot; id=&quot;mark_HSV_2&quot; title=&quot;mark_HSV_2&quot;&gt;HSV&lt;/code&gt; и радуге, а также их более светлые оттенки.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Изображение с цветами из цветовой карты (слева) и цветовая карта в оттенках серого (справа):&lt;/p&gt;
&lt;!--IMG1--&gt;&lt;a href=&quot;https://wwwadmin.ru/_bl/1/57099931.png&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://wwwadmin.ru/_bl/1/s57099931.jpg&quot; /&gt;&lt;/a&gt;&lt;!--IMG1--&gt;

&lt;p class=&quot;u-text&quot;&gt;Обратите внимание на то, что светлые цвета отличаются по значению на 10 единиц от соответствующих основных цветов. Этот может быть важно для последующей выборке по диапазону.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Все значения констант находятся в диапазоне от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;, что делает цветовую карту изображением в оттенках серого. Если посмотреть на значение константы белого цвета, то можно заметить, что оно не равно значению &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;. Это значение зарезервировано для выделения краев объектов на цветовой карте. Например, можно наложить результат работы фильтра Собеля на цветовую карту и разделить объекты с разными оттенками одного основного цвета.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Раскрасим палитру основных цветов HSV в цвета цветовой карты (карта разделена белыми полосами):&lt;/p&gt;
&lt;!--IMG2--&gt;&lt;a href=&quot;https://wwwadmin.ru/_bl/1/91729509.png&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://wwwadmin.ru/_bl/1/s91729509.jpg&quot; /&gt;&lt;/a&gt;&lt;!--IMG2--&gt;

&lt;p class=&quot;u-text&quot;&gt;Светлые оттенки:&lt;/p&gt;
&lt;!--IMG3--&gt;&lt;a href=&quot;https://wwwadmin.ru/_bl/1/21139460.png&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://wwwadmin.ru/_bl/1/s21139460.jpg&quot; /&gt;&lt;/a&gt;&lt;!--IMG3--&gt;

&lt;p class=&quot;u-text&quot;&gt;Оттенки серого:&lt;/p&gt;
&lt;!--IMG4--&gt;&lt;a href=&quot;https://wwwadmin.ru/_bl/1/01465796.png&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://wwwadmin.ru/_bl/1/s01465796.jpg&quot; /&gt;&lt;/a&gt;&lt;!--IMG4--&gt;

&lt;p class=&quot;u-text&quot;&gt;Цветовую карту можно преобразовать в строку в формате &lt;code class=&quot;u-courier&quot; id=&quot;mark_CMAPSTR&quot; title=&quot;mark_CMAPSTR&quot;&gt;CMAPSTR&lt;/code&gt;. Эта строка содержит специальные символы.&lt;/p&gt;

&lt;h2&gt;UImageCV. Руководство разработчика&lt;/h2&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCMap: цветовая карта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Палитра из 21 цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск ближайшего цвета из цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание цветовой карты для изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Гистограмма цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Более быстрый способ создания цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статистика по цветам в изображении и палитра цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в строку в формате CMAPSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветовую карту&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветное изображение&lt;/p&gt;


&lt;h2&gt;UImageCV C API. Руководство разработчика&lt;/h2&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Цветовая карта изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Палитра из 21 цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск ближайшего цвета из цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание цветовой карты для изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Гистограмма цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статистика по цветам в изображении и палитра цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Основные цвета изображения и число уникальных цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в строку в формате CMAPSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветовую карту&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветное изображение&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_biblioteka_algoritmov_kompjuternogo_zrenija_dlja_python/2026-02-20-124&quot;&gt;Описание библиотеки UImageCV&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/sozdanie_cvetovoj_karty_izobrazhenija_python_c_c/2026-03-09-127</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/sozdanie_cvetovoj_karty_izobrazhenija_python_c_c/2026-03-09-127</guid>
			<pubDate>Mon, 09 Mar 2026 18:42:01 GMT</pubDate>
		</item>
		<item>
			<title>UImageCV. Руководство разработчика</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV. Руководство разработчика&lt;/h2&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageBGR: изображение BGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изобр...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV. Руководство разработчика&lt;/h2&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageBGR: изображение BGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageBGR в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImageBGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageBGRChange: преобразование изображений UImageBGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Наложение одного изображения на другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление внешней или внутренней тени&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сепия&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Негатив&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости, контраста и цветового тона изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageBGRDrawPIL: рисование на UImageBGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageBGRDrawCv2: рисование на UImageBGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки OpenCV&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии со стрелкой&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование нескольких линий&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperCv2: взаимодействие с библиотекой OpenCV&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветового пространства&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в оттенки серого и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HSV и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HLS и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в Lab и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в YCrCb и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageHSV: изображение HSV&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в объект UImageBGR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSV в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HSV и наоборот (тип c_ubyte)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование RGB в HSV и наоборот (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageHSL: изображение HSL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в объект UImageBGR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageHSL в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageLab: изображение Lab&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение значений компонентов цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в объект UImageBGR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageLab в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvRGBA: компьютерное зрение для UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvRGB: компьютерное зрение для UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение границ объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Карта границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCMap: цветовая карта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по диапазону значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск цвета по расстоянию&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Палитра из 21 цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск ближайшего цвета из цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание цветовой карты для изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Гистограмма цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Более быстрый способ создания цветовой карты&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статистика по цветам в изображении и палитра цветов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветовой карты в строку в формате CMAPSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветовую карту&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование строки в формате CMAPSTR в цветное изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvGray: компьютерное зрение для UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление разницы двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Прибавление значения ко всем пикселям&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvGrayFilter: применение фильтров к UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Работа с массивами типа c_int (c_long)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск минимального и максимального значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Абсолютные значения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение массивов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Приведение к диапазону от 0 до 255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление паддинга для свертки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление паддинга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3 (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление градиента&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Определение направления градиента&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 3x3 (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5 (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Свертка с ядром 5x5 (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение темных областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение светлых областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvGrayEdges: выделение контуров объектов для UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Собеля&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение горизонтальных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение вертикальных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление градиента и его направления&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение горизонтальных и вертикальных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Собеля 5x5&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Щарра&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Фильтр Прюитта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение контуров&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Лапласиан изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvGrayBlur: изменение резкости для UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Однородное размытие&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие по Гауссу (ядро 3x3)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие по Гауссу (ядро 5x5)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Медианный фильтр&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сглаживание изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvBW: компьютерное зрение для черно-белых изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логические операции&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое И&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое ИЛИ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Исключающее ИЛИ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Логическое РАВНО&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Импликация&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение со значением&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Не равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Меньше&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Меньше или равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Больше&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Больше или равно&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Диапазон значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Как получить значения, соответствующие маске?&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvArea: работа с контурами и областями изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка произвольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нумерация контуров и областей на черно-белом изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нумерация областей на изображении в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание маски по идентификатору области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка области с учетом идентификатора области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом идентификатора области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения с учетом маски&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обводка областей рамкой&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выделение контуров объектов на черно-белом изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование карты областей в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Расширение черных областей на карте областей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скелетона&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание ключевых точек&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCvBGR: компьютерное зрение для UImageBGR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветового пространства&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в оттенки серого и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в RGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в RGBA и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в BGRA и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в HSV и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в HLS и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в Lab и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование BGR в YCrCb и наоборот&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_biblioteka_algoritmov_kompjuternogo_zrenija_dlja_python/2026-02-20-124&quot;&gt;Описание библиотеки UImageCV&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/uimagecv_rukovodstvo_razrabotchika/2026-02-23-126</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/uimagecv_rukovodstvo_razrabotchika/2026-02-23-126</guid>
			<pubDate>Mon, 23 Feb 2026 15:55:05 GMT</pubDate>
		</item>
		<item>
			<title>Лицензия библиотек семейства UImage</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Лицензия библиотек семейства UImage&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия на использование библиотек UImage, UImage C API, UImageC, UImageCV и UImageCV C API (далее просто &quot;Программа&quot;).&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Copyright (C) 2025-26 Николай Прохоренок (далее просто &quot;автор&quot; или &quot;компания&quot;), https://wwwadmin.ru/&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Прежде чем загружать, устанавливать или использовать Программу, прочтите настоящую Лицензию. Автор согласен предоставить лицензию на данную Программу вам или юридическому лицу, которое вы представляете и которое будет владеть лицензией на использование данной Программы (в совокупности «Вы» или «Вам») только в том случае, если вы примете ВСЕ условия настоящей Лицензии. Запуск Программы означает ПОЛНОЕ СОГЛАСИЕ СО ВСЕМИ УСЛОВИЯМИ настоящей Лицензии.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Использование Программы подразумевает также безусловное согласие со всеми условиями лицензий на библиотеки, используемые Программой, такие как...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;Лицензия библиотек семейства UImage&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия на использование библиотек UImage, UImage C API, UImageC, UImageCV и UImageCV C API (далее просто &quot;Программа&quot;).&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Copyright (C) 2025-26 Николай Прохоренок (далее просто &quot;автор&quot; или &quot;компания&quot;), https://wwwadmin.ru/&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Прежде чем загружать, устанавливать или использовать Программу, прочтите настоящую Лицензию. Автор согласен предоставить лицензию на данную Программу вам или юридическому лицу, которое вы представляете и которое будет владеть лицензией на использование данной Программы (в совокупности «Вы» или «Вам») только в том случае, если вы примете ВСЕ условия настоящей Лицензии. Запуск Программы означает ПОЛНОЕ СОГЛАСИЕ СО ВСЕМИ УСЛОВИЯМИ настоящей Лицензии.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Использование Программы подразумевает также безусловное согласие со всеми условиями лицензий на библиотеки, используемые Программой, такие как Python, Pillow, ImageMagick, NumPy и др.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Данная Программа распространяется в надежде, что она будет полезна, но БЕЗ ЛЮБЫХ ГАРАНТИЙ. Даже без подразумеваемой гарантии КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Вы не будете иметь права устанавливать или использовать данную Программу, если данная Программа не будет получена от автора (https://wwwadmin.ru/) или уполномоченного автором посредника и вы не примете все условия настоящей Лицензии.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Если Вы не согласны со всеми условиями настоящей Лицензии или если Вы заказали данную Программу у кого-то, не являющегося одобренным источником, то:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
&lt;li&gt;- не загружайте, не устанавливайте и не используйте данную Программу;&lt;/li&gt;
&lt;li&gt;- уничтожьте все экземпляры данной Программы со своего компьютера.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Программа не продается. Программа лицензируется одной из трех типов лицензий: User, Company или Public. Доказательством легального получения Программы и типа Лицензии является кассовый чек или письменный договор. При их отсутствии Лицензия недействительна.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия User &amp;mdash; предоставляется на одного пользователя. Программа может использоваться только в личных целях. Любое распространение Программы запрещено. Лицензия User предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование Программы в течение срока действия настоящей Лицензии. Срок действия Лицензии не ограничен. Число единиц ПО, использующих Программу, не ограничено. Лицензия User доступна только физическим лицам.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия Company &amp;mdash; предоставляется на одну фирму и одно наименование ПО. Программа может использоваться сотрудниками внутри фирмы. Использование Программы клиентами фирмы возможно, но только удаленно, например, предоставление сервиса на сайте (с размещением Программы на сервере) без непосредственного доступа клиента к коду Программы. Любое распространение Программы запрещено. Лицензия Company предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование Программы в течение срока действия настоящей Лицензии. Срок действия Лицензии не ограничен. Лицензия Company доступна только юридическим лицам.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия Public &amp;mdash; предоставляется на одно наименование ПО. Программа может использоваться только в составе ПО, распространяемого публично (платно или бесплатно). Учитывая, что исходные коды динамических библиотек (DLL), входящих в состав Программы, не предоставляются, запрещено использовать Программу в составе ПО, распространяемого по лицензии GPL и аналогичным, требующим обязательное публичное предоставление всех исходных кодов. Лицензия Public предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование Программы в течение срока действия настоящей Лицензии. Срок действия Лицензии не ограничен. Лицензия Public доступна физическим и юридическим лицам.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Пользователь, получивший ваше ПО, включающее Программу по лицензии Public, автоматически получает лицензию User или Company на Программу в зависимости от юридического статуса пользователя. Если пользователь решил создать свое ПО, распространяемое публично, включающее Программу, то он обязан приобрести лицензию Public на Программу. Если пользователь, автоматически получивший лицензию Company, решил создать второе, третье и т. д. ПО, используемое внутри фирмы, включающее Программу, то он обязан приобрести лицензию Company на каждое наименование ПО (за исключением первого), включающее Программу.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Вы не должны, непосредственно или опосредованно, осуществлять декомпиляцию, дизассемблирование, реконструирование Программы, вносить в Программу изменения, разделять Программу на части, отсоединять или отделять какую-либо часть, составляющую или содержащуюся в ней.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Вы не имеете права удалять какие-либо файлы сведений, уведомления, заявления об ограничении ответственности, знаки или этикетки, включенные в состав Программы.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Запрещено выкладывать Программу отдельно, не в составе другого ПО, для свободного скачивания на любом ресурсе в Интернете или другой сети.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Запрещено использовать любые товарные знаки, принадлежащие автору, любым способом, который может указывать или подразумевать, что автор одобряет ваше распространение. Имя автора не может быть использовано для одобрения или продвижения ПО, созданного на основе этой Программы, без специального предварительного письменного разрешения.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Запрещено использовать любые товарные знаки, принадлежащие автору, любым способом, который может указывать или подразумевать, что вы создали данную Программу.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Исходные коды динамических библиотек (DLL) не предоставляются и их распространение запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h_4&quot; title=&quot;mark__h_4&quot;&gt;.h&lt;/code&gt;) в состав Программы не входят и их распространение запрещено. Заголовочные файлы могут быть получены отдельно, исключительно в целях динамической линковки вашего ПО с Программой при сборке и компиляции на вашем компьютере.&lt;/p&gt;

&lt;h4 id=&quot;u_section4_1&quot; title=&quot;u_section4_1&quot;&gt;НЕТ ГАРАНТИИ&lt;/h4&gt;

&lt;p class=&quot;u-text&quot;&gt;НА ПРОГРАММУ НЕ ПРЕДОСТАВЛЯЕТСЯ НИКАКИХ ГАРАНТИЙ. ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ ПРЕДОСТАВЛЯЮТ ПРОГРАММУ &quot;КАК ЕСТЬ&quot; БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. ВЕСЬ РИСК, КАСАЮЩИЙСЯ КАЧЕСТВА И ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММЫ, ЛЕЖИТ НА ВАС. В СЛУЧАЕ ДЕФЕКТА ПРОГРАММЫ ВЫ ПРИНИМАЕТЕ НА СЕБЯ СТОИМОСТЬ ВСЕХ НЕОБХОДИМЫХ ОБСЛУЖИВАНИЙ, РЕМОНТА ИЛИ ИСПРАВЛЕНИЯ.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПЕРЕД ВАМИ ЗА УЩЕРБ, ВКЛЮЧАЯ ЛЮБОЙ ОБЩИЙ, СПЕЦИАЛЬНЫЙ, СЛУЧАЙНЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ НЕВОЗМОЖНОСТЬЮ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОТЕРЮ ДАННЫХ ИЛИ НЕТОЧНУЮ ПЕРЕДАЧУ ДАННЫХ ИЛИ УБЫТКИ, ПРИЧИНЕННЫЕ ВАМИ ИЛИ ТРЕТЬИМИ ЛИЦАМИ, ИЛИ НЕВОЗМОЖНОСТЬ ПРОГРАММЫ РАБОТАТЬ С ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГАЯ СТОРОНА БЫЛИ УВЕДОМЛЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.&lt;/p&gt;

&lt;h4 id=&quot;u_section4_2&quot; title=&quot;u_section4_2&quot;&gt;ОТКАЗ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ&lt;/h4&gt;

&lt;p class=&quot;u-text&quot;&gt;АВТОР, КОМПАНИЯ, ЕЕ ДИРЕКТОРА, РУКОВОДИТЕЛИ, РАБОТНИКИ, АФФИЛИРОВАННЫЕ ЛИЦА, ОДОБРЕННЫЕ ИСТОЧНИКИ, ТОРГОВЫЕ ПОСРЕДНИКИ, ДИСТРИБЬЮТОРЫ, ПОСТАВЩИКИ, СУБЛИЦЕНЗИАТЫ И ПРЕДСТАВИТЕЛИ (ДАЛЕЕ «ОТКАЗЫВАЮЩИЕСЯ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ ЛИЦА») НАСТОЯЩИМ ОТКАЗЫВАЮТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ, ЗАЯВЛЕНИЙ И ЗАВЕРЕНИЙ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИЛИ ЛЮБОЕ ДРУГОЕ ОБОРУДОВАНИЕ ИЛИ СЕТЬ, ИСПОЛЬЗУЕМЫЕ ДЛЯ ВЫПОЛНЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, БУДУТ РАБОТАТЬ БЕЗ ОШИБОК ИЛИ ПЕРЕБОЕВ ИЛИ НЕ БУДУТ ИМЕТЬ УЯЗВИМОСТЕЙ ДЛЯ ПРОНИКНОВЕНИЯ ИЛИ АТАКИ. ЗА ИСКЛЮЧЕНИЕМ ПРЯМО ЗАЯВЛЕННЫХ ГАРАНТИЙ И СРЕДСТВ ЗАЩИТЫ ПРАВ, ПРИВЕДЕННЫХ В ПОЛИТИКЕ ПРЕДОСТАВЛЕНИЯ ГАРАНТИИ НА ПРОДУКТЫ, НАСКОЛЬКО ЭТО ДОПУСТИМО СОГЛАСНО ЗАКОНОДАТЕЛЬСТВУ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПОСТАВЛЯЕТСЯ И ЛЮБЫЕ ПРЕДОСТАВЛЯЕМЫЕ В СВЯЗИ С НИМИ УСЛУГИ ОСУЩЕСТВЛЯЮТСЯ НА УСЛОВИЯХ «КАК ЕСТЬ» И СО ВСЕМИ НЕДОСТАТКАМИ.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;АВТОР НЕ БУДЕТ НЕСТИ ОТВЕТСТВЕННОСТИ ЗА ОСУЩЕСТВЛЕННЫЕ ЛЮБЫМИ ТРЕТЬИМИ ЛИЦАМИ НЕСАНКЦИОНИРОВАННЫЙ ДОСТУП ИЛИ ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ЛЮБЫЕ ПЕРЕДАЧИ ВАМИ ДАННЫХ ИЛИ ДАННЫЕ, ЛЮБЫЕ МАТЕРИАЛЫ ИЛИ ДАННЫЕ, ОТПРАВЛЯЕМЫЕ ИЛИ ПОЛУЧАЕМЫЕ С ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ЛЮБЫЕ ПЕРЕБОИ, ДЕФЕКТЫ ИЛИ ЗАДЕРЖКИ В РАБОТЕ ИЛИ ПЕРЕДАЧЕ ДАННЫХ, КОМПЬЮТЕРНЫЕ ВИРУСЫ, ОТКАЗЫ ЛИНИЙ СВЯЗИ, РАЗРУШЕНИЕ ИЛИ ИСПОЛЬЗОВАНИЕ ЗАПИСЕЙ. АВТОР НЕ ГАРАНТИРУЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НЕ ИМЕЮТ НЕТОЧНОСТЕЙ, ОШИБОК, НЕИСПРАВНОСТЕЙ, ВИРУСОВ, СРЕДСТВ ВЗЛОМА, СБОЕВ, ИЛИ ИНЫХ ВРЕДНЫХ КОМПОНЕНТОВ ИЛИ ПРОГРАММНЫХ ОГРАНИЧЕНИЙ. В РАМКАХ ОТНОШЕНИЙ МЕЖДУ ВАМИ И АВТОРОМ ВСЕ РИСКИ, ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ИЛИ ДЕЙСТВИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ЛЮБЫХ СВЯЗАННЫХ С НИМИ СЛУЖБ, НЕСЕТЕ ВЫ, ПРИНИМАЯ НА СЕБЯ ВСЕ РАСХОДЫ НА ВСЕ НЕОБХОДИМОЕ ОБСЛУЖИВАНИЕ, РЕМОНТ ИЛИ УСТРАНЕНИЕ ПРОБЛЕМ В РЕЗУЛЬТАТЕ ВСЕГО ВЫШЕИЗЛОЖЕННОГО, В СЛУЧАЕ ЛЮБЫХ СТИХИЙНЫХ БЕДСТВИЙ, ПОЛНЫХ ИЛИ ЧАСТИЧНЫХ ОТКЛЮЧЕНИЙ ИНТЕРНЕТА, НЕПРАВИЛЬНОЙ АРХИТЕКТУРЫ ИЛИ НЕВЕРНОГО РАЗВЕРТЫВАНИЯ ВАШИХ ПРИЛОЖЕНИЙ, ВНЕСЕНИЯ ИЗМЕНЕНИЙ В ПЕРЕДАЧУ ДАННЫХ ИЛИ ДАННЫЕ, ПЕРЕДАЧИ И ПРИЕМА ИЛИ НЕПЕРЕДАЧИ И НЕПРИЕМА ЛЮБЫХ МАТЕРИАЛОВ ИЛИ ДАННЫХ ЛИБО ПЕРЕДАЧИ, ПРОИЗОШЕДШЕЙ ЧЕРЕЗ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;ЗА ИСКЛЮЧЕНИЕМ ПРЯМО НАЗВАННЫХ В ПОЛИТИКЕ ПРЕДОСТАВЛЕНИЯ ГАРАНТИИ НА ПРОДУКТЫ ГАРАНТИЙ И СРЕДСТВ ЗАЩИТЫ ПРАВ, АВТОР ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ УСЛОВИЙ, СРЕДСТВ ЗАЩИТЫ И ГАРАНТИЙ, КАСАЮЩИХСЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (КАК ПРЯМО ВЫРАЖЕННЫХ, ТАК И ПОДРАЗУМЕВАЮЩИХСЯ, ПРЕДУСМОТРЕННЫХ ЗАКОНОМ ИЛИ КАКИХ-ТО ДРУГИХ), В ТОМ ЧИСЛЕ, НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ОТ ЛЮБЫХ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ОПРЕДЕЛЕННОМУ НАЗНАЧЕНИЮ, ОТСУТСТВИЯ НАРУШЕНИЯ ЧЬИХ-ЛИБО АВТОРСКИХ ПРАВ, ТОЧНОСТИ ИНФОРМАЦИОННОГО СОДЕРЖИМОГО И ГАРАНТИЙ, ВОЗНИКАЮЩИХ ИЗ ОБЫЧНОЙ ДЕЛОВОЙ ПРАКТИКИ, ЗАКОНОДАТЕЛЬСТВА, ИСПОЛЬЗОВАНИЯ ИЛИ ОТРАСЛЕВОЙ ПРАКТИКИ. В ТОЙ МЕРЕ, В КАКОЙ ПОДРАЗУМЕВАЮЩУЮСЯ ГАРАНТИЮ НЕЛЬЗЯ ИСКЛЮЧИТЬ, ДЕЙСТВИЕ ТАКОЙ ГАРАНТИИ ОГРАНИЧИВАЕТСЯ СРОКОМ ДЕЙСТВИЯ ЯВНО ВЫРАЖЕННЫХ ГАРАНТИЙ. ДАННЫЕ ОТКАЗ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ И ИХ ИСКЛЮЧЕНИЕ ДЕЙСТВУЮТ ДАЖЕ В ТОМ СЛУЧАЕ, ЕСЛИ ЯВНАЯ ГАРАНТИЯ НЕ МОЖЕТ ПРИМЕНЕНА ПО ОСНОВНОМУ НАЗНАЧЕНИЮ.&lt;/p&gt;

&lt;h4 id=&quot;u_section4_3&quot; title=&quot;u_section4_3&quot;&gt;ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ&lt;/h4&gt;

&lt;p class=&quot;u-text&quot;&gt;В САМОМ ПОЛНОМ ОБЪЕМЕ, НАСКОЛЬКО ЭТО НЕ ЗАПРЕЩЕНО ЗАКОНОДАТЕЛЬСТВОМ, НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НИ ОДНО ИЗ ОТКАЗЫВАЮЩИХСЯ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ ЛИЦ НЕ БУДЕТ НЕСТИ ОТВЕТСТВЕННОСТИ ПО ЛЮБОЙ ПРИЧИНЕ, В СВЯЗИ С ЛЮБЫМ ИСКОМ ИЛИ ПРЕТЕНЗИЕЙ, НЕЗАВИСИМО ОТ ИХ ОСНОВАНИЙ, В ТОМ ЧИСЛЕ, НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, СОГЛАСНО УСЛОВИЯМ КОНТРАКТА, В РЕЗУЛЬТАТЕ НАРУШЕНИЯ ЗАКОННЫХ ПРАВ, В СООТВЕТСТВИИ С ГАРАНТИЙНЫМИ ОБЯЗАТЕЛЬСТВАМИ ИЛИ ПОЧЕМУ-ТО ЕЩЕ, ЗА УЩЕРБ В РЕЗУЛЬТАТЕ ПОТЕРИ КОММЕРЧЕСКОЙ ПРИБЫЛИ, НАРУШЕНИЯ КОММЕРЧЕСКОЙ ДЕЯТЕЛЬНОСТИ, УТРАТЫ ИЛИ ПОВРЕЖДЕНИЯ КОММЕРЧЕСКОЙ ИНФОРМАЦИИ ИЛИ ИНЫХ ДАННЫХ, ЗАТРАТ НА ОПЛАТУ ИЛИ ИНОЕ ОБЕСПЕЧЕНИЕ ЗАМЕНЫ, ЛЮБОЙ ДРУГОЙ МАТЕРИАЛЬНЫЙ УЩЕРБ ИЛИ ОСОБЫЙ, СЛУЧАЙНЫЙ, ОПОСРЕДОВАННЫЙ, ШТРАФНОЙ, ГИБРИДНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ В СВЯЗИ С НАСТОЯЩИМ СОГЛАШЕНИЕМ, В РЕЗУЛЬТАТЕ ИЛИ ВСЛЕДСТВИЕ НАСТОЯЩЕГО СОГЛАШЕНИЯ, В ТОМ ЧИСЛЕ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ, ЛЮБЫМИ ЕГО ОБНОВЛЕНИЯМИ ИЛИ ЛЮБЫМИ СВЯЗАННЫМИ С НИМИ СЛУЖБАМИ, ИЛИ В СВЯЗИ С НЕОСУЩЕСТВЛЕНИЕМ В ПОЛНОМ ИЛИ ДОСТАТОЧНОМ ОБЪЕМЕ ПОДДЕРЖКИ ИЛИ ТЕХНИЧЕСКОГО ОБСЛУЖИВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ КАКОЕ-ТО ИЗ ОТКАЗЫВАЮЩИХСЯ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ ЛИЦ БЫЛО УВЕДОМЛЕНО О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;ВЫ ПРЯМО ПРИЗНАЕТЕ, ЧТО СОВОКУПНАЯ ОТВЕТСТВЕННОСТЬ ОТКАЗЫВАЮЩИХСЯ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ ЛИЦ В СВЯЗИ С ЛЮБЫМИ И ВСЕМИ ОСНОВАНИЯМИ ДЛЯ ИСКОВ И ВСЕМИ ТЕОРИЯМИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО НА ОСНОВАНИИ ДОГОВОРА, ЗАКОНА ИЛИ НАРУШЕНИЯ ЗАКОННЫХ ПРАВ (В ТОМ ЧИСЛЕ, НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, В РЕЗУЛЬТАТЕ ОТВЕТСТВЕННОСТИ ЗА ПРОДУКТ) ИЛИ ЧЕГО-ТО ЕЩЕ, НЕ ДОЛЖНА ПРЕВЫШАТЬ&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
&lt;li&gt;(I) 100 (СТО) ДОЛЛАРОВ США ЗА ВСЕ ПРЕДОСТАВЛЕННОЕ ВАМ ПО ЛИЦЕНЗИИ ПРОГРАММНОЕОБЕСПЕЧЕНИЕ АВТОРОМ ИЛИ&lt;/li&gt;
&lt;li&gt;(II) ЦЕНУ, ЗАПЛАЧЕННУЮ АВТОРУ ЗА ЛИЦЕНЗИОННЫЕ ПРАВА НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, КОТОРОЕ СТАЛО ПРИЧИНОЙ ИСКА.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;ВЫ ДОЛЖНЫ ЗАЩИЩАТЬ АВТОРА, ОГРАЖДАТЬ ЕГО ОТ ОТВЕТСТВЕННОСТИ И ОБЕСПЕЧИВАТЬ НЕПРИВЛЕЧЕНИЕ ЕГО К ЛЮБОЙ ОТВЕТСТВЕННОСТИ, ИСКЛЮЧАТЬ ВОЗНИКНОВЕНИЕ ДЛЯ НЕГО УЩЕРБА, УБЫТКОВ ИЛИ ЗАТРАТ (В ТОМ ЧИСЛЕ, В ВИДЕ ГОНОРАРОВ ЮРИСТОВ) В СВЯЗИ С ЛЮБЫМИ СПОРАМИ, СУДЕБНЫМИ РАЗБИРАТЕЛЬСТВАМИ, АДМИНИСТРАТИВНЫМИ СЛУШАНИЯМИ, АРБИТРАЖНЫМИ РАЗБИРАТЕЛЬСТВАМИ ИЛИ УРЕГУЛИРОВАНИЯМИ СПОРОВ НА ОСНОВАНИИ ЛЮБЫХ ИСКОВ ЛЮБЫХ СТОРОН, КРОМЕ ВАС, КАСАЮЩИХСЯ НАРУШЕНИЯ ВАМИ УСЛОВИЙ НАСТОЯЩЕГО СОГЛАШЕНИЯ ИЛИ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (В ТОМ ЧИСЛЕ ЛЮБЫХ ЕГО ОБНОВЛЕНИЙ) ИЛИ ПЛАТФОРМЫ, А ТАКЖЕ В РЕЗУЛЬТАТЕ ТАКИХ СПОРОВ, СУДЕБНЫХ РАЗБИРАТЕЛЬСТВ, АДМИНИСТРАТИВНЫХ СЛУШАНИЙ, АРБИТРАЖНЫХ РАЗБИРАТЕЛЬСТВ ИЛИ УРЕГУЛИРОВАНИЙ СПОРОВ.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;АВТОР ОПРЕДЕЛИЛ СВОИ ЦЕНЫ, ПОЛАГАЯСЬ НА ПРИВЕДЕННЫЕ ВЫШЕ ЗАЯВЛЕНИЯ ОБ ОТКАЗЕ ОТ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ И ОГРАНИЧЕНИЯ ОТВЕТСТВЕННОСТИ. ЭТИ ЗАЯВЛЕНИЯ ОБ ОТКАЗЕ ОТ ОТВЕТСТВЕННОСТИ И ОГРАНИЧЕНИЯ ОТРАЖАЮТ РАСПРЕДЕЛЕНИЕ РИСКОВ МЕЖДУ СТОРОНАМИ И СОСТАВЛЯЮТ СУЩЕСТВЕННУЮ ОСНОВУ СДЕЛКИ МЕЖДУ СТОРОНАМИ.&lt;/p&gt;

&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/licenzija_bibliotek_semejstva_uimage/2026-02-22-125</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/licenzija_bibliotek_semejstva_uimage/2026-02-22-125</guid>
			<pubDate>Sun, 22 Feb 2026 20:06:43 GMT</pubDate>
		</item>
		<item>
			<title>UImageCV: библиотека алгоритмов компьютерного зрения для Python</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV: библиотека компьютерного зрения для Python, C и C++&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV&quot; title=&quot;mark_UImageCV&quot;&gt;UImageCV&lt;/code&gt; для Python 3.8+ (только для Windows) содержит алгоритмы компьютерного зрения. Она является надстройкой над библиотекой &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; (пакет &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img&quot; title=&quot;mark_unicross_img&quot;&gt;unicross_img&lt;/code&gt;), которая позволяет загрузить, сохранить и обработать изображение. В свою очередь библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_2&quot; title=&quot;mark_UImageC_2&quot;&gt;UImageC&lt;/code&gt; является надстройкой над библиотеками Pillow и ImageMagick. При этом базовый функционал библиотеки реализован на языке C.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Для тесного взаимодействия с библиотекой OpenCV имеется класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR&quot; title=&quot;mark_UImageBGR&quot;&gt;UImageBGR&lt;/code&gt;. Массивы &lt;code class=&quot;u-courier&quot; i...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageCV: библиотека компьютерного зрения для Python, C и C++&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV&quot; title=&quot;mark_UImageCV&quot;&gt;UImageCV&lt;/code&gt; для Python 3.8+ (только для Windows) содержит алгоритмы компьютерного зрения. Она является надстройкой над библиотекой &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; (пакет &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img&quot; title=&quot;mark_unicross_img&quot;&gt;unicross_img&lt;/code&gt;), которая позволяет загрузить, сохранить и обработать изображение. В свою очередь библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_2&quot; title=&quot;mark_UImageC_2&quot;&gt;UImageC&lt;/code&gt; является надстройкой над библиотеками Pillow и ImageMagick. При этом базовый функционал библиотеки реализован на языке C.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Для тесного взаимодействия с библиотекой OpenCV имеется класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR&quot; title=&quot;mark_UImageBGR&quot;&gt;UImageBGR&lt;/code&gt;. Массивы &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes&quot; title=&quot;mark_ctypes&quot;&gt;ctypes&lt;/code&gt;, используемые классом &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_2&quot; title=&quot;mark_UImageBGR_2&quot;&gt;UImageBGR&lt;/code&gt;, можно обернуть в массивы NumPy, используемые библиотекой OpenCV, без копирования данных:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code2&quot; title=&quot;code2&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_cv.uimagebgr import UImageBGR
from unicross_img.uhelper_np import UHelperNP
import cv2

img = UImageBGR.load(&quot;foto.jpg&quot;)
print(img) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# UImageBGR(width=500, height=333)
# Преобразование в массив NumPy без копирования
np_gray = cv2.cvtColor(img.get_buffer(), cv2.COLOR_BGR2GRAY)
print(type(np_gray)) # &lt;class &apos;numpy.ndarray&apos;&amp;gt;
print(np_gray.shape) # (333, 500)
# Преобразование массива NumPy в UImageGray
img_gray = UHelperNP.ndimage_to_uimage(np_gray)
print(img_gray) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# UImageGray(width=500, height=333)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Большинство алгоритмов в библиотеке &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV_2&quot; title=&quot;mark_UImageCV_2&quot;&gt;UImageCV&lt;/code&gt; реализованы на языке C и не зависят от библиотеки OpenCV или любой другой библиотеки компьютерного зрения. Поэтому предыдущий пример можно записать проще и без всяких лишних преобразований в &lt;code class=&quot;u-courier&quot; id=&quot;mark_BGR&quot; title=&quot;mark_BGR&quot;&gt;BGR&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code3&quot; title=&quot;code3&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB

img = UImageRGB.load(&quot;foto.jpg&quot;)
print(img) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# UImageRGB(width=500, height=333)
# Преобразование в UImageGray
img_gray = img.get_uimagegray()
print(img_gray) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# UImageGray(width=500, height=333)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Благодаря использованию массивов &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_2&quot; title=&quot;mark_ctypes_2&quot;&gt;ctypes&lt;/code&gt;, которые доступны напрямую через атрибут &lt;code class=&quot;u-courier&quot; id=&quot;mark_arr&quot; title=&quot;mark_arr&quot;&gt;arr&lt;/code&gt;, имеется возможность непосредственной обработки изображения с помощью компилируемых языков C, C++, Go и др. с максимальной скоростью без копирования. Переделаем предыдущий пример и используем C API напрямую:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code4&quot; title=&quot;code4&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB
from unicross_img.uimagegray import UImageGray
import os.path
import ctypes

# Использование UImage C API
dll_path = r&quot;D:&amp;#92;UImageC&amp;#92;unicross_img&amp;#92;bin&quot;
_ulibpath = os.path.abspath(os.path.join(dll_path, &quot;libuimagergb.dll&quot;))
_ulibc = ctypes.CDLL(_ulibpath)

_uimagergb_to_gray = _ulibc.uimagergb_to_gray
_uimagergb_to_gray.argtypes = [
 &amp;nbsp;&amp;nbsp;ctypes.POINTER(ctypes.c_ubyte), ctypes.c_int,
 &amp;nbsp;&amp;nbsp;ctypes.POINTER(ctypes.c_ubyte), ctypes.c_int]
_uimagergb_to_gray.restype = ctypes.c_int

img = UImageRGB.load(&quot;foto.jpg&quot;)
print(img) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# UImageRGB(width=500, height=333)
# Преобразование в UImageGray. Подготовка буфера
img_gray = UImageGray(img.get_width(), img.get_height())
# Вызываем код на языке C (arr не копируется!)
res = _uimagergb_to_gray(img.arr, img.arr._length_,
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; img_gray.arr, img_gray.arr._length_)
if res == 1:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(img_gray) &amp;nbsp;# UImageGray(width=500, height=333)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img_gray.save(&quot;test.png&quot;)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Ошибка при выполнении операции&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека компьютерного зрения &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV_3&quot; title=&quot;mark_UImageCV_3&quot;&gt;UImageCV&lt;/code&gt; помимо кода на Python содержит также код на языке C, который можно вызвать из программ на Python, C или C++. Код компилируется в динамические библиотеки (dll) под Windows x64. Подключить библиотеку в программе на Python позволяет модуль &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_3&quot; title=&quot;mark_ctypes_3&quot;&gt;ctypes&lt;/code&gt;, входящий в состав стандартной библиотеки. В предыдущем примере мы использовали код на языке C, расположенный в &lt;code class=&quot;u-courier&quot; id=&quot;mark_libuimagergb_dll&quot; title=&quot;mark_libuimagergb_dll&quot;&gt;libuimagergb.dll&lt;/code&gt;. Точно также можно подключить любую другую динамическую библиотеку и выполнять обработку изображения на компилируемых языках.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Динамические библиотеки, входящие в состав &lt;code class=&quot;u-courier&quot;&gt;UImageCV C API&lt;/code&gt;, не имеют зависимостей от кода сторонних библиотек! Все названия функций внутри dll находятся в своих собственных пространствах имен (в коде выше это префикс &lt;code class=&quot;u-courier&quot;&gt;&quot;uimagergb_&quot;&lt;/code&gt; перед названием функции), поэтому конфликтов имен с кодом сторонних разработчиков быть не должно!&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Обратите внимание: исходные коды динамических библиотек (DLL) не предоставляются и их распространение запрещено. Заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h&quot; title=&quot;mark__h&quot;&gt;.h&lt;/code&gt;) в состав библиотеки не входят и их распространение запрещено. Заголовочные файлы могут быть получены отдельно, исключительно в целях динамической линковки вашего ПО с DLL при сборке и компиляции на вашем компьютере.&lt;/p&gt;

&lt;h3 id=&quot;u_section3_1&quot; title=&quot;u_section3_1&quot;&gt;Системные требования и ограничения&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Для корректной работы библиотеки нужно соблюсти следующие условия:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;операционная система Windows 8, 8.1, 10 или 11. Разрядность x64;&lt;/li&gt;
 &lt;li&gt;процессор чем мощнее, тем лучше;&lt;/li&gt;
 &lt;li&gt;наличие библиотеки Python 3.8+;&lt;/li&gt;
 &lt;li&gt;для использования всех возможностей требуются библиотеки Pillow, ImageMagick, OpenCV, NumPy и Matplotlib. При отсутствии какой-либо библиотеки некоторые возможности станут недоступны;&lt;/li&gt;
 &lt;li&gt;минимум 1 ГБайт свободного места в оперативной памяти;&lt;/li&gt;
 &lt;li&gt;минимум 100 МБайт свободного места на жестком диске.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека имеет следующие основные ограничения:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;максимальная ширина изображения &amp;mdash; 8000 px;&lt;/li&gt;
 &lt;li&gt;максимальная высота изображения &amp;mdash; 8000 px.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека работает только в Windows x64. Библиотеки Python, Pillow, ImageMagick, OpenCV, NumPy и Matplotlib в комплект не входят. Установка Python 3.8 под Windows подробно описана в документации (см. каталог &lt;b class=&quot;u-bold&quot;&gt;docs&amp;#92;test_python&amp;#92;setup_python&lt;/b&gt;). Процесс установки Pillow, OpenCV, NumPy и Matplotlib предельно прост:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code5&quot; title=&quot;code5&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;pip install Pillow
pip install opencv-python
pip install numpy
pip install matplotlib&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Версии этих библиотек, использованные при тестировании:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code6&quot; title=&quot;code6&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; import PIL
&amp;gt;&amp;gt;&amp;gt; PIL.__version__
&apos;9.3.0&apos;
&amp;gt;&amp;gt;&amp;gt; import cv2
&amp;gt;&amp;gt;&amp;gt; cv2.__version__
&apos;4.6.0&apos;
&amp;gt;&amp;gt;&amp;gt; import numpy
&amp;gt;&amp;gt;&amp;gt; numpy.__version__
&apos;1.23.4&apos;
&amp;gt;&amp;gt;&amp;gt; import matplotlib
&amp;gt;&amp;gt;&amp;gt; matplotlib.__version__
&apos;3.6.2&apos;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Архив с библиотекой ImageMagick нужно &amp;nbsp;загрузить со страницы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code7&quot; title=&quot;code7&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;https://imagemagick.org/script/download.php&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Для Windows x64 загрузить можно такой архив:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code8&quot; title=&quot;code8&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;ImageMagick-7.1.2-8-portable-Q16-x64.7z&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Версия библиотеки ImageMagick, используемая при тестировании:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code9&quot; title=&quot;code9&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;C:&amp;#92;Users&amp;#92;Unicross&amp;gt;C:&amp;#92;ImageMagick&amp;#92;magick -version
Version: ImageMagick 7.0.11-13 Q16 x64 2021-05-17 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Visual C++: 192829914
Features: Cipher DPC OpenCL
Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg
 jxl lcms lqr lzma openexr pangocairo png ps raw rsvg tiff webp xml
 zip zlib&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_1&quot; title=&quot;u_section3_1&quot;&gt;Подключение библиотеки и импорт классов из модулей&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV_4&quot; title=&quot;mark_UImageCV_4&quot;&gt;UImageCV&lt;/code&gt; включает два пакета:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;пакет &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img_2&quot; title=&quot;mark_unicross_img_2&quot;&gt;unicross_img&lt;/code&gt; &amp;mdash; содержит код библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_3&quot; title=&quot;mark_UImageC_3&quot;&gt;UImageC&lt;/code&gt; ;&lt;/li&gt;
 &lt;li&gt;пакет &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_cv&quot; title=&quot;mark_unicross_cv&quot;&gt;unicross_cv&lt;/code&gt; &amp;mdash; содержит &amp;nbsp;собственно код библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageCV_5&quot; title=&quot;mark_UImageCV_5&quot;&gt;UImageCV&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Оба пакета нужно разместить либо в одном пространстве имен в путях поиска модулей, либо просто рядом друг с другом. Если программа расположена рядом с каталогами библиотек, то подключение модуля из пакета и импорт класса выполняются примерно так:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code10&quot; title=&quot;code10&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB
from unicross_cv.uimagebgr import UImageBGR&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Если программа расположена в другом месте, то предварительно нужно прописать путь к библиотекам в пути поиска модулей:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code11&quot; title=&quot;code11&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import sys
sys.path.append(r&quot;D:&amp;#92;UImageC&quot;)
from unicross_img.uimagergb import UImageRGB
from unicross_cv.uimagebgr import UImageBGR&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Проверим установку путем вывода версий библиотек:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code12&quot; title=&quot;code12&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import unicross_img
import unicross_cv

print(unicross_img.__version__) # 1.1.0
print(unicross_img.VERSION) &amp;nbsp;&amp;nbsp;&amp;nbsp; # (&apos;1&apos;, &apos;1&apos;, &apos;0&apos;)
print(unicross_cv.__version__) &amp;nbsp;# 1.0.0
print(unicross_cv.VERSION) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# (&apos;1&apos;, &apos;0&apos;, &apos;0&apos;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_2&quot; title=&quot;u_section3_2&quot;&gt;Модули библиотеки UImageCV&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Внутри пакета &amp;nbsp;&lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_cv_2&quot; title=&quot;mark_unicross_cv_2&quot;&gt;unicross_cv&lt;/code&gt; расположены следующие модули:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagebgr_py&quot; title=&quot;mark_uimagebgr_py&quot;&gt;uimagebgr.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_3&quot; title=&quot;mark_UImageBGR_3&quot;&gt;UImageBGR&lt;/code&gt;, предназначенный для хранения цветного изображения с 3-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_BGR_2&quot; title=&quot;mark_BGR_2&quot;&gt;BGR&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte&quot; title=&quot;mark_c_ubyte&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagebgrchange_py&quot; title=&quot;mark_uimagebgrchange_py&quot;&gt;uimagebgrchange.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGRChange&quot; title=&quot;mark_UImageBGRChange&quot;&gt;UImageBGRChange&lt;/code&gt;, предназначенный для выполнения преобразований &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_4&quot; title=&quot;mark_UImageBGR_4&quot;&gt;UImageBGR&lt;/code&gt; (средствами Pillow или ImageMagick и без). Почти все методы принимают объект &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_5&quot; title=&quot;mark_UImageBGR_5&quot;&gt;UImageBGR&lt;/code&gt; и возвращают копию преобразованного объекта &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_6&quot; title=&quot;mark_UImageBGR_6&quot;&gt;UImageBGR&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_None&quot; title=&quot;mark_None&quot;&gt;None&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagedraw_py&quot; title=&quot;mark_uimagedraw_py&quot;&gt;uimagedraw.py&lt;/code&gt; &amp;mdash; модуль для рисования. Содержит следующие идентификаторы:&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list2&quot;&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGRDrawPIL&quot; title=&quot;mark_UImageBGRDrawPIL&quot;&gt;UImageBGRDrawPIL&lt;/code&gt;, предназначенный для рисования на &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_7&quot; title=&quot;mark_UImageBGR_7&quot;&gt;UImageBGR&lt;/code&gt; средствами Pillow;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGRDrawCv2&quot; title=&quot;mark_UImageBGRDrawCv2&quot;&gt;UImageBGRDrawCv2&lt;/code&gt;, предназначенный для рисования на &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_8&quot; title=&quot;mark_UImageBGR_8&quot;&gt;UImageBGR&lt;/code&gt; средствами OpenCV;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagehsv_py&quot; title=&quot;mark_uimagehsv_py&quot;&gt;uimagehsv.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageHSV&quot; title=&quot;mark_UImageHSV&quot;&gt;UImageHSV&lt;/code&gt;, предназначенный для хранения цветного изображения с 3-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_HSV&quot; title=&quot;mark_HSV&quot;&gt;HSV&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_2&quot; title=&quot;mark_c_ubyte_2&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagehsl_py&quot; title=&quot;mark_uimagehsl_py&quot;&gt;uimagehsl.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageHSL&quot; title=&quot;mark_UImageHSL&quot;&gt;UImageHSL&lt;/code&gt;, предназначенный для хранения цветного изображения с 3-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_HSL&quot; title=&quot;mark_HSL&quot;&gt;HSL&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_3&quot; title=&quot;mark_c_ubyte_3&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;). Преобразование цветовых моделей выполняется средствами OpenCV;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagelab_py&quot; title=&quot;mark_uimagelab_py&quot;&gt;uimagelab.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageLab&quot; title=&quot;mark_UImageLab&quot;&gt;UImageLab&lt;/code&gt;, предназначенный для хранения цветного изображения с 3-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_Lab&quot; title=&quot;mark_Lab&quot;&gt;Lab&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_4&quot; title=&quot;mark_c_ubyte_4&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;). Преобразование цветовых моделей выполняется средствами OpenCV;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_cv2_py&quot; title=&quot;mark_uhelper_cv2_py&quot;&gt;uhelper_cv2.py&lt;/code&gt; &amp;mdash; вспомогательный модуль для взаимодействия с OpenCV. Содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperCv2&quot; title=&quot;mark_UHelperCv2&quot;&gt;UHelperCv2&lt;/code&gt; с помощью которого можно загрузить изображение из файла или сохранить изображение в файл;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvbgr_py&quot; title=&quot;mark_ucvbgr_py&quot;&gt;ucvbgr.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvBGR&quot; title=&quot;mark_UCvBGR&quot;&gt;UCvBGR&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageBGR_9&quot; title=&quot;mark_UImageBGR_9&quot;&gt;UImageBGR&lt;/code&gt;. Преобразование цветовых моделей выполняется средствами OpenCV;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvrgb_py&quot; title=&quot;mark_ucvrgb_py&quot;&gt;ucvrgb.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvRGB&quot; title=&quot;mark_UCvRGB&quot;&gt;UCvRGB&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB&quot; title=&quot;mark_UImageRGB&quot;&gt;UImageRGB&lt;/code&gt;. Преобразование цветовых моделей выполняется средствами OpenCV;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvgray_py&quot; title=&quot;mark_ucvgray_py&quot;&gt;ucvgray.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvGray&quot; title=&quot;mark_UCvGray&quot;&gt;UCvGray&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray&quot; title=&quot;mark_UImageGray&quot;&gt;UImageGray&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvgrayfilter_py&quot; title=&quot;mark_ucvgrayfilter_py&quot;&gt;ucvgrayfilter.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvGrayFilter&quot; title=&quot;mark_UCvGrayFilter&quot;&gt;UCvGrayFilter&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_2&quot; title=&quot;mark_UImageGray_2&quot;&gt;UImageGray&lt;/code&gt; (свертка, морфологические операции и др.);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvgrayedges_py&quot; title=&quot;mark_ucvgrayedges_py&quot;&gt;ucvgrayedges.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvGrayEdges&quot; title=&quot;mark_UCvGrayEdges&quot;&gt;UCvGrayEdges&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_3&quot; title=&quot;mark_UImageGray_3&quot;&gt;UImageGray&lt;/code&gt; (выделение границ объектов);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucvgrayblur_py&quot; title=&quot;mark_ucvgrayblur_py&quot;&gt;ucvgrayblur.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCvGrayBlur&quot; title=&quot;mark_UCvGrayBlur&quot;&gt;UCvGrayBlur&lt;/code&gt;, предназначенный для выполнения алгоритмов компьютерного зрения с изображением &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_4&quot; title=&quot;mark_UImageGray_4&quot;&gt;UImageGray&lt;/code&gt; (размытие и усиление резкости).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;u_section_3_24&quot; title=&quot;u_section_3_24&quot;&gt;Как заказать библиотеки UImageCV и UImageCV C API&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотеки не продаются. Библиотеки лицензируются одной из трех типов лицензий: &lt;code class=&quot;u-courier&quot; id=&quot;mark_User&quot; title=&quot;mark_User&quot;&gt;User&lt;/code&gt;, &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company&quot; title=&quot;mark_Company&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public&quot; title=&quot;mark_Public&quot;&gt;Public&lt;/code&gt;.&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_2&quot; title=&quot;mark_User_2&quot;&gt;User&lt;/code&gt; &amp;mdash; предоставляется на одного пользователя. Библиотека может использоваться только в личных целях. Любое распространение библиотеки запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_3&quot; title=&quot;mark_User_3&quot;&gt;User&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Число единиц ПО, использующих библиотеку, не ограничено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_4&quot; title=&quot;mark_User_4&quot;&gt;User&lt;/code&gt; доступна только физическим лицам. Стоимость лицензии на UImageCV &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;5 000&lt;/code&gt; руб., на UImageCV C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;4 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_2&quot; title=&quot;mark_Company_2&quot;&gt;Company&lt;/code&gt; &amp;mdash; предоставляется на одну фирму и одно наименование ПО. Программа с библиотекой может использоваться сотрудниками внутри фирмы. Использование программы с библиотекой клиентами фирмы возможно, но только удаленно, например, предоставление сервиса на сайте (с размещением библиотеки на сервере) без непосредственного доступа клиента к коду библиотеки. Любое распространение библиотеки и программы с библиотекой запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_3&quot; title=&quot;mark_Company_3&quot;&gt;Company&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_4&quot; title=&quot;mark_Company_4&quot;&gt;Company&lt;/code&gt; доступна только юридическим лицам. &amp;nbsp;Стоимость лицензии на UImageCV &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;25 000&lt;/code&gt; руб., на UImageCV C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;20 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_2&quot; title=&quot;mark_Public_2&quot;&gt;Public&lt;/code&gt; &amp;mdash; предоставляется на одно наименование ПО. Библиотека может использоваться только в составе ПО, распространяемого публично (платно или бесплатно). Учитывая, что исходные коды динамических библиотек (DLL), входящих в состав библиотеки, не предоставляются, запрещено использовать библиотеку в составе ПО, распространяемого по лицензии GPL и аналогичным, требующим обязательное публичное предоставление всех исходных кодов. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_3&quot; title=&quot;mark_Public_3&quot;&gt;Public&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_4&quot; title=&quot;mark_Public_4&quot;&gt;Public&lt;/code&gt; доступна физическим и юридическим лицам. Стоимость лицензии на UImageCV &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;100 000&lt;/code&gt; руб., на UImageCV C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;80 000&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Пользователь, получивший ваше ПО, включающее библиотеку по лицензии &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_5&quot; title=&quot;mark_Public_5&quot;&gt;Public&lt;/code&gt;, автоматически получает лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_5&quot; title=&quot;mark_User_5&quot;&gt;User&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_5&quot; title=&quot;mark_Company_5&quot;&gt;Company&lt;/code&gt; на библиотеку в зависимости от юридического статуса пользователя. Если пользователь решил создать свое ПО, распространяемое публично, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_6&quot; title=&quot;mark_Public_6&quot;&gt;Public&lt;/code&gt; на библиотеку. Если пользователь, автоматически получивший лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_6&quot; title=&quot;mark_Company_6&quot;&gt;Company&lt;/code&gt;, решил создать второе, третье и т. д. ПО, используемое внутри фирмы, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_7&quot; title=&quot;mark_Company_7&quot;&gt;Company&lt;/code&gt; на каждое наименование ПО (за исключением первого), включающее библиотеку.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Лицензия, выданная на библиотеку UImageCV (или UImageCV C API), распространяется и на библиотеку UImageC (или UImage C API), входящую в состав дистрибутива, при условии неделимого совместного использования библиотек. Если вы решили использовать библиотеку UImageC отдельно от UImageCV, то нужно приобрести отдельную лицензию на использование библиотеки UImageC.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Исходные коды динамических библиотек (DLL) не предоставляются и их распространение запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h_2&quot; title=&quot;mark__h_2&quot;&gt;.h&lt;/code&gt;) в состав библиотеки не входят и их распространение запрещено. Заголовочные файлы могут быть получены отдельно (входят в состав руководства пользователя), исключительно в целях динамической линковки вашего ПО с DLL при сборке и компиляции на вашем компьютере.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Документация содержится в строках документирования. Для получения списка методов нужно использовать функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_dir&quot; title=&quot;mark_dir&quot;&gt;dir()&lt;/code&gt;, а для получения описания метода &amp;mdash; функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_help&quot; title=&quot;mark_help&quot;&gt;help()&lt;/code&gt;. Специализированные текстовые редакторы автоматически предоставят список методов при наборе букв и описание метода из строки документирования при выборе метода из списка. Расширенная документация по C API доступна только в руководстве разработчика, которое в состав библиотеки не входит и приобретается отдельно.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Чтобы иметь полное представление о возможностях библиотеки, нужно приобрести руководство разработчика в формате HTML. В его состав входит расширенная документация и множество примеров, которые можно запустить на выполнение и наглядно увидеть результат. Дополнительно доступны заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h_3&quot; title=&quot;mark__h_3&quot;&gt;.h&lt;/code&gt;), которые могут быть использованы исключительно в целях динамической линковки вашего ПО с DLL при сборке и компиляции на вашем компьютере. Распространение руководства разработчика и заголовочных файлов запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Доступны для заказа следующие руководства разработчика в формате HTML (можно открыть любым Web-браузером; оглавление в файле &lt;code class=&quot;u-courier&quot; id=&quot;mark_index_html&quot; title=&quot;mark_index_html&quot;&gt;index.html&lt;/code&gt;):&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&quot;UImageC и UImage C API. Руководство разработчика&quot;. Включает заголовочные файлы для UImage C API. &lt;a href=&quot;https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;250&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageCV. Руководство разработчика&quot;. Включает заголовочные файлы для &amp;nbsp;UImageCV C API. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_rukovodstvo_razrabotchika/2026-02-23-126&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;300&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageCV C API. Руководство разработчика&quot;. Включает заголовочные файлы для &amp;nbsp;UImageCV C API. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_c_api_rukovodstvo_razrabotchika/2026-03-16-128&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;300&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Прежде чем заказывать библиотеку:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;прочтите текст &lt;a href=&quot;https://wwwadmin.ru/blog/licenzija_bibliotek_semejstva_uimage/2026-02-22-125&quot;&gt;Лицензии&lt;/a&gt;. Только если она вас полностью устраивает переходите к следующему шагу;&lt;/li&gt;
 &lt;li&gt;выберите библиотеку и тип лицензии, подходящий под вашу программу или задачу. Учитывайте, что изменять что-либо в дистрибутиве библиотеки нельзя. Это означает, что просто скопировать &amp;nbsp;DLL в каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin&quot; title=&quot;mark_bin&quot;&gt;bin&lt;/code&gt; вашей программы при заказе UImageC или UImageCV не получится. Нужно будет целиком копировать каталог с библиотекой или прописывать путь. Если библиотеку планируется использовать только в C или C++, то правильнее будет заказать UImage C API или UImageCV C API. В комплект этих библиотек входят только DLL и лицензия, которые можно скопировать в &amp;nbsp;каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin_2&quot; title=&quot;mark_bin_2&quot;&gt;bin&lt;/code&gt; вашей программы;&lt;/li&gt;
 &lt;li&gt;закажите соответствующее руководство разработчика, чтобы полностью понимать возможности выбранной библиотеки;&lt;/li&gt;
 &lt;li&gt;закажите лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_6&quot; title=&quot;mark_User_6&quot;&gt;User&lt;/code&gt;, чтобы попробовать на практике и убедиться, что библиотека вам подходит. Вы всегда можете повысить лицензию до &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_8&quot; title=&quot;mark_Company_8&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_7&quot; title=&quot;mark_Public_7&quot;&gt;Public&lt;/code&gt; с зачетом уже оплаченной суммы. В обратную сторону это не действует;&lt;/li&gt;
 &lt;li&gt;закажите повышение лицензии с зачетом, если лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_7&quot; title=&quot;mark_User_7&quot;&gt;User&lt;/code&gt; вас не устраивает.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Если есть вопросы, то задавайте. &lt;a href=&quot;https://wwwadmin.ru/#contacts&quot;&gt;Контакты и форма для заказа&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimagec_biblioteka_dlja_raboty_s_izobrazhenijami_v_python_c_i_c/2026-01-05-115&quot;&gt;Описание библиотеки UImageC&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/uimagecv_biblioteka_algoritmov_kompjuternogo_zrenija_dlja_python/2026-02-20-124</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/uimagecv_biblioteka_algoritmov_kompjuternogo_zrenija_dlja_python/2026-02-20-124</guid>
			<pubDate>Fri, 20 Feb 2026 20:12:51 GMT</pubDate>
		</item>
		<item>
			<title>UImageC и UImage C API. Руководство разработчика</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageC и UImage C API. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;UImageC 1.0.0: библиотека для работы с изображениями в Python, C и C++&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обзор возможностей библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Подключение библиотеки и импорт классов из модулей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Примеры использования библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование Pillow в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование ImageMagick в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Форматы файлов UImage и PPM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с Tkinter и объектом PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с биб...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageC и UImage C API. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;UImageC 1.0.0: библиотека для работы с изображениями в Python, C и C++&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обзор возможностей библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Подключение библиотеки и импорт классов из модулей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Примеры использования библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование Pillow в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование ImageMagick в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Форматы файлов UImage и PPM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с Tkinter и объектом PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой Matplotlib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Настройка пути к каталогу для временных файлов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Модули библиотеки UImageC&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UColor: цвет в формате RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объекты URGBA и URGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание экземпляра класса UColor&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Основные методы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости и насыщенности цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование между диапазонами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статические методы для работы с кортежами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UPoint: координаты точки (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UPointF: координаты точки (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс USize: размеры прямоугольной области (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс USizeF: размеры прямоугольной области (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс URect: координаты и размеры прямоугольной области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Чтение и запись графических файлов .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Формат файла .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения Pillow в файл .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperTk: взаимодействие с библиотекой Tkinter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта PhotoImage в объект UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка и сохранение файлов в формате PNG&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UMat: матрица с произвольными значениями&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImage: изображение RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageChange: преобразование изображений UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Наложение одного изображения на другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление внешней или внутренней тени&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сепия&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Негатив&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости, контраста и цветового тона изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление прозрачности и альфа-канала&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGB: изображение RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImage и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGBChange: преобразование изображений UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Наложение одного изображения на другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление внешней или внутренней тени&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сепия&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Негатив&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости, контраста и цветового тона изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGray: изображение в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW GRAY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW GRAY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Работа с черно-белым изображением&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект Image из Pillow и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в массив байтов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGrayChange: преобразование изображений UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UMask: маска или черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание объекта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии объекта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Строка в формате BWSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в список&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UFont: характеристики шрифта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageDrawPIL: рисование на UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGBDrawPIL: рисование на UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGrayDrawPIL: рисование на UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperNP: взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание буфера (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint8 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип int32 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint16 (диапазон значений от 0 до 65 535)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип float32 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип float64 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование массива NumPy в объект изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint8 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип int32 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint16 (диапазон значений от 0 до 65 535)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Типы float32 и float64 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветного изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенках серого в черно-белое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление паддинга для свертки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: сравнение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух строк в формате BWSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperPlt: взаимодействие с библиотекой Matplotlib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в диалоговом окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageRGB: просмотр гистограмм всех каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вычисление и просмотр гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperPlt: взаимодействие с библиотекой Matplotlib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; C API&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Знакомство с массивами ctypes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UCArray: работа с массивами ctypes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание массива ctypes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание массива ctypes на основе списка&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание массива ctypes на основе объекта типа bytes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии массива ctypes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImage C API: изображение RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Проверка наличия прозрачных пикселей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageRGB C API: изображение RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сборка из каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray C API: изображение в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка изображения цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование целочисленного диапазона в вещественный и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UMask C API: маска или черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimagec_biblioteka_dlja_raboty_s_izobrazhenijami_v_python_c_i_c/2026-01-05-115&quot;&gt;Описание библиотеки UImageC&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;zakaz&quot; title=&quot;zakaz&quot;&gt;Как заказать библиотеки UImageC и UImage C API&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотеки не продаются. Библиотеки лицензируются одной из трех типов лицензий: &lt;code class=&quot;u-courier&quot; id=&quot;mark_User&quot; title=&quot;mark_User&quot;&gt;User&lt;/code&gt;, &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company&quot; title=&quot;mark_Company&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public&quot; title=&quot;mark_Public&quot;&gt;Public&lt;/code&gt;.&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_2&quot; title=&quot;mark_User_2&quot;&gt;User&lt;/code&gt; &amp;mdash; предоставляется на одного пользователя. Библиотека может использоваться только в личных целях. Любое распространение библиотеки запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_3&quot; title=&quot;mark_User_3&quot;&gt;User&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Число единиц ПО, использующих библиотеку, не ограничено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_4&quot; title=&quot;mark_User_4&quot;&gt;User&lt;/code&gt; доступна только физическим лицам. Стоимость лицензии на UImageC &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;3 000&lt;/code&gt; руб., на UImage C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;2 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_2&quot; title=&quot;mark_Company_2&quot;&gt;Company&lt;/code&gt; &amp;mdash; предоставляется на одну фирму и одно наименование ПО. Программа с библиотекой может использоваться сотрудниками внутри фирмы. Использование программы с библиотекой клиентами фирмы возможно, но только удаленно, например, предоставление сервиса на сайте (с размещением библиотеки на сервере) без непосредственного доступа клиента к коду библиотеки. Любое распространение библиотеки и программы с библиотекой запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_3&quot; title=&quot;mark_Company_3&quot;&gt;Company&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_4&quot; title=&quot;mark_Company_4&quot;&gt;Company&lt;/code&gt; доступна только юридическим лицам. Стоимость лицензии на UImageC &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;15 000&lt;/code&gt; руб., на UImage C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;10 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_2&quot; title=&quot;mark_Public_2&quot;&gt;Public&lt;/code&gt; &amp;mdash; предоставляется на одно наименование ПО. Библиотека может использоваться только в составе ПО, распространяемого публично (платно или бесплатно). Учитывая, что исходные коды динамических библиотек (DLL), входящих в состав библиотеки, не предоставляются, запрещено использовать библиотеку в составе ПО, распространяемого по лицензии GPL и аналогичным, требующим обязательное публичное предоставление всех исходных кодов. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_3&quot; title=&quot;mark_Public_3&quot;&gt;Public&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_4&quot; title=&quot;mark_Public_4&quot;&gt;Public&lt;/code&gt; доступна физическим и юридическим лицам. Стоимость лицензии на UImageC &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;50 000&lt;/code&gt; руб., на UImage C API (только DLL) &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;30 000&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Пользователь, получивший ваше ПО, включающее библиотеку по лицензии &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_5&quot; title=&quot;mark_Public_5&quot;&gt;Public&lt;/code&gt;, автоматически получает лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_5&quot; title=&quot;mark_User_5&quot;&gt;User&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_5&quot; title=&quot;mark_Company_5&quot;&gt;Company&lt;/code&gt; на библиотеку в зависимости от юридического статуса пользователя. Если пользователь решил создать свое ПО, распространяемое публично, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_6&quot; title=&quot;mark_Public_6&quot;&gt;Public&lt;/code&gt; на библиотеку. Если пользователь, автоматически получивший лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_6&quot; title=&quot;mark_Company_6&quot;&gt;Company&lt;/code&gt;, решил создать второе, третье и т. д. ПО, используемое внутри фирмы, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_7&quot; title=&quot;mark_Company_7&quot;&gt;Company&lt;/code&gt; на каждое наименование ПО (за исключением первого), включающее библиотеку.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Исходные коды динамических библиотек (DLL) не предоставляются и их распространение запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h&quot; title=&quot;mark__h&quot;&gt;.h&lt;/code&gt;) в состав библиотеки не входят и их распространение запрещено. Заголовочные файлы могут быть получены отдельно (входят в состав руководства пользователя), исключительно в целях динамической линковки вашего ПО с DLL при сборке и компиляции на вашем компьютере.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Документация содержится в строках документирования. Для получения списка методов нужно использовать функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_dir&quot; title=&quot;mark_dir&quot;&gt;dir()&lt;/code&gt;, а для получения описания метода &amp;mdash; функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_help&quot; title=&quot;mark_help&quot;&gt;help()&lt;/code&gt;. Специализированные текстовые редакторы автоматически предоставят список методов при наборе букв и описание метода из строки документирования при выборе метода из списка. Документация по C API доступна только в руководстве разработчика, которое в состав библиотеки не входит и приобретается отдельно.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Чтобы иметь полное представление о возможностях библиотеки, нужно приобрести руководство разработчика в формате HTML. В его состав входит расширенная документация и множество примеров, которые можно запустить на выполнение и наглядно увидеть результат. Дополнительно доступны заголовочные файлы (с расширением &lt;code class=&quot;u-courier&quot; id=&quot;mark__h_2&quot; title=&quot;mark__h_2&quot;&gt;.h&lt;/code&gt;), которые могут быть использованы исключительно в целях динамической линковки вашего ПО с DLL при сборке и компиляции на вашем компьютере. Распространение руководства разработчика и заголовочных файлов запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Доступны для заказа следующие руководства разработчика в формате HTML (можно открыть любым Web-браузером; оглавление в файле &lt;code class=&quot;u-courier&quot; id=&quot;mark_index_html&quot; title=&quot;mark_index_html&quot;&gt;index.html&lt;/code&gt;):&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&quot;UImageC и UImage C API. Руководство разработчика&quot;. Включает заголовочные файлы для UImage C API. &lt;a href=&quot;https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;250&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageCV. Руководство разработчика&quot;. Включает заголовочные файлы для &amp;nbsp;UImageCV C API. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_rukovodstvo_razrabotchika/2026-02-23-126&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;300&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageCV C API. Руководство разработчика&quot;. Включает заголовочные файлы для &amp;nbsp;UImageCV C API. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_c_api_rukovodstvo_razrabotchika/2026-03-16-128&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;300&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Прежде чем заказывать библиотеку:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;прочтите текст &lt;a href=&quot;https://wwwadmin.ru/blog/licenzija_bibliotek_semejstva_uimage/2026-02-22-125&quot;&gt;Лицензии&lt;/a&gt;. Только если она вас полностью устраивает переходите к следующему шагу;&lt;/li&gt;
 &lt;li&gt;выберите библиотеку и тип лицензии, подходящий под вашу программу или задачу. Учитывайте, что изменять что-либо в дистрибутиве библиотеки нельзя. Это означает, что просто скопировать &amp;nbsp;DLL в каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin&quot; title=&quot;mark_bin&quot;&gt;bin&lt;/code&gt; вашей программы при заказе UImageC или UImageCV не получится. Нужно будет целиком копировать каталог с библиотекой или прописывать путь. Если библиотеку планируется использовать только в C или C++, то правильнее будет заказать UImage C API или UImageCV C API. В комплект этих библиотек входят только DLL и лицензия, которые можно скопировать в &amp;nbsp;каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin_2&quot; title=&quot;mark_bin_2&quot;&gt;bin&lt;/code&gt; вашей программы;&lt;/li&gt;
 &lt;li&gt;закажите соответствующее руководство разработчика, чтобы полностью понимать возможности выбранной библиотеки;&lt;/li&gt;
 &lt;li&gt;закажите лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_6&quot; title=&quot;mark_User_6&quot;&gt;User&lt;/code&gt;, чтобы попробовать на практике и убедиться, что библиотека вам подходит. Вы всегда можете повысить лицензию до &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_8&quot; title=&quot;mark_Company_8&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_7&quot; title=&quot;mark_Public_7&quot;&gt;Public&lt;/code&gt; с зачетом уже оплаченной суммы. В обратную сторону это не действует;&lt;/li&gt;
 &lt;li&gt;закажите повышение лицензии с зачетом, если лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_7&quot; title=&quot;mark_User_7&quot;&gt;User&lt;/code&gt; вас не устраивает.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Если есть вопросы, то задавайте. &lt;a href=&quot;https://wwwadmin.ru/#contacts&quot;&gt;Контакты и форма для заказа&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123</guid>
			<pubDate>Mon, 19 Jan 2026 16:19:00 GMT</pubDate>
		</item>
		<item>
			<title>UImage. Руководство разработчика</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImage. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;UImage 1.2.0: библиотека для работы с изображениями в Python 3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обзор возможностей библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Подключение библиотеки и импорт классов из модулей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Примеры использования библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование Pillow в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование ImageMagick в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Форматы файлов UImage и PPM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с Tkinter и объектом PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой Matplotlib&lt;br /...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImage. Руководство разработчика&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;UImage 1.2.0: библиотека для работы с изображениями в Python 3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обзор возможностей библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Подключение библиотеки и импорт классов из модулей&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Примеры использования библиотеки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование Pillow в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Использование ImageMagick в программе на Python&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Форматы файлов UImage и PPM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с Tkinter и объектом PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Взаимодействие с библиотекой Matplotlib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Настройка пути к каталогу для временных файлов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Модули библиотеки UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UColor: цвет в формате RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объекты URGBA и URGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание экземпляра класса UColor&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Основные методы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости и насыщенности цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование между диапазонами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Статические методы для работы с кортежами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UPoint: координаты точки (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UPointF: координаты точки (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс USize: размеры прямоугольной области (тип int)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс USizeF: размеры прямоугольной области (тип float)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс URect: координаты и размеры прямоугольной области&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Чтение и запись графических файлов .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Формат файла .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения PIL в файл .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла .uimage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperTk: взаимодействие с библиотекой Tkinter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект PhotoImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта PhotoImage в объект UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка и сохранение файлов в формате PNG&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UMat: матрица с произвольными значениями&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImage: изображение RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageRGB и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в объект Image из PIL (PILLOW) и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImage в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageChange: преобразование изображений UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Наложение одного изображения на другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление внешней или внутренней тени&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сепия&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Негатив&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости, контраста и цветового тона изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление прозрачности и альфа-канала&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGB: изображение RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImage и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект Image из PIL (PILLOW) и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGBChange: преобразование изображений UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Наложение одного изображения на другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы и объединение каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление внешней или внутренней тени&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сепия&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Негатив&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости, контраста и цветового тона изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGray: изображение в оттенках серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание нового изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение пути к каталогу с временными файлами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла в формате RAW GRAY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью PIL (PILLOW)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения с помощью ImageMagick&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW GRAY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл в формате RAW RGBA&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Работа с черно-белым изображением&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект другого класса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageRGB в объект UImageGray и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект Image из PIL (PILLOW) и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в массив байтов и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Выполнение манипуляций с объектом UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UMask: маска или черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание объекта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сохранение изображения в файл&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Загрузка изображения из файла&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение информации об объекте&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Получение и изменение пикселей изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Инверсия цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание копии объекта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение объектов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Строка в формате BWSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGrayChange: преобразование изображений UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вращение изображения на произвольный угол&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение размера изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование в черно-белое изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тиснение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Размытие изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Повышение резкости&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Удаление шума с изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление шума на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение яркости изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Замена цвета&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Поиск границ объектов на изображении&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание скриншота экрана&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UFont: характеристики шрифта&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageDrawPIL: рисование на UImage&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageRGBDrawPIL: рисование на UImageRGB&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UImageGrayDrawPIL: рисование на UImageGray&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Создание контекста рисования и получение результата&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изменение характеристик заливки и обводки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование с помощью методов из библиотеки Pillow&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование точки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование линии&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольной рамки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование прямоугольника со скругленными углами&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование многоугольника&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование эллипса&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование круга&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование замкнутой дуги&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Рисование сектора&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Вывод многострочного текста на изображение&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperNP: взаимодействие с библиотекой NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в массив NumPy&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint8 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип int32 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint16 (диапазон значений от 0 до 65 535)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип float32 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип float64 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование массива NumPy в объект изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint8 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип int32 (диапазон значений от 0 до 255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Тип uint16 (диапазон значений от 0 до 65 535)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Типы float32 и float64 (диапазон значений от 0.0 до 1.0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта изображения в объект UMat и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование цветного изображения в оттенки серого&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование изображения в оттенках серого в черно-белое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в объект UMask и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UImageGray в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Преобразование объекта UMask в строку в формате BWSTR и наоборот&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Нормализация диапазона значений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Разделение изображения на каналы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: зеркальное отражение изображения по вертикали или горизонтали&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вращение изображения на угол кратный 90 градусам&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: заливка прямоугольной области цветом&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: обрезка изображения&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: обрезка лишних одноцветных границ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вставка одного изображения в другое&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: объединение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: добавление рамки вокруг изображения или с одной стороны&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Добавление паддинга для свертки&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: сравнение двух изображений&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вычисление гистограммы&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Сравнение двух строк в формате BWSTR&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Класс UHelperPlt: взаимодействие с библиотекой Matplotlib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Просмотр изображения в диалоговом окне&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageRGB: просмотр гистограмм всех каналов&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; UImageGray: вычисление и просмотр гистограммы&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/uimage_graficheskaja_biblioteka_dlja_python_pil_imagemagick_tkinter/2025-11-18-25&quot;&gt;Описание библиотеки UImage&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;zakaz&quot; title=&quot;zakaz&quot;&gt;Как заказать библиотеку UImage&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека не продается. Библиотека лицензируется одной из трех типов лицензий: &lt;code class=&quot;u-courier&quot; id=&quot;mark_User&quot; title=&quot;mark_User&quot;&gt;User&lt;/code&gt;, &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company&quot; title=&quot;mark_Company&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public&quot; title=&quot;mark_Public&quot;&gt;Public&lt;/code&gt;.&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_2&quot; title=&quot;mark_User_2&quot;&gt;User&lt;/code&gt; &amp;mdash; предоставляется на одного пользователя. Библиотека может использоваться только в личных целях. Любое распространение библиотеки запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_3&quot; title=&quot;mark_User_3&quot;&gt;User&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Число единиц ПО, использующих библиотеку, не ограничено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_4&quot; title=&quot;mark_User_4&quot;&gt;User&lt;/code&gt; доступна только физическим лицам. Стоимость лицензии на UImage &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;2 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_2&quot; title=&quot;mark_Company_2&quot;&gt;Company&lt;/code&gt; &amp;mdash; предоставляется на одну фирму и одно наименование ПО. Программа с библиотекой может использоваться сотрудниками внутри фирмы. Использование программы с библиотекой клиентами фирмы возможно, но только удаленно, например, предоставление сервиса на сайте (с размещением библиотеки на сервере) без непосредственного доступа клиента к коду библиотеки. Любое распространение библиотеки и программы с библиотекой запрещено. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_3&quot; title=&quot;mark_Company_3&quot;&gt;Company&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_4&quot; title=&quot;mark_Company_4&quot;&gt;Company&lt;/code&gt; доступна только юридическим лицам. Стоимость лицензии на UImage &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;10 000&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_2&quot; title=&quot;mark_Public_2&quot;&gt;Public&lt;/code&gt; &amp;mdash; предоставляется на одно наименование ПО. Библиотека может использоваться только в составе ПО, распространяемого публично (платно или бесплатно). Учитывая, что исходные коды динамических библиотек (DLL), входящих в состав библиотеки, не предоставляются, запрещено использовать библиотеку в составе ПО, распространяемого по лицензии GPL и аналогичным, требующим обязательное публичное предоставление всех исходных кодов. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_3&quot; title=&quot;mark_Public_3&quot;&gt;Public&lt;/code&gt; предоставляет неисключительную и непередаваемую лицензию, не предполагающую права предоставления какой-либо сублицензии, на использование библиотеки в течение срока действия лицензии. Срок действия лицензии не ограничен. Лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_4&quot; title=&quot;mark_Public_4&quot;&gt;Public&lt;/code&gt; доступна физическим и юридическим лицам. Стоимость лицензии на UImage &amp;mdash; &lt;code class=&quot;u-courier&quot;&gt;30 000&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Пользователь, получивший ваше ПО, включающее библиотеку по лицензии &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_5&quot; title=&quot;mark_Public_5&quot;&gt;Public&lt;/code&gt;, автоматически получает лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_5&quot; title=&quot;mark_User_5&quot;&gt;User&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_5&quot; title=&quot;mark_Company_5&quot;&gt;Company&lt;/code&gt; на библиотеку в зависимости от юридического статуса пользователя. Если пользователь решил создать свое ПО, распространяемое публично, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_6&quot; title=&quot;mark_Public_6&quot;&gt;Public&lt;/code&gt; на библиотеку. Если пользователь, автоматически получивший лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_6&quot; title=&quot;mark_Company_6&quot;&gt;Company&lt;/code&gt;, решил создать второе, третье и т. д. ПО, используемое внутри фирмы, включающее библиотеку, то он обязан приобрести лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_7&quot; title=&quot;mark_Company_7&quot;&gt;Company&lt;/code&gt; на каждое наименование ПО (за исключением первого), включающее библиотеку.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Документация содержится в строках документирования. Для получения списка методов нужно использовать функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_dir&quot; title=&quot;mark_dir&quot;&gt;dir()&lt;/code&gt;, а для получения описания метода &amp;mdash; функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_help&quot; title=&quot;mark_help&quot;&gt;help()&lt;/code&gt;. Специализированные текстовые редакторы автоматически предоставят список методов при наборе букв и описание метода из строки документирования при выборе метода из списка. Расширенная документация доступна только в руководстве разработчика, которое в состав библиотеки не входит и приобретается отдельно.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Чтобы иметь полное представление о возможностях библиотеки, нужно приобрести руководство разработчика в формате HTML. В его состав входит расширенная документация и множество примеров, которые можно запустить на выполнение и наглядно увидеть результат. Распространение руководства разработчика запрещено.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Доступны для заказа следующие руководства разработчика в формате HTML (можно открыть любым Web-браузером; оглавление в файле &lt;code class=&quot;u-courier&quot; id=&quot;mark_index_html&quot; title=&quot;mark_index_html&quot;&gt;index.html&lt;/code&gt;):&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&quot;UImage. Руководство разработчика&quot;. &amp;nbsp;&lt;a href=&quot;https://wwwadmin.ru/blog/release_uimage_version_1_2_0_2026_01_08/2026-01-08-120&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;250&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageC и UImage C API. Руководство разработчика&quot;. Включает заголовочные файлы для UImage C API. &lt;a href=&quot;https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;250&lt;/code&gt; руб.&lt;/li&gt;
 &lt;li&gt;&quot;UImageCV и UImageCV C API. Руководство разработчика&quot;. Включает заголовочные файлы для &amp;nbsp;UImageCV C API. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagecv_rukovodstvo_razrabotchika/2026-02-23-126&quot;&gt;Оглавление руководства&lt;/a&gt;. Стоимость &lt;code class=&quot;u-courier&quot;&gt;300&lt;/code&gt; руб.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Прежде чем заказывать библиотеку:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;прочтите текст &lt;a href=&quot;https://wwwadmin.ru/blog/licenzija_bibliotek_semejstva_uimage/2026-02-22-125&quot;&gt;Лицензии&lt;/a&gt;. Только если она вас полностью устраивает переходите к следующему шагу;&lt;/li&gt;
 &lt;li&gt;выберите библиотеку и тип лицензии, подходящий под вашу программу или задачу. Учитывайте, что изменять что-либо в дистрибутиве библиотеки нельзя;&lt;/li&gt;
 &lt;li&gt;закажите соответствующее руководство разработчика, чтобы полностью понимать возможности выбранной библиотеки;&lt;/li&gt;
 &lt;li&gt;закажите лицензию &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_6&quot; title=&quot;mark_User_6&quot;&gt;User&lt;/code&gt;, чтобы попробовать на практике и убедиться, что библиотека вам подходит. Вы всегда можете повысить лицензию до &lt;code class=&quot;u-courier&quot; id=&quot;mark_Company_8&quot; title=&quot;mark_Company_8&quot;&gt;Company&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_Public_7&quot; title=&quot;mark_Public_7&quot;&gt;Public&lt;/code&gt; с зачетом уже оплаченной суммы. В обратную сторону это не действует;&lt;/li&gt;
 &lt;li&gt;закажите повышение лицензии с зачетом, если лицензия &lt;code class=&quot;u-courier&quot; id=&quot;mark_User_7&quot; title=&quot;mark_User_7&quot;&gt;User&lt;/code&gt; вас не устраивает.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Если есть вопросы, то задавайте. &lt;a href=&quot;https://wwwadmin.ru/#contacts&quot;&gt;Контакты и форма для заказа&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/release_uimage_version_1_2_0_2026_01_08/2026-01-08-120</link>
			<category>UImage</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/release_uimage_version_1_2_0_2026_01_08/2026-01-08-120</guid>
			<pubDate>Thu, 08 Jan 2026 16:14:03 GMT</pubDate>
		</item>
		<item>
			<title>UImage C API</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImage C API&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; содержит код на языке C, который можно вызвать из программ на Python, C или C++. Код компилируется в динамические библиотеки (dll) под Windows x64. Подключить библиотеку в программе на Python позволяет модуль &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes&quot; title=&quot;mark_ctypes&quot;&gt;ctypes&lt;/code&gt;, входящий в состав стандартной библиотеки. Пример подключения библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_libuimagegray_dll&quot; title=&quot;mark_libuimagegray_dll&quot;&gt;libuimagegray.dll&lt;/code&gt;, расположенной в папке &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin&quot; title=&quot;mark_bin&quot;&gt;bin&lt;/code&gt;, относительно местоположения исполняемого файла:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code2&quot; title=&quot;code2&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import os.path
import ctypes

_ulibpath = os.path.abspath(
 &amp;nbsp;&amp;nbsp;&amp;nbsp;os.path.join(os.path.dirname(__file__), &quot;bin&quot;, &quot;...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImage C API&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; содержит код на языке C, который можно вызвать из программ на Python, C или C++. Код компилируется в динамические библиотеки (dll) под Windows x64. Подключить библиотеку в программе на Python позволяет модуль &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes&quot; title=&quot;mark_ctypes&quot;&gt;ctypes&lt;/code&gt;, входящий в состав стандартной библиотеки. Пример подключения библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_libuimagegray_dll&quot; title=&quot;mark_libuimagegray_dll&quot;&gt;libuimagegray.dll&lt;/code&gt;, расположенной в папке &lt;code class=&quot;u-courier&quot; id=&quot;mark_bin&quot; title=&quot;mark_bin&quot;&gt;bin&lt;/code&gt;, относительно местоположения исполняемого файла:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code2&quot; title=&quot;code2&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import os.path
import ctypes

_ulibpath = os.path.abspath(
 &amp;nbsp;&amp;nbsp;&amp;nbsp;os.path.join(os.path.dirname(__file__), &quot;bin&quot;, &quot;libuimagegray.dll&quot;))
_ulibc = ctypes.CDLL(_ulibpath)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Следует учитывать, что при неправильном использовании функций из C API возможны непредвиденные последствия. Это касается всего языка C в целом. Например, функция принимает указатель на массив. Внутри функции нет никакой возможности определить число элементов массива. Оператор &lt;code class=&quot;u-courier&quot; id=&quot;mark_sizeof&quot; title=&quot;mark_sizeof&quot;&gt;sizeof()&lt;/code&gt; вернет лишь размер указателя, а не размер всего массива. Число элементов массива обычно передается дополнительным параметром, но нет никакой гарантии, что это число соответствует реальному размеру массива. Поэтому контроль за правильностью передаваемых в функцию данных лежит на плечах программиста.&lt;/p&gt;

&lt;h2 id=&quot;u_section_2_1&quot; title=&quot;u_section_2_1&quot;&gt;Знакомство с массивами ctypes&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Пиксели изображения в библиотеке &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_2&quot; title=&quot;mark_UImageC_2&quot;&gt;UImageC&lt;/code&gt; хранятся в массивах &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_2&quot; title=&quot;mark_ctypes_2&quot;&gt;ctypes&lt;/code&gt;, что позволяет получить к ним доступ из программы на языке C без необходимости выполнения преобразований. В отличие от списков языка Python массивы &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_3&quot; title=&quot;mark_ctypes_3&quot;&gt;ctypes&lt;/code&gt; являются строго типизированными и имеют фиксированный размер.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Типы данных в модуле &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_4&quot; title=&quot;mark_ctypes_4&quot;&gt;ctypes&lt;/code&gt; соответствуют типам из языка C. Перечислим основные типы, которые часто встречаются в библиотеке &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_3&quot; title=&quot;mark_UImageC_3&quot;&gt;UImageC&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code3&quot; title=&quot;code3&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; import ctypes
&amp;gt;&amp;gt;&amp;gt; b = ctypes.c_bool(True) # _Bool
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(b)
1
&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_ubyte(5) # unsigned char
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(n)
1
&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_int(5) # int или long
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(n)
4
&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_long(5) # long
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(n)
4
&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_float(5.2) # float
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(n)
4
&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_double(5.2) # double
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(n)
8
&amp;gt;&amp;gt;&amp;gt; type(n)
&lt;class &apos;ctypes.c_double&apos;&amp;gt;
&amp;gt;&amp;gt;&amp;gt; n.value
5.2&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать указатель позволяет функция &lt;code class=&quot;u-courier&quot; id=&quot;mark_pointer&quot; title=&quot;mark_pointer&quot;&gt;pointer()&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code4&quot; title=&quot;code4&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; n = ctypes.c_int(5)
&amp;gt;&amp;gt;&amp;gt; pn = ctypes.pointer(n)
&amp;gt;&amp;gt;&amp;gt; pn.contents
c_long(5)
&amp;gt;&amp;gt;&amp;gt; pn[0] = 10
&amp;gt;&amp;gt;&amp;gt; n
c_long(10)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Существует также функция &lt;code class=&quot;u-courier&quot; id=&quot;mark_POINTER&quot; title=&quot;mark_POINTER&quot;&gt;POINTER()&lt;/code&gt;, которая используется для объявления типизированных указателей. Например, для прототипа:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code5&quot; title=&quot;code5&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;int uimagergb_invert(unsigned char* parr, int arr_len);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;код описания параметров выглядит так:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code6&quot; title=&quot;code6&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;_uimagergb_invert = _ulibc.uimagergb_invert
_uimagergb_invert.argtypes = [
 &amp;nbsp;&amp;nbsp;ctypes.POINTER(ctypes.c_ubyte), ctypes.c_int]
_uimagergb_invert.restype = ctypes.c_int&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Объявление указателя на C-строку (заканчивается нулевым символом) выполняется с помощью типа &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_char_p&quot; title=&quot;mark_c_char_p&quot;&gt;c_char_p&lt;/code&gt;. Например, для прототипа:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code7&quot; title=&quot;code7&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;int uimagegray_to_bwstr(int* parr_int, int arr_len_int,
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;char* s, int s_len);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;код описания параметров выглядит так:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code8&quot; title=&quot;code8&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;_uimagegray_to_bwstr = _ulibc.uimagegray_to_bwstr
_uimagegray_to_bwstr.argtypes = [
 &amp;nbsp;&amp;nbsp;ctypes.POINTER(ctypes.c_int), ctypes.c_int,
 &amp;nbsp;&amp;nbsp;ctypes.c_char_p, ctypes.c_int]
_uimagegray_to_bwstr.restype = ctypes.c_int&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Строки в языке Python неизменяемые. Для создания изменяемого строкового буфера предназначена функция &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_string_buffer&quot; title=&quot;mark_create_string_buffer&quot;&gt;create_string_buffer()&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code9&quot; title=&quot;code9&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; s = b&apos;Hello&apos;
&amp;gt;&amp;gt;&amp;gt; ps = ctypes.create_string_buffer(s)
&amp;gt;&amp;gt;&amp;gt; ps.raw
b&apos;Hello&amp;#92;x00&apos;
&amp;gt;&amp;gt;&amp;gt; ps.value
b&apos;Hello&apos;
&amp;gt;&amp;gt;&amp;gt; type(ps)
&lt;class &apos;ctypes.c_char_Array_6&apos;&amp;gt;
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(ps)
6
&amp;gt;&amp;gt;&amp;gt; ps[0] = b&apos;_&apos;
&amp;gt;&amp;gt;&amp;gt; ps.value
b&apos;_ello&apos;
&amp;gt;&amp;gt;&amp;gt; ps = ctypes.create_string_buffer(3)
&amp;gt;&amp;gt;&amp;gt; ps.raw
b&apos;&amp;#92;x00&amp;#92;x00&amp;#92;x00&apos;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Для создания типизированного массива нужно умножить тип на число элементов, а затем вызвать конструктор:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code10&quot; title=&quot;code10&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; arr = (ctypes.c_int * 5)()
&amp;gt;&amp;gt;&amp;gt; arr[:]
[0, 0, 0, 0, 0]
&amp;gt;&amp;gt;&amp;gt; arr = (ctypes.c_int * 5)(0, 1, 2, 3, 4)
&amp;gt;&amp;gt;&amp;gt; arr[:]
[0, 1, 2, 3, 4]
&amp;gt;&amp;gt;&amp;gt; arr[0]
0
&amp;gt;&amp;gt;&amp;gt; arr[0] = 55
&amp;gt;&amp;gt;&amp;gt; arr[:]
[55, 1, 2, 3, 4]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив на основе списка можно так:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code11&quot; title=&quot;code11&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; arr = [0, 1, 2, 3, 4]
&amp;gt;&amp;gt;&amp;gt; type(arr)
&lt;class &apos;list&apos;&amp;gt;
&amp;gt;&amp;gt;&amp;gt; arr2 = (ctypes.c_int * len(arr))(*arr)
&amp;gt;&amp;gt;&amp;gt; arr2[:]
[0, 1, 2, 3, 4]
&amp;gt;&amp;gt;&amp;gt; type(arr2)
&lt;class &apos;__main__.c_long_Array_5&apos;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Массивы являются экземплярами класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_Array&quot; title=&quot;mark_ctypes_Array&quot;&gt;ctypes.Array&lt;/code&gt;. Проверить тип и получить информацию о массиве позволяет следующий код:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code12&quot; title=&quot;code12&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; arr = (ctypes.c_int * 5)(0, 1, 2, 3, 4)
&amp;gt;&amp;gt;&amp;gt; isinstance(arr, ctypes.Array)
True
&amp;gt;&amp;gt;&amp;gt; arr._length_
5
&amp;gt;&amp;gt;&amp;gt; arr._type_
&lt;class &apos;ctypes.c_long&apos;&amp;gt;
&amp;gt;&amp;gt;&amp;gt; ctypes.sizeof(arr)
20&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Для преобразования массива в список можно использовать операцию извлечения среза или функцию &lt;code class=&quot;u-courier&quot; id=&quot;mark_list&quot; title=&quot;mark_list&quot;&gt;list()&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code13&quot; title=&quot;code13&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; arr = (ctypes.c_int * 5)(0, 1, 2, 3, 4)
&amp;gt;&amp;gt;&amp;gt; arr2 = arr[:]
&amp;gt;&amp;gt;&amp;gt; type(arr2)
&lt;class &apos;list&apos;&amp;gt;
&amp;gt;&amp;gt;&amp;gt; arr3 = list(arr)
&amp;gt;&amp;gt;&amp;gt; type(arr3)
&lt;class &apos;list&apos;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2 id=&quot;u_section_2_2&quot; title=&quot;u_section_2_2&quot;&gt;Класс UCArray: работа с массивами ctypes&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray&quot; title=&quot;mark_UCArray&quot;&gt;UCArray&lt;/code&gt; содержит методы для работы с массивами &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_5&quot; title=&quot;mark_ctypes_5&quot;&gt;ctypes&lt;/code&gt;. Инструкция импорта:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code14&quot; title=&quot;code14&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section_2_2_1&quot; title=&quot;u_section_2_2_1&quot;&gt;Создание массива ctypes&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_6&quot; title=&quot;mark_ctypes_6&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_int&quot; title=&quot;mark_c_int&quot;&gt;c_int&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_long&quot; title=&quot;mark_c_long&quot;&gt;c_long&lt;/code&gt;) позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_int&quot; title=&quot;mark_create_ctypes_array_int&quot;&gt;create_ctypes_array_int()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_2&quot; title=&quot;mark_UCArray_2&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code15&quot; title=&quot;code15&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_int(width, height, num_channels)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;В первом параметре указывается ширина изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Второй параметр задает высоту изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Параметр &lt;code class=&quot;u-courier&quot; id=&quot;mark_num_channels&quot; title=&quot;mark_num_channels&quot;&gt;num_channels&lt;/code&gt; определяет число каналов изображения (&lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt;, &lt;code class=&quot;u-courier&quot;&gt;3&lt;/code&gt; или &lt;code class=&quot;u-courier&quot;&gt;4&lt;/code&gt;). Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_7&quot; title=&quot;mark_ctypes_7&quot;&gt;ctypes&lt;/code&gt; заполненный нулями. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code16&quot; title=&quot;code16&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

arr = UCArray.create_ctypes_array_int(3, 2, 1)
print(arr._length_) # 6
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_long&apos;&amp;gt;
print(arr[:])
# [0, 0, 0,
# &amp;nbsp;0, 0, 0]
arr = UCArray.create_ctypes_array_int(3, 2, 3)
print(arr._length_) # 18
print(arr[:])
# [0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0,
# &amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0]
arr = UCArray.create_ctypes_array_int(3, 2, 4)
print(arr._length_) # 24
print(arr[:])
# [0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0,
# &amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_8&quot; title=&quot;mark_ctypes_8&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte&quot; title=&quot;mark_c_ubyte&quot;&gt;c_ubyte&lt;/code&gt; (соответствует типу &lt;code class=&quot;u-courier&quot;&gt;unsigned char&lt;/code&gt; в языке C) позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_ubyte&quot; title=&quot;mark_create_ctypes_array_ubyte&quot;&gt;create_ctypes_array_ubyte()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_3&quot; title=&quot;mark_UCArray_3&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code17&quot; title=&quot;code17&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_ubyte(width, height, num_channels)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;В первом параметре указывается ширина изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Второй параметр задает высоту изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Параметр &lt;code class=&quot;u-courier&quot; id=&quot;mark_num_channels_2&quot; title=&quot;mark_num_channels_2&quot;&gt;num_channels&lt;/code&gt; определяет число каналов изображения (&lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt;, &lt;code class=&quot;u-courier&quot;&gt;3&lt;/code&gt; или &lt;code class=&quot;u-courier&quot;&gt;4&lt;/code&gt;). Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_9&quot; title=&quot;mark_ctypes_9&quot;&gt;ctypes&lt;/code&gt; заполненный нулями. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code18&quot; title=&quot;code18&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

arr = UCArray.create_ctypes_array_ubyte(3, 2, 1)
print(arr._length_) # 6
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_ubyte&apos;&amp;gt;
print(arr[:])
# [0, 0, 0,
# &amp;nbsp;0, 0, 0]
arr = UCArray.create_ctypes_array_ubyte(3, 2, 3)
print(arr._length_) # 18
print(arr[:])
# [0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0,
# &amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0]
arr = UCArray.create_ctypes_array_ubyte(3, 2, 4)
print(arr._length_) # 24
print(arr[:])
# [0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0,
# &amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0, &amp;nbsp;&amp;nbsp;0, 0, 0, 0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_10&quot; title=&quot;mark_ctypes_10&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_double&quot; title=&quot;mark_c_double&quot;&gt;c_double&lt;/code&gt; позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_double&quot; title=&quot;mark_create_ctypes_array_double&quot;&gt;create_ctypes_array_double()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_4&quot; title=&quot;mark_UCArray_4&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code19&quot; title=&quot;code19&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_double(width, height, num_channels)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;В первом параметре указывается ширина изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Второй параметр задает высоту изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Параметр &lt;code class=&quot;u-courier&quot; id=&quot;mark_num_channels_3&quot; title=&quot;mark_num_channels_3&quot;&gt;num_channels&lt;/code&gt; определяет число каналов изображения (&lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt;, &lt;code class=&quot;u-courier&quot;&gt;3&lt;/code&gt; или &lt;code class=&quot;u-courier&quot;&gt;4&lt;/code&gt;). Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_11&quot; title=&quot;mark_ctypes_11&quot;&gt;ctypes&lt;/code&gt; заполненный нулями. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code20&quot; title=&quot;code20&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

arr = UCArray.create_ctypes_array_double(3, 2, 1)
print(arr._length_) # 6
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_double&apos;&amp;gt;
print(arr[:])
# [0.0, 0.0, 0.0,
# &amp;nbsp;0.0, 0.0, 0.0]
arr = UCArray.create_ctypes_array_double(3, 2, 3)
print(arr._length_) # 18
print(arr[:])
# [0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0,
# &amp;nbsp;0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0]
arr = UCArray.create_ctypes_array_double(3, 2, 4)
print(arr._length_) # 24
print(arr[:])
# [0.0, 0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, 0.0,
# &amp;nbsp;0.0, 0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;0.0, 0.0, 0.0, 0.0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_12&quot; title=&quot;mark_ctypes_12&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_bool&quot; title=&quot;mark_c_bool&quot;&gt;c_bool&lt;/code&gt; позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_bool&quot; title=&quot;mark_create_ctypes_array_bool&quot;&gt;create_ctypes_array_bool()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_5&quot; title=&quot;mark_UCArray_5&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code21&quot; title=&quot;code21&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_bool(width, height)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;В первом параметре указывается ширина изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Второй параметр задает высоту изображения от &lt;code class=&quot;u-courier&quot;&gt;1&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;8000&lt;/code&gt;. Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_13&quot; title=&quot;mark_ctypes_13&quot;&gt;ctypes&lt;/code&gt; заполненный значениями &lt;code class=&quot;u-courier&quot; id=&quot;mark_False&quot; title=&quot;mark_False&quot;&gt;False&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code22&quot; title=&quot;code22&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

arr = UCArray.create_ctypes_array_bool(3, 2)
print(arr._length_) # 6
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_bool&apos;&amp;gt;
print(arr[:])
# [False, False, False,
# &amp;nbsp;False, False, False]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section_2_2_2&quot; title=&quot;u_section_2_2_2&quot;&gt;Создание массива ctypes на основе списка&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_14&quot; title=&quot;mark_ctypes_14&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_int_2&quot; title=&quot;mark_c_int_2&quot;&gt;c_int&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_long_2&quot; title=&quot;mark_c_long_2&quot;&gt;c_long&lt;/code&gt;) на основе списка с целыми числами позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_int_from_list&quot; title=&quot;mark_create_ctypes_array_int_from_list&quot;&gt;create_ctypes_array_int_from_list()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_6&quot; title=&quot;mark_UCArray_6&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code23&quot; title=&quot;code23&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_int_from_list(&lt;Список&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_15&quot; title=&quot;mark_ctypes_15&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code24&quot; title=&quot;code24&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

list_int = [0, 64, 128, 200, 255]
arr = UCArray.create_ctypes_array_int_from_list(list_int)
print(arr._length_) # 5
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_long&apos;&amp;gt;
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [0, 64, 128, 200, 255]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_16&quot; title=&quot;mark_ctypes_16&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_double_2&quot; title=&quot;mark_c_double_2&quot;&gt;c_double&lt;/code&gt; на основе списка с вещественными числами позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_double_from_list&quot; title=&quot;mark_create_ctypes_array_double_from_list&quot;&gt;create_ctypes_array_double_from_list()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_7&quot; title=&quot;mark_UCArray_7&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code25&quot; title=&quot;code25&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_double_from_list(&lt;Список&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_17&quot; title=&quot;mark_ctypes_17&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code26&quot; title=&quot;code26&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

list_d = [0.0, 0.5, 1.0]
arr = UCArray.create_ctypes_array_double_from_list(list_d)
print(arr._length_) # 3
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_double&apos;&amp;gt;
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [0.0, 0.5, 1.0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_18&quot; title=&quot;mark_ctypes_18&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_bool_2&quot; title=&quot;mark_c_bool_2&quot;&gt;c_bool&lt;/code&gt; на основе списка с логическими значениями позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_bool_from_list&quot; title=&quot;mark_create_ctypes_array_bool_from_list&quot;&gt;create_ctypes_array_bool_from_list()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_8&quot; title=&quot;mark_UCArray_8&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code27&quot; title=&quot;code27&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_bool_from_list(&lt;Список&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_19&quot; title=&quot;mark_ctypes_19&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code28&quot; title=&quot;code28&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

list_b = [True, False, True]
arr = UCArray.create_ctypes_array_bool_from_list(list_b)
print(arr._length_) # 3
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_bool&apos;&amp;gt;
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [True, False, True]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section_2_2_3&quot; title=&quot;u_section_2_2_3&quot;&gt;Создание массива ctypes на основе объекта типа bytes&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_20&quot; title=&quot;mark_ctypes_20&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_2&quot; title=&quot;mark_c_ubyte_2&quot;&gt;c_ubyte&lt;/code&gt; на основе объекта типа &lt;code class=&quot;u-courier&quot; id=&quot;mark_bytes&quot; title=&quot;mark_bytes&quot;&gt;bytes&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_bytearray&quot; title=&quot;mark_bytearray&quot;&gt;bytearray&lt;/code&gt; позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_create_ctypes_array_ubyte_from_bytes&quot; title=&quot;mark_create_ctypes_array_ubyte_from_bytes&quot;&gt;create_ctypes_array_ubyte_from_bytes()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_9&quot; title=&quot;mark_UCArray_9&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code29&quot; title=&quot;code29&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.create_ctypes_array_ubyte_from_bytes(&lt;bytes&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_21&quot; title=&quot;mark_ctypes_21&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code30&quot; title=&quot;code30&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray

b = bytes([0, 1, 2, 3, 4])
print(type(b)) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# &lt;class &apos;bytes&apos;&amp;gt;
arr = UCArray.create_ctypes_array_ubyte_from_bytes(b)
print(arr._length_) # 5
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_ubyte&apos;&amp;gt;
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [0, 1, 2, 3, 4]
b = bytearray(b)
print(type(b)) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# &lt;class &apos;bytearray&apos;&amp;gt;
arr = UCArray.create_ctypes_array_ubyte_from_bytes(b)
print(arr._length_) # 5
print(arr._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_ubyte&apos;&amp;gt;
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [0, 1, 2, 3, 4]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section_2_2_4&quot; title=&quot;u_section_2_2_4&quot;&gt;Создание копии массива ctypes&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать копию массива &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_22&quot; title=&quot;mark_ctypes_22&quot;&gt;ctypes&lt;/code&gt; с типом &lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_3&quot; title=&quot;mark_c_ubyte_3&quot;&gt;c_ubyte&lt;/code&gt; позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_copy_ctypes_array_ubyte&quot; title=&quot;mark_copy_ctypes_array_ubyte&quot;&gt;copy_ctypes_array_ubyte()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_10&quot; title=&quot;mark_UCArray_10&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code31&quot; title=&quot;code31&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.copy_ctypes_array_ubyte(&lt;Массив ctypes&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_23&quot; title=&quot;mark_ctypes_23&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code32&quot; title=&quot;code32&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import ctypes
from unicross_img.uhelper import UCArray

arr = (ctypes.c_ubyte * 5)(0, 1, 2, 3, 4)
arr2 = UCArray.copy_ctypes_array_ubyte(arr)
print(arr2._length_) # 5
print(arr2._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_ubyte&apos;&amp;gt;
arr2[0] = 55
print(arr2[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [55, 1, 2, 3, 4]
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;# [0, 1, 2, 3, 4]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Создать копию массива &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_24&quot; title=&quot;mark_ctypes_24&quot;&gt;ctypes&lt;/code&gt; произвольного типа позволяет статический метод &lt;code class=&quot;u-courier&quot; id=&quot;mark_copy_ctypes_array&quot; title=&quot;mark_copy_ctypes_array&quot;&gt;copy_ctypes_array()&lt;/code&gt; из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray_11&quot; title=&quot;mark_UCArray_11&quot;&gt;UCArray&lt;/code&gt;. Формат метода:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code33&quot; title=&quot;code33&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;UCArray.copy_ctypes_array(&lt;Массив ctypes&amp;gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Метод возвращает массив &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_25&quot; title=&quot;mark_ctypes_25&quot;&gt;ctypes&lt;/code&gt;. При ошибке генерируется исключение. Пример:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code34&quot; title=&quot;code34&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import ctypes
from unicross_img.uhelper import UCArray

arr = (ctypes.c_int * 5)(0, 1, 2, 3, 4)
arr2 = UCArray.copy_ctypes_array(arr)
print(arr2._length_) # 5
print(arr2._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_long&apos;&amp;gt;
arr2[0] = 55
print(arr2[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [55, 1, 2, 3, 4]
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;# [0, 1, 2, 3, 4]

arr = (ctypes.c_double * 3)(0.0, 0.5, 1.0)
arr2 = UCArray.copy_ctypes_array(arr)
print(arr2._length_) # 3
print(arr2._type_) &amp;nbsp;&amp;nbsp;# &lt;class &apos;ctypes.c_double&apos;&amp;gt;
arr2[0] = 1.0
print(arr2[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# [1.0, 0.5, 1.0]
print(arr[:]) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;# [0.0, 0.5, 1.0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;&lt;a href=&quot;https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123#zakaz&quot; target=&quot;_blank&quot; class=&quot;u-btn u-btn-info&quot;&gt;Заказать библиотеку&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Класс входит в состав графической библиотеки UImageC. &lt;a href=&quot;https://wwwadmin.ru/blog/uimagec_biblioteka_dlja_raboty_s_izobrazhenijami_v_python_c_i_c/2026-01-05-115&quot;&gt;Описание библиотеки UImageC&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/uimage_c_api/2026-01-05-116</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/uimage_c_api/2026-01-05-116</guid>
			<pubDate>Mon, 05 Jan 2026 15:26:43 GMT</pubDate>
		</item>
		<item>
			<title>UImageC: библиотека для работы с изображениями в Python, C и C++</title>
			<description>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageC: библиотека для работы с изображениями в Python, C и C++&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; &amp;nbsp;(только для Windows x64) содержит код не только на языке Python, но и код на языке C, который можно вызвать из программ на Python, C или C++. Код на языке C компилируется в динамические библиотеки (dll) под Windows x64. Подключить библиотеку в программе на Python позволяет модуль &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes&quot; title=&quot;mark_ctypes&quot;&gt;ctypes&lt;/code&gt;, входящий в состав стандартной библиотеки.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Основная часть библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_2&quot; title=&quot;mark_UImageC_2&quot;&gt;UImageC&lt;/code&gt; реализована для Python 3.8+. Она является надстройкой над библиотеками Pillow и ImageMagick. При этом она имеет свой собственный формат файла и дополнительные возможности. Если библиотека Pillow отсутствует, то выполняется попытка выполнить операцию...</description>
			<content:encoded>&lt;div class=&quot;u-post&quot;&gt;
&lt;h2&gt;UImageC: библиотека для работы с изображениями в Python, C и C++&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC&quot; title=&quot;mark_UImageC&quot;&gt;UImageC&lt;/code&gt; &amp;nbsp;(только для Windows x64) содержит код не только на языке Python, но и код на языке C, который можно вызвать из программ на Python, C или C++. Код на языке C компилируется в динамические библиотеки (dll) под Windows x64. Подключить библиотеку в программе на Python позволяет модуль &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes&quot; title=&quot;mark_ctypes&quot;&gt;ctypes&lt;/code&gt;, входящий в состав стандартной библиотеки.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Основная часть библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_2&quot; title=&quot;mark_UImageC_2&quot;&gt;UImageC&lt;/code&gt; реализована для Python 3.8+. Она является надстройкой над библиотеками Pillow и ImageMagick. При этом она имеет свой собственный формат файла и дополнительные возможности. Если библиотека Pillow отсутствует, то выполняется попытка выполнить операцию с помощью библиотеки ImageMagick.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;В отличии от библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage&quot; title=&quot;mark_UImage&quot;&gt;UImage&lt;/code&gt; в библиотеке &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_3&quot; title=&quot;mark_UImageC_3&quot;&gt;UImageC&lt;/code&gt; для хранения пикселей изображения используются массивы &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_2&quot; title=&quot;mark_ctypes_2&quot;&gt;ctypes&lt;/code&gt;, а не списки Python, что позволяет получить доступ к пикселям из программы на языке C без необходимости выполнения преобразований. При этом базовая часть функционала библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_4&quot; title=&quot;mark_UImageC_4&quot;&gt;UImageC&lt;/code&gt; реализована на языке C без использования сторонних библиотек.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_2&quot; title=&quot;mark_UImage_2&quot;&gt;UImage&lt;/code&gt; предназначена для &quot;блондинок&quot;, тогда как библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_5&quot; title=&quot;mark_UImageC_5&quot;&gt;UImageC&lt;/code&gt; &amp;mdash; для опытных программистов, для которых такие слова как &lt;code class=&quot;u-courier&quot; id=&quot;mark_malloc&quot; title=&quot;mark_malloc&quot;&gt;malloc()&lt;/code&gt; и указатель не лишены смысла, а действия по РУЧНОМУ освобождению динамической памяти доведены до автоматизма. &quot;Блондинки&quot; также могут использовать библиотеку &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_6&quot; title=&quot;mark_UImageC_6&quot;&gt;UImageC&lt;/code&gt;, но... главное под &quot;капот&quot; не заглядывать.&lt;/p&gt;

&lt;h3&gt;Системные требования и ограничения&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Для корректной работы библиотеки нужно соблюсти следующие условия:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
&lt;li&gt;операционная система Windows 8, 8.1, 10 или 11. Разрядность x64;&lt;/li&gt;
&lt;li&gt;процессор чем мощнее, тем лучше;&lt;/li&gt;
&lt;li&gt;наличие библиотеки Python 3.8+;&lt;/li&gt;
&lt;li&gt;для использования всех возможностей требуются библиотеки Pillow, ImageMagick, NumPy и Matplotlib. При отсутствии какой-либо библиотеки некоторые возможности станут недоступны;&lt;/li&gt;
&lt;li&gt;минимум 1 ГБайт свободного места в оперативной памяти;&lt;/li&gt;
&lt;li&gt;минимум 100 МБайт свободного места на жестком диске.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека имеет следующие основные ограничения:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
&lt;li&gt;максимальная ширина изображения &amp;mdash; 8000 px;&lt;/li&gt;
&lt;li&gt;максимальная высота изображения &amp;mdash; 8000 px.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека работает только в Windows x64. Библиотеки Python, Pillow, ImageMagick, NumPy и Matplotlib в комплект не входят. Установка Python 3.8 под Windows подробно описана в документации (см. каталог &lt;b class=&quot;u-bold&quot;&gt;docs&amp;#92;test_python&amp;#92;setup_python&lt;/b&gt;). Процесс установки Pillow, NumPy и Matplotlib предельно прост:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code3&quot; title=&quot;code3&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;pip install Pillow
pip install numpy
pip install matplotlib&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Версии этих библиотек, использованные при тестировании:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code4&quot; title=&quot;code4&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;&amp;gt;&amp;gt;&amp;gt; import PIL
&amp;gt;&amp;gt;&amp;gt; PIL.__version__
&apos;9.3.0&apos;
&amp;gt;&amp;gt;&amp;gt; import numpy
&amp;gt;&amp;gt;&amp;gt; numpy.__version__
&apos;1.23.4&apos;
&amp;gt;&amp;gt;&amp;gt; import matplotlib
&amp;gt;&amp;gt;&amp;gt; matplotlib.__version__
&apos;3.6.2&apos;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Архив с библиотекой ImageMagick нужно &amp;nbsp;загрузить со страницы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code5&quot; title=&quot;code5&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;https://imagemagick.org/script/download.php&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Для Windows x64 загрузить можно такой архив:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code6&quot; title=&quot;code6&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;ImageMagick-7.1.2-8-portable-Q16-x64.7z&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Версия библиотеки ImageMagick, используемая при тестировании:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code7&quot; title=&quot;code7&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;C:&amp;#92;Users&amp;#92;Unicross&amp;gt;C:&amp;#92;ImageMagick&amp;#92;magick -version
Version: ImageMagick 7.0.11-13 Q16 x64 2021-05-17 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Visual C++: 192829914
Features: Cipher DPC OpenCL
Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg
 jxl lcms lqr lzma openexr pangocairo png ps raw rsvg tiff webp xml
 zip zlib&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Поиск библиотеки ImageMagick выполняется в следующем порядке:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;проверка наличия каталога &lt;code class=&quot;u-courier&quot; id=&quot;mark_ImageMagick&quot; title=&quot;mark_ImageMagick&quot;&gt;ImageMagick&lt;/code&gt; на одном уровне с каталогом &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img&quot; title=&quot;mark_unicross_img&quot;&gt;unicross_img&lt;/code&gt; библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_7&quot; title=&quot;mark_UImageC_7&quot;&gt;UImageC&lt;/code&gt;. Внутри каталога &lt;code class=&quot;u-courier&quot; id=&quot;mark_ImageMagick_2&quot; title=&quot;mark_ImageMagick_2&quot;&gt;ImageMagick&lt;/code&gt; должен быть файл &lt;code class=&quot;u-courier&quot; id=&quot;mark_magick_exe&quot; title=&quot;mark_magick_exe&quot;&gt;magick.exe&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;проверка наличия каталога &lt;code class=&quot;u-courier&quot; id=&quot;mark_ImageMagick_3&quot; title=&quot;mark_ImageMagick_3&quot;&gt;ImageMagick&lt;/code&gt; в корне диска &lt;code class=&quot;u-courier&quot;&gt;C:&lt;/code&gt;. Внутри каталога должен быть файл &lt;code class=&quot;u-courier&quot; id=&quot;mark_magick_exe_2&quot; title=&quot;mark_magick_exe_2&quot;&gt;magick.exe&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;проверка наличия каталога &lt;code class=&quot;u-courier&quot; id=&quot;mark_ImageMagick_4&quot; title=&quot;mark_ImageMagick_4&quot;&gt;ImageMagick&lt;/code&gt; в корне диска &lt;code class=&quot;u-courier&quot;&gt;D:&lt;/code&gt;. Внутри каталога должен быть файл &lt;code class=&quot;u-courier&quot; id=&quot;mark_magick_exe_3&quot; title=&quot;mark_magick_exe_3&quot;&gt;magick.exe&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;проверка наличия файла &lt;code class=&quot;u-courier&quot; id=&quot;mark_magick_exe_4&quot; title=&quot;mark_magick_exe_4&quot;&gt;magick.exe&lt;/code&gt; в пути, прописанном в переменной окружения &lt;code class=&quot;u-courier&quot; id=&quot;mark_MAGICK_HOME&quot; title=&quot;mark_MAGICK_HOME&quot;&gt;MAGICK_HOME&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Можно указать путь к ImageMagick из программы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code8&quot; title=&quot;code8&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import usettings
usettings[&quot;magick_path&quot;] = r&quot;C:&amp;#92;ImageMagick&amp;#92;magick.exe&quot;;

from unicross_img.uimagegray import UImageGray
img = UImageGray(1, 1, create_arr=False)
print(img.get_image_magick_path()) # C:&amp;#92;ImageMagick&amp;#92;magick.exe&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Следует учитывать, что доступ к файлу &lt;code class=&quot;u-courier&quot; id=&quot;mark_magick_exe_5&quot; title=&quot;mark_magick_exe_5&quot;&gt;magick.exe&lt;/code&gt; из библиотеки ImageMagick выполняется напрямую, а не через Wand или биндинг. Это не очень эффективно с точки зрения производительности, но тем не менее работает, позволяя выполнить очень сложные операции на компилируемом языке. Простые операции удобно выполнять с помощью библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_8&quot; title=&quot;mark_UImageC_8&quot;&gt;UImageC&lt;/code&gt;.&lt;/p&gt;

&lt;p class=&quot;u-text&quot;&gt;Проверим установку путем вывода версии библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_9&quot; title=&quot;mark_UImageC_9&quot;&gt;UImageC&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code9&quot; title=&quot;code9&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import unicross_img

print(unicross_img.__version__) # 1.0.0
print(unicross_img.VERSION) &amp;nbsp;&amp;nbsp;&amp;nbsp; # (&apos;1&apos;, &apos;0&apos;, &apos;0&apos;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2 id=&quot;u_section_1_1&quot; title=&quot;u_section_1_1&quot;&gt;Обзор возможностей библиотеки&lt;/h2&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_10&quot; title=&quot;mark_UImageC_10&quot;&gt;UImageC&lt;/code&gt; содержит следующие основные классы:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_3&quot; title=&quot;mark_UImage_3&quot;&gt;UImage&lt;/code&gt; &amp;mdash; класс цветного изображения с 4-я каналами RGBA (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte&quot; title=&quot;mark_c_ubyte&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB&quot; title=&quot;mark_UImageRGB&quot;&gt;UImageRGB&lt;/code&gt; &amp;mdash; класс цветного изображения с 3-я каналами RGB (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_2&quot; title=&quot;mark_c_ubyte_2&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray&quot; title=&quot;mark_UImageGray&quot;&gt;UImageGray&lt;/code&gt; &amp;mdash; класс изображения в оттенках серого с одним каналом (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_3&quot; title=&quot;mark_c_ubyte_3&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UMask&quot; title=&quot;mark_UMask&quot;&gt;UMask&lt;/code&gt; &amp;mdash; класс, предназначенный для хранения маски или черно-белого изображения с одним каналом (тип&lt;code class=&quot;u-courier&quot;&gt; c_bool&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UMat&quot; title=&quot;mark_UMat&quot;&gt;UMat&lt;/code&gt; &amp;mdash; описывает матрицу с произвольными значениями.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Для каждого класса изображения существует свой класс обработки (в конец названия класса изображения добавляется фрагмент &lt;code class=&quot;u-courier&quot; id=&quot;mark_Change&quot; title=&quot;mark_Change&quot;&gt;Change&lt;/code&gt;) и свой класс рисования (в конец названия класса изображения добавляется фрагмент &lt;code class=&quot;u-courier&quot; id=&quot;mark_DrawPIL&quot; title=&quot;mark_DrawPIL&quot;&gt;DrawPIL&lt;/code&gt;). Например, выполнить преобразование изображения класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_2&quot; title=&quot;mark_UImageRGB_2&quot;&gt;UImageRGB&lt;/code&gt; можно с помощью методов из класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGBChange&quot; title=&quot;mark_UImageRGBChange&quot;&gt;UImageRGBChange&lt;/code&gt;, а нарисовать что-либо можно с помощью методов класса &amp;nbsp;&lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGBDrawPIL&quot; title=&quot;mark_UImageRGBDrawPIL&quot;&gt;UImageRGBDrawPIL&lt;/code&gt;. Фрагмент &lt;code class=&quot;u-courier&quot; id=&quot;mark_PIL&quot; title=&quot;mark_PIL&quot;&gt;PIL&lt;/code&gt; в конце названия класса рисования говорит о том, что рисование выполняется с помощью библиотеки Pillow.&lt;/p&gt;

&lt;h3 id=&quot;u_section3_1&quot; title=&quot;u_section3_1&quot;&gt;Подключение библиотеки и импорт классов из модулей&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_11&quot; title=&quot;mark_UImageC_11&quot;&gt;UImageC&lt;/code&gt; поставляется в виде пакета &lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img_2&quot; title=&quot;mark_unicross_img_2&quot;&gt;unicross_img&lt;/code&gt;. Если программа расположена рядом с каталогом библиотеки, то подключение модуля из пакета и импорт класса выполняются примерно так:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code10&quot; title=&quot;code10&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Если программа расположена в другом месте, то предварительно нужно прописать путь к библиотеке в пути поиска модулей:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code11&quot; title=&quot;code11&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;import sys
sys.path.append(r&quot;D:&amp;#92;UImageC&quot;)
from unicross_img.uimagergb import UImageRGB&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Библиотека содержит 14 модулей. Импорт всех классов из этих модулей потребует довольно много инструкций &lt;code class=&quot;u-courier&quot; id=&quot;mark_import&quot; title=&quot;mark_import&quot;&gt;import&lt;/code&gt;. С помощью этой инструкции можно импортировать сразу все основные классы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code12&quot; title=&quot;code12&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img import *&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Пример использования:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code13&quot; title=&quot;code13&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img import *

img = UImageRGB(300, 200, UColor(&quot;красный&quot;))
print(img.get_num_channels()) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# 3
# Преобразование в оттенки серого
img_gray = img.get_uimagegray()
print(img_gray.get_num_channels()) &amp;nbsp;# 1
# Добавление альфа-канала
img_rgba = UImage.from_uimagergb(img, opacity=128)
print(img_rgba.get_num_channels()) &amp;nbsp;# 4&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Импортируются следующие классы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code14&quot; title=&quot;code14&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;__all__ = [
 &amp;nbsp;&amp;nbsp;&apos;UPoint&apos;, &apos;USize&apos;, &apos;URect&apos;, &apos;UCArray&apos;, &apos;UColor&apos;, &apos;UMat&apos;,
 &amp;nbsp;&amp;nbsp;&apos;UImage&apos;, &apos;UImageChange&apos;, &apos;UImageRGB&apos;, &apos;UImageRGBChange&apos;,
 &amp;nbsp;&amp;nbsp;&apos;UImageGray&apos;, &apos;UMask&apos;, &apos;UImageGrayChange&apos;, 
 &amp;nbsp;&amp;nbsp;&apos;UFont&apos;, &apos;UImageDrawPIL&apos;, &apos;UImageRGBDrawPIL&apos;, &apos;UImageGrayDrawPIL&apos;]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_2&quot; title=&quot;u_section3_2&quot;&gt;Примеры использования библиотеки&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Пример загрузки изображения из файла, выполнения поворота изображения на 90 градусов и сохранения изображения в файл:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code15&quot; title=&quot;code15&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB
from unicross_img.uimagergbchange import UImageRGBChange

img = UImageRGB.load(&quot;foto.jpg&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img = UImageRGBChange.rotate_90(img)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;if img.save(&quot;foto2.jpg&quot;):
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Изображение успешно сохранено&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось сохранить изображение&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось повернуть изображение&quot;)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Пример создания нового изображения красного цвета с размерами &lt;code class=&quot;u-courier&quot;&gt;300x200px&lt;/code&gt; и сохранения его в файл в формате &lt;code class=&quot;u-courier&quot; id=&quot;mark_PNG&quot; title=&quot;mark_PNG&quot;&gt;PNG&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code16&quot; title=&quot;code16&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.ucolor import UColor
from unicross_img.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(&quot;красный&quot;))
print(img.get_width()) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # 300
print(img.get_height()) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;# 200
print(img.get_num_channels()) &amp;nbsp;# 3
print(img.get_arr_len()) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# 180000
img.save(&quot;foto2.png&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Характерной особенностью библиотеки является хранение значений матрицы в одномерном массиве &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_3&quot; title=&quot;mark_ctypes_3&quot;&gt;ctypes&lt;/code&gt; и возможность непосредственного доступа к этому массиву:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code17&quot; title=&quot;code17&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.ucolor import UColor
from unicross_img.uimagergb import UImageRGB

img = UImageRGB(3, 2, UColor(&quot;красный&quot;))
print(img.arr[:])
# [255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0,
# &amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0]
# Проверка валидности
if img.is_valid():
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Перебор
 &amp;nbsp;&amp;nbsp;&amp;nbsp;for item in img.arr:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(item)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Изменение
 &amp;nbsp;&amp;nbsp;&amp;nbsp;r, g, b = 0, 128, 255
 &amp;nbsp;&amp;nbsp;&amp;nbsp;for i in range(0, img.get_arr_len(), img.get_num_channels()):
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;img.arr[i] = r
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;img.arr[i + 1] = g
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;img.arr[i + 2] = b

print(img.arr[:])
# [0, 128, 255, &amp;nbsp;&amp;nbsp;0, 128, 255, &amp;nbsp;&amp;nbsp;0, 128, 255,
# &amp;nbsp;0, 128, 255, &amp;nbsp;&amp;nbsp;0, 128, 255, &amp;nbsp;&amp;nbsp;0, 128, 255]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Можно использовать уже существующий список или массив для создания объекта:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code18&quot; title=&quot;code18&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import UCArray
from unicross_img.uimagergb import UImageRGB

arr = [255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0,
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0]
img = UImageRGB(3, 2, create_arr=False)
img.arr = UCArray.create_ctypes_array_ubyte_from_list(arr)
print(img.is_valid()) # True
print(img.arr[:])
# [255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0,
# &amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;В любой момент времени можно преобразовать объект одного класса в объект другого класса:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code19&quot; title=&quot;code19&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.ucolor import UColor
from unicross_img.uimage import UImage
from unicross_img.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(&quot;красный&quot;))
print(img.get_num_channels()) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# 3
# Преобразование в оттенки серого
img_gray = img.get_uimagegray()
print(img_gray.get_num_channels()) &amp;nbsp;# 1
# Добавление альфа-канала
img_rgba = UImage.from_uimagergb(img, opacity=128)
print(img_rgba.get_num_channels()) &amp;nbsp;# 4&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Стандартные классы позволяют работать только с целочисленными значениями. Для значений другого типа предназначен класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UMat_2&quot; title=&quot;mark_UMat_2&quot;&gt;UMat&lt;/code&gt;. Например, можно преобразовать объект изображения в матрицу с вещественными значениями, выполнить какие-либо операции, а затем обратно преобразовать матрицу в объект изображения:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code20&quot; title=&quot;code20&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.ucolor import UColor
from unicross_img.uimagergb import UImageRGB

img = UImageRGB(2, 2, UColor(255, 0, 0))
print(img.arr[:])
# [255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0,
# &amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0]
m = img.get_umat_64f()
print(m.arr)
# [1.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;1.0, 0.0, 0.0,
# &amp;nbsp;1.0, 0.0, 0.0, &amp;nbsp;&amp;nbsp;1.0, 0.0, 0.0]
img = UImageRGB.from_umat_64f(m)
print(img.arr[:])
# [255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0,
# &amp;nbsp;255, 0, 0, &amp;nbsp;&amp;nbsp;255, 0, 0]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_3&quot; title=&quot;u_section3_3&quot;&gt;Использование Pillow в программе на Python&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_12&quot; title=&quot;mark_UImageC_12&quot;&gt;UImageC&lt;/code&gt; тесно связана с библиотекой Pillow. Загрузка изображений из файлов стандартных форматов, сохранение в файл, а также выполнение различных преобразований в основном выполняется средствами библиотеки Pillow. Эти операции можно выполнить и с помощью библиотеки ImageMagick, но вот рисование и вывод текста возможны только при условии доступности библиотеки Pillow. В любой момент времени имеется возможность преобразования объектов из разных библиотек:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code21&quot; title=&quot;code21&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from PIL import Image
from unicross_img.uimagergb import UImageRGB

img = Image.open(&quot;foto.jpg&quot;)
print(img.size) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;# (500, 333)
img2 = UImageRGB.from_pil_image(img)
print(img2.get_size()) # USize(width=500, height=333)
img3 = img2.get_pil_image()
print(img3.size) &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# (500, 333)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_4&quot; title=&quot;u_section3_4&quot;&gt;Использование ImageMagick в программе на Python&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Если библиотека Pillow недоступна, то автоматически вызывается метод, выполняющий аналогичную операцию с помощью библиотеки ImageMagick. Если библиотека ImageMagick также недоступна, то метод вернет значение &lt;code class=&quot;u-courier&quot; id=&quot;mark_None&quot; title=&quot;mark_None&quot;&gt;None&lt;/code&gt;. Можно сразу вызвать метод, выполняющий операцию с помощью библиотеки ImageMagick. В названиях таких методов последним будет фрагмент &quot;&lt;code class=&quot;u-courier&quot; id=&quot;mark__im&quot; title=&quot;mark__im&quot;&gt;_im&lt;/code&gt;&quot;. Выполним все операции только с помощью библиотеки ImageMagick:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code22&quot; title=&quot;code22&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB
from unicross_img.uimagergbchange import UImageRGBChange

img = UImageRGB.load_im(&quot;foto.jpg&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img = UImageRGBChange.rotate_90_im(img)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;if img.save_im(&quot;foto2.jpg&quot;):
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Изображение успешно сохранено&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось сохранить изображение&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось повернуть изображение&quot;)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_5&quot; title=&quot;u_section3_5&quot;&gt;Форматы файлов UImage и PPM&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;На самом деле стандартные классы библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_13&quot; title=&quot;mark_UImageC_13&quot;&gt;UImageC&lt;/code&gt; могут работать и без библиотек Pillow и ImageMagick. Просто станет нельзя загрузить изображение из стандартных графических форматов и сохранить изображение в этих форматах. Но остается возможность использовать форматы без сжатия, например, формат &lt;code class=&quot;u-courier&quot; id=&quot;mark_PPM&quot; title=&quot;mark_PPM&quot;&gt;PPM&lt;/code&gt;, а также собственный формат библиотеки &lt;code class=&quot;u-courier&quot; id=&quot;mark__uimage&quot; title=&quot;mark__uimage&quot;&gt;.uimage&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code23&quot; title=&quot;code23&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB

# Загрузка PPM
img = UImageRGB.load_ppm_p6(&quot;foto.ppm&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(img.get_size()) # USize(width=500, height=333)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Сохранение PPM
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img.save_ppm_p6(&quot;foto2.ppm&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Сохранение .uimage
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img.save_uimage_rgb(&quot;foto.uimage&quot;)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)

# Загрузка .uimage
img = UImageRGB.load_uimage(&quot;foto.uimage&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(img.get_size()) # USize(width=500, height=333)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Формат файла определяется по расширению файла, поэтому можно просто использовать методы &lt;code class=&quot;u-courier&quot; id=&quot;mark_load&quot; title=&quot;mark_load&quot;&gt;load()&lt;/code&gt; и &lt;code class=&quot;u-courier&quot; id=&quot;mark_save&quot; title=&quot;mark_save&quot;&gt;save()&lt;/code&gt; без явного указания типа файла:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code24&quot; title=&quot;code24&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB

# Загрузка PPM
img = UImageRGB.load(&quot;foto.ppm&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(img.get_size()) # USize(width=500, height=333)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Сохранение PPM
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img.save(&quot;foto2.ppm&quot;)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;# Сохранение .uimage
 &amp;nbsp;&amp;nbsp;&amp;nbsp;img.save(&quot;foto.uimage&quot;)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)

# Загрузка .uimage
img = UImageRGB.load(&quot;foto.uimage&quot;)
if img:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(img.get_size()) # USize(width=500, height=333)
else:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;Не удалось загрузить изображение&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_6&quot; title=&quot;u_section3_6&quot;&gt;Взаимодействие с Tkinter и объектом PhotoImage&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Графическая библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_14&quot; title=&quot;mark_UImageC_14&quot;&gt;UImageC&lt;/code&gt; тесно связана также с библиотекой Tkinter. Для этого предназначен класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperTk&quot; title=&quot;mark_UHelperTk&quot;&gt;UHelperTk&lt;/code&gt;. Отобразим изображение в диалоговом окне:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code25&quot; title=&quot;code25&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagergb import UImageRGB
from unicross_img.uhelper_tk import UHelperTk

img = UImageRGB.load(&quot;foto.jpg&quot;)
UHelperTk.imshow(img)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Кстати, если библиотеки Pillow и ImageMagick недоступны, то можно загрузить изображение из стандартных графических форматов с помощью объекта &lt;code class=&quot;u-courier&quot; id=&quot;mark_PhotoImage&quot; title=&quot;mark_PhotoImage&quot;&gt;PhotoImage&lt;/code&gt; из библиотеки Tkinter. В классе &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperTk_2&quot; title=&quot;mark_UHelperTk_2&quot;&gt;UHelperTk&lt;/code&gt; для этой цели предусмотрены специальные методы.&lt;/p&gt;

&lt;h3 id=&quot;u_section3_7&quot; title=&quot;u_section3_7&quot;&gt;Взаимодействие с библиотекой NumPy&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;С помощью класса &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperNP&quot; title=&quot;mark_UHelperNP&quot;&gt;UHelperNP&lt;/code&gt; можно преобразовать объект изображения в массив NumPy, а также выполнить обратное преобразование:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code26&quot; title=&quot;code26&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.ucolor import UColor
from unicross_img.uimagergb import UImageRGB
from unicross_img.uhelper_np import UHelperNP

img = UImageRGB(3, 2, UColor(255, 0, 0))

# Преобразование UImageRGB в массив NumPy
arr = UHelperNP.uimage_to_ndimage(img)
print(arr.shape) &amp;nbsp;# (2, 3, 3)
print(arr.dtype) &amp;nbsp;# uint8
print(arr)
# [[[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
# &amp;nbsp;[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
# &amp;nbsp;[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]
#
# [[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
# &amp;nbsp;[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
# &amp;nbsp;[255 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]]

# Преобразование массива NumPy в UImageRGB
img2 = UHelperNP.ndimage_to_uimage(arr)
print(img2) # UImageRGB(width=3, height=2)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Можно также обернуть объект изображения в массив NumPy. Все изменения массива затронут объект изображения и наоборот:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code27&quot; title=&quot;code27&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uimagegray import UImageGray
from unicross_img.uhelper_np import UHelperNP

img = UImageGray(3, 2, 255)
print(img.arr[:])
# [255, 255, 255, &amp;nbsp;&amp;nbsp;&amp;nbsp;255, 255, 255]
arr = UHelperNP.uimage_buffer_ndimage(img)
print(arr)
# [[255 255 255]
# &amp;nbsp;[255 255 255]]
# Все изменения массива затронут объект изображения!
arr -= 255
print(img.arr[:])
# [0, 0, 0, 0, 0, 0]
# Все изменения объекта изображения затронут массив!
img.arr[0] = 128
print(arr)
# [[128 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]
# &amp;nbsp;[ &amp;nbsp;0 &amp;nbsp;&amp;nbsp;0 &amp;nbsp;&amp;nbsp;0]]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperNP_2&quot; title=&quot;mark_UHelperNP_2&quot;&gt;UHelperNP&lt;/code&gt; содержит также методы для выполнения различных преобразований для изображений в оттенках серого, например, можно повернуть изображение на угол кратный 90 градусам, зеркально отразить по горизонтали или вертикали, обрезать, вставить одно изображение в другое, добавить рамку или паддинг и др.&lt;/p&gt;

&lt;h3 id=&quot;u_section3_8&quot; title=&quot;u_section3_8&quot;&gt;Взаимодействие с библиотекой Matplotlib&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperPlt&quot; title=&quot;mark_UHelperPlt&quot;&gt;UHelperPlt&lt;/code&gt; позволяет отображать изображения и гистограммы с помощью библиотеки Matplotlib. Отобразим изображение в диалоговом окне:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code28&quot; title=&quot;code28&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper_plt import UHelperPlt, UImageRGB

img = UImageRGB.load(&quot;foto.jpg&quot;)
UHelperPlt.imshow(img)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Вычислим гистограммы и отобразим графики сразу для всех каналов:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code29&quot; title=&quot;code29&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper_plt import UHelperPlt, UImageRGB

img = UImageRGB.load(&quot;foto.jpg&quot;)
UHelperPlt.uimagergb_show_hist(img)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_9&quot; title=&quot;u_section3_9&quot;&gt;Настройка пути к каталогу для временных файлов&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;По умолчанию библиотека &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageC_15&quot; title=&quot;mark_UImageC_15&quot;&gt;UImageC&lt;/code&gt; должна быть расположена в каталоге, запись в который не требует прав администратора и путь к которому не содержит запрещенных символов (например, русских букв). Иначе работа с библиотекой ImageMagick станет невозможной, т. к. взаимодействие выполняется через файловую систему и командную строку. Рекомендуемые пути:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code30&quot; title=&quot;code30&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;C:&amp;#92;UImageC&amp;#92;unicross_img
D:&amp;#92;UImageC&amp;#92;unicross_img
C:&amp;#92;ImageMagick&amp;#92;magick.exe
D:&amp;#92;ImageMagick&amp;#92;magick.exe&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Имеется возможность обойти это ограничение и указать местоположение каталога для временных файлов автоматически или вручную:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;если путь к каталогу с библиотекой соответствует регулярному выражению:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;u-listing u-indent&quot; id=&quot;code1&quot; title=&quot;code1&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;r&quot;^[a-zA-Z0-9/&amp;#92;&amp;#92;:&amp;#92;._&amp;#92;- ]+$&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text u-indent&quot;&gt;то проверяется возможность записи в каталог &lt;code class=&quot;u-courier&quot;&gt;unicross_img&amp;#92;tmp&lt;/code&gt;. Если каталог доступен для записи, то он будет использоваться для сохранения временных файлов;&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;если каталог &lt;code class=&quot;u-courier&quot;&gt;unicross_img&amp;#92;tmp&lt;/code&gt; не доступен для записи, то выполняется поиск системного каталога для временных файлов. Если этот каталог существует и в пути к нему нет запрещенных символов, то внутри этого каталога создается каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark__uimagetmp&quot; title=&quot;mark__uimagetmp&quot;&gt;_uimagetmp&lt;/code&gt; и производится попытка записи файла в него. Если каталог доступен для записи, то он будет использоваться для сохранения временных файлов;&lt;/li&gt;
 &lt;li&gt;если системный каталог не соответствует требованиям, то выполняется тестирование текущего рабочего каталога. Если в пути к нему нет запрещенных символов, то внутри этого каталога создается каталог &lt;code class=&quot;u-courier&quot; id=&quot;mark__uimagetmp_2&quot; title=&quot;mark__uimagetmp_2&quot;&gt;_uimagetmp&lt;/code&gt; и производится попытка записи файла в него. Если каталог доступен для записи, то он будет использоваться для сохранения временных файлов;&lt;/li&gt;
 &lt;li&gt;если текущий рабочий каталог также не соответствует требованиям, то любая попытка создать экземпляр класса изображения приведет к генерации исключения. Обойти это исключение можно с помощью словаря &lt;code class=&quot;u-courier&quot; id=&quot;mark_usettings&quot; title=&quot;mark_usettings&quot;&gt;usettings&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;Если путь не найден, то &lt;code class=&quot;u-courier&quot;&gt;usettings[&quot;tmp_path&quot;]&lt;/code&gt; будет содержать значение &lt;code class=&quot;u-courier&quot; id=&quot;mark_None_2&quot; title=&quot;mark_None_2&quot;&gt;None&lt;/code&gt;, которое можно обработать из программы:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code31&quot; title=&quot;code31&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import usettings
if usettings[&quot;tmp_path&quot;] is None:
 &amp;nbsp;&amp;nbsp;&amp;nbsp;usettings[&quot;tmp_path&quot;] = my_tmp_path;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;u-text&quot;&gt;Изменение значения &lt;code class=&quot;u-courier&quot;&gt;usettings[&quot;tmp_path&quot;]&lt;/code&gt; изменяет путь для всех экземпляров:&lt;/p&gt;

&lt;div class=&quot;u-listing&quot; id=&quot;code32&quot; title=&quot;code32&quot;&gt;
&lt;pre&gt;
&lt;code class=&quot;language-plaintext&quot;&gt;from unicross_img.uhelper import usettings
from unicross_img import *

print(usettings[&quot;tmp_path&quot;])
# D:&amp;#92;UImageC&amp;#92;unicross_img&amp;#92;tmp

usettings[&quot;tmp_path&quot;] = r&quot;D:&amp;#92;UImageC&quot;;

img = UImage(1, 1, create_arr=False)
print(img.get_tmp_path()) # D:&amp;#92;UImageC
img2 = UImageRGB(1, 1, create_arr=False)
print(img2.get_tmp_path()) # D:&amp;#92;UImageC
img3 = UImageGray(1, 1, create_arr=False)
print(img3.get_tmp_path()) # D:&amp;#92;UImageC&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id=&quot;u_section3_10&quot; title=&quot;u_section3_10&quot;&gt;Модули библиотеки UImageC&lt;/h3&gt;

&lt;p class=&quot;u-text&quot;&gt;Внутри пакета &amp;nbsp;&lt;code class=&quot;u-courier&quot; id=&quot;mark_unicross_img_3&quot; title=&quot;mark_unicross_img_3&quot;&gt;unicross_img&lt;/code&gt; расположены следующие модули:&lt;/p&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_ucolor_py&quot; title=&quot;mark_ucolor_py&quot;&gt;ucolor.py&lt;/code&gt; &amp;mdash; вспомогательный модуль для работы с цветом. Содержит следующие идентификаторы:&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list2&quot;&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UColor&quot; title=&quot;mark_UColor&quot;&gt;UColor&lt;/code&gt; для хранения цвета &lt;code class=&quot;u-courier&quot; id=&quot;mark_RGBA&quot; title=&quot;mark_RGBA&quot;&gt;RGBA&lt;/code&gt; (значения от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;объекты &lt;code class=&quot;u-courier&quot; id=&quot;mark_URGBA&quot; title=&quot;mark_URGBA&quot;&gt;URGBA&lt;/code&gt; и &lt;code class=&quot;u-courier&quot; id=&quot;mark_URGB&quot; title=&quot;mark_URGB&quot;&gt;URGB&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;словарь &lt;code class=&quot;u-courier&quot; id=&quot;mark_COLOR_NAMES&quot; title=&quot;mark_COLOR_NAMES&quot;&gt;COLOR_NAMES&lt;/code&gt; со списком всех поддерживаемых названий цветов;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_py&quot; title=&quot;mark_uhelper_py&quot;&gt;uhelper.py&lt;/code&gt; &amp;mdash; вспомогательный модуль, содержащий следующие идентификаторы:&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list2&quot;&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UPoint&quot; title=&quot;mark_UPoint&quot;&gt;UPoint&lt;/code&gt; описывает координаты точки (тип &lt;code class=&quot;u-courier&quot; id=&quot;mark_int&quot; title=&quot;mark_int&quot;&gt;int&lt;/code&gt;) в двумерном пространстве;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UPointF&quot; title=&quot;mark_UPointF&quot;&gt;UPointF&lt;/code&gt; описывает координаты точки (тип &lt;code class=&quot;u-courier&quot; id=&quot;mark_float&quot; title=&quot;mark_float&quot;&gt;float&lt;/code&gt;) в двумерном пространстве;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_USize&quot; title=&quot;mark_USize&quot;&gt;USize&lt;/code&gt; описывает размеры прямоугольной области (тип &lt;code class=&quot;u-courier&quot; id=&quot;mark_int_2&quot; title=&quot;mark_int_2&quot;&gt;int&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_USizeF&quot; title=&quot;mark_USizeF&quot;&gt;USizeF&lt;/code&gt; описывает размеры прямоугольной области (тип &lt;code class=&quot;u-courier&quot; id=&quot;mark_float_2&quot; title=&quot;mark_float_2&quot;&gt;float&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_URect&quot; title=&quot;mark_URect&quot;&gt;URect&lt;/code&gt; описывает координаты и размеры (тип &lt;code class=&quot;u-courier&quot; id=&quot;mark_int_3&quot; title=&quot;mark_int_3&quot;&gt;int&lt;/code&gt;) прямоугольной области;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UCArray&quot; title=&quot;mark_UCArray&quot;&gt;UCArray&lt;/code&gt; содержит методы для работы с массивами &lt;code class=&quot;u-courier&quot; id=&quot;mark_ctypes_4&quot; title=&quot;mark_ctypes_4&quot;&gt;ctypes&lt;/code&gt;;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_pil_py&quot; title=&quot;mark_uhelper_pil_py&quot;&gt;uhelper_pil.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperPIL&quot; title=&quot;mark_UHelperPIL&quot;&gt;UHelperPIL&lt;/code&gt;, предназначенный для выполнения загрузки и сохранения файла &lt;code class=&quot;u-courier&quot; id=&quot;mark__uimage_2&quot; title=&quot;mark__uimage_2&quot;&gt;.uimage&lt;/code&gt; для библиотеки Pillow;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_tk_py&quot; title=&quot;mark_uhelper_tk_py&quot;&gt;uhelper_tk.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperTk_3&quot; title=&quot;mark_UHelperTk_3&quot;&gt;UHelperTk&lt;/code&gt;, предназначенный для выполнения преобразований между &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_4&quot; title=&quot;mark_UImage_4&quot;&gt;UImage&lt;/code&gt; и Tk &lt;code class=&quot;u-courier&quot; id=&quot;mark_PhotoImage_2&quot; title=&quot;mark_PhotoImage_2&quot;&gt;PhotoImage&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_np_py&quot; title=&quot;mark_uhelper_np_py&quot;&gt;uhelper_np.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperNP_3&quot; title=&quot;mark_UHelperNP_3&quot;&gt;UHelperNP&lt;/code&gt;, предназначенный для выполнения преобразований с помощью библиотеки NumPy;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uhelper_plt_py&quot; title=&quot;mark_uhelper_plt_py&quot;&gt;uhelper_plt.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UHelperPlt_2&quot; title=&quot;mark_UHelperPlt_2&quot;&gt;UHelperPlt&lt;/code&gt;, предназначенный для отображения изображений и гистограмм с помощью библиотеки Matplotlib;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimage_py&quot; title=&quot;mark_uimage_py&quot;&gt;uimage.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_5&quot; title=&quot;mark_UImage_5&quot;&gt;UImage&lt;/code&gt;, предназначенный для хранения цветного изображения с 4-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_RGBA_2&quot; title=&quot;mark_RGBA_2&quot;&gt;RGBA&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_4&quot; title=&quot;mark_c_ubyte_4&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagechange_py&quot; title=&quot;mark_uimagechange_py&quot;&gt;uimagechange.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageChange&quot; title=&quot;mark_UImageChange&quot;&gt;UImageChange&lt;/code&gt;, предназначенный для выполнения преобразований &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_6&quot; title=&quot;mark_UImage_6&quot;&gt;UImage&lt;/code&gt; (средствами Pillow или ImageMagick и без). Почти все методы принимают объект &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_7&quot; title=&quot;mark_UImage_7&quot;&gt;UImage&lt;/code&gt; и возвращают копию преобразованного объекта &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_8&quot; title=&quot;mark_UImage_8&quot;&gt;UImage&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_None_3&quot; title=&quot;mark_None_3&quot;&gt;None&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagergb_py&quot; title=&quot;mark_uimagergb_py&quot;&gt;uimagergb.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_3&quot; title=&quot;mark_UImageRGB_3&quot;&gt;UImageRGB&lt;/code&gt;, предназначенный для хранения цветного изображения с 3-я каналами &lt;code class=&quot;u-courier&quot; id=&quot;mark_RGB&quot; title=&quot;mark_RGB&quot;&gt;RGB&lt;/code&gt; (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_5&quot; title=&quot;mark_c_ubyte_5&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagergbchange_py&quot; title=&quot;mark_uimagergbchange_py&quot;&gt;uimagergbchange.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGBChange_2&quot; title=&quot;mark_UImageRGBChange_2&quot;&gt;UImageRGBChange&lt;/code&gt;, предназначенный для выполнения преобразований &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_4&quot; title=&quot;mark_UImageRGB_4&quot;&gt;UImageRGB&lt;/code&gt; (средствами Pillow или ImageMagick и без). Почти все методы принимают объект &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_5&quot; title=&quot;mark_UImageRGB_5&quot;&gt;UImageRGB&lt;/code&gt; и возвращают копию преобразованного объекта &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_6&quot; title=&quot;mark_UImageRGB_6&quot;&gt;UImageRGB&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_None_4&quot; title=&quot;mark_None_4&quot;&gt;None&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagegray_py&quot; title=&quot;mark_uimagegray_py&quot;&gt;uimagegray.py&lt;/code&gt; &amp;mdash; содержит следующие идентификаторы:&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list2&quot;&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_2&quot; title=&quot;mark_UImageGray_2&quot;&gt;UImageGray&lt;/code&gt;, предназначенный для хранения изображения в оттенках серого с одним каналом (&lt;code class=&quot;u-courier&quot; id=&quot;mark_c_ubyte_6&quot; title=&quot;mark_c_ubyte_6&quot;&gt;c_ubyte&lt;/code&gt; от &lt;code class=&quot;u-courier&quot;&gt;0&lt;/code&gt; до &lt;code class=&quot;u-courier&quot;&gt;255&lt;/code&gt;);&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UMask_2&quot; title=&quot;mark_UMask_2&quot;&gt;UMask&lt;/code&gt;, предназначенный для хранения маски или черно-белого изображения с одним каналом (тип&lt;code class=&quot;u-courier&quot;&gt; c_bool&lt;/code&gt;);&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagegraychange_py&quot; title=&quot;mark_uimagegraychange_py&quot;&gt;uimagegraychange.py&lt;/code&gt; &amp;mdash; содержит класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGrayChange&quot; title=&quot;mark_UImageGrayChange&quot;&gt;UImageGrayChange&lt;/code&gt;, предназначенный для выполнения преобразований &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_3&quot; title=&quot;mark_UImageGray_3&quot;&gt;UImageGray&lt;/code&gt; (средствами Pillow или ImageMagick и без). Почти все методы принимают объект &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_4&quot; title=&quot;mark_UImageGray_4&quot;&gt;UImageGray&lt;/code&gt; и возвращают копию преобразованного объекта &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_5&quot; title=&quot;mark_UImageGray_5&quot;&gt;UImageGray&lt;/code&gt; или &lt;code class=&quot;u-courier&quot; id=&quot;mark_None_5&quot; title=&quot;mark_None_5&quot;&gt;None&lt;/code&gt;;&lt;/li&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_uimagedraw_py&quot; title=&quot;mark_uimagedraw_py&quot;&gt;uimagedraw.py&lt;/code&gt; &amp;mdash; модуль для рисования. Содержит следующие идентификаторы:&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list2&quot;&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UFont&quot; title=&quot;mark_UFont&quot;&gt;UFont&lt;/code&gt;, описывающий характеристики шрифта;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageDrawPIL&quot; title=&quot;mark_UImageDrawPIL&quot;&gt;UImageDrawPIL&lt;/code&gt;, предназначенный для рисования на &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImage_9&quot; title=&quot;mark_UImage_9&quot;&gt;UImage&lt;/code&gt; средствами Pillow;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGBDrawPIL_2&quot; title=&quot;mark_UImageRGBDrawPIL_2&quot;&gt;UImageRGBDrawPIL&lt;/code&gt;, предназначенный для рисования на &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageRGB_7&quot; title=&quot;mark_UImageRGB_7&quot;&gt;UImageRGB&lt;/code&gt; средствами Pillow;&lt;/li&gt;
 &lt;li&gt;класс &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGrayDrawPIL&quot; title=&quot;mark_UImageGrayDrawPIL&quot;&gt;UImageGrayDrawPIL&lt;/code&gt;, предназначенный &amp;nbsp;для рисования на &lt;code class=&quot;u-courier&quot; id=&quot;mark_UImageGray_6&quot; title=&quot;mark_UImageGray_6&quot;&gt;UImageGray&lt;/code&gt; средствами Pillow;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;u-mark-list&quot;&gt;
 &lt;li&gt;&lt;code class=&quot;u-courier&quot; id=&quot;mark_umat_py&quot; title=&quot;mark_umat_py&quot;&gt;umat.py&lt;/code&gt; &amp;mdash; содержит класс двумерной матрицы &lt;code class=&quot;u-courier&quot; id=&quot;mark_UMat_3&quot; title=&quot;mark_UMat_3&quot;&gt;UMat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;u-text&quot;&gt;&lt;a class=&quot;u-btn u-btn-info&quot; href=&quot;https://wwwadmin.ru/blog/release_uimagec_version_1_0_0_2026_01_19/2026-01-19-123#zakaz&quot; target=&quot;_blank&quot;&gt;Заказать библиотеку&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://wwwadmin.ru/blog/uimagec_biblioteka_dlja_raboty_s_izobrazhenijami_v_python_c_i_c/2026-01-05-115</link>
			<category>UImage C</category>
			<dc:creator>unicross</dc:creator>
			<guid>https://wwwadmin.ru/blog/uimagec_biblioteka_dlja_raboty_s_izobrazhenijami_v_python_c_i_c/2026-01-05-115</guid>
			<pubDate>Mon, 05 Jan 2026 15:05:48 GMT</pubDate>
		</item>
	</channel>
</rss>