Я пытаюсь извлечь изображения RGB и IR из изображения в формате RGGB.Один из компонентов G содержит компонент IR.
Для выполнения этой задачи в настоящее время я использую следующую функцию, которая включает в себя два вложенных цикла for.Чтобы мое приложение работало лучше, мне нужно уменьшить время выполнения этой функции.Эта часть кажется основным узким местом, учитывая производительность в реальном времени.
Поскольку в каждом цикле цикла используется разная часть изображения и отсутствует одновременный доступ к одному и тому же пикселю, я думаю, что эта задачаможет выполняться параллельно.Но, к сожалению, у меня недостаточно опыта для параллельной обработки в Python, и я не смог решить эту проблему, посмотрев на другие темы.
Может ли кто-нибудь помочь мне преобразовать следующую функцию в параллельную форму?
Функция получает изображение с размером mxn и возвращает два изображения с одним размером mxn и одним (m / 2) x (n / 2) размером.
def ConvertRGIR2RGGB(BayerRGIR):
rowSize, colSize = BayerRGIR.shape
halfRowSize = int(rowSize/2);
halfColSize = int(colSize/2);
#Result image after replacing the IR pixel with the G data
BayerRGGB = BayerRGIR.copy();
#IR data will be half the size of Bayer Image
IRimage = np.zeros( (halfRowSize, halfColSize), dtype = 'uint8')
#copying the IR data and replacing the IR data with G
for row in range(0, rowSize, 2):
for col in range(0, colSize, 2):
#Set the IR Data with Nearby Green
BayerRGGB[row + 1, col] = BayerRGIR[row, col + 1]
#Set the IR Data
IRimage[int(row / 2), int(col / 2)] = BayerRGIR[row + 1, col]
return BayerRGGB, IRimage