| Description: |
Актуальность исследования обусловлена необходимостью решения задач, связанных с обработкой изображений в различных технических приложениях. Рассмотрено несколько подходов: на основе обычного доступа к пикселям изображения, когда фактически осуществляется обход всех значений массива по очереди, доступ к пикселям осуществляется при помощи арифметических операций над указателями, пиксели при этом располагаются внутри одного непрерывного блока памяти последовательным образом, и, на основе предложенного подхода, связанного с распараллеливанием вычислений, использованием многопоточности. На основе эмпирических исследований была показана возможность ускорения вычислений на основе предложенного метода в несколько раз. Рассмотрен блочный алгоритм бинаризации, когда бинарные блоки формируют полное бинарное изображение. В рамках данного алгоритм проведено распараллеливание вычислений. При реализации алгоритма использовался язык С++ и библиотеки OpenCV и OpenMP. На основе эмпирических исследований в таблицах и на графиках показано, что за счет распараллеливания даже при полной загрузке ядра время обработки изображения было уменьшено почти в 2 раза, что подтверждает возможности применения предлагаемого алгоритма.The relevance of the study is due to the need to solve problems related to image processing in various technical applications. Several approaches are considered: on the basis of the usual access to image pixels, when in fact all values of the array are bypassed in turn, access to pixels is carried out using arithmetic operations on pointers, pixels are located within a single continuous memory block in a sequential manner, and, on the basis of the proposed approach associated with parallelization of calculations, using multithreading. On the basis of empirical studies, the possibility of accelerating the calculations based on the proposed method several times was shown. A block binarization algorithm is considered when binary blocks form a complete binary image. Within this algorithm parallelization of calculations is carried out. When implementing the algorithm, the C++ language and OpenCV and OpenMP libraries were used. On the basis of empirical studies in tables and graphs, it is shown that due to parallelization, even at full load of the kernel, the image processing time was reduced by almost 2 times, which confirms the possibility of using the proposed algorithm. |