Привет всем, я пишу программу на C++ с библиотекой OpenCV! и я использую функцию, созданную Matlab Mex, которая принимает изображение и возвращает значения! это выглядит примерно так

array=findsomething(image);//matlab function

изображение представляет собой переменную OpenCV, которая вызывает Mat! этот мат хранит пиксели в беззнаковом массиве символов как BGR. в то время как функция Matlab сохраняет пиксели в массиве RGB. преобразование данных между переменной OpenCV и переменной функции Matlab означает копирование каждого пикселя из первой переменной Mat в массив Unsigned Char * (это переменная функции Matlab), что занимает очень много времени для каждого вызова изображения с камеры. Есть ли способ изменить то, как Matlab хранит и обрабатывает данные изображения, чтобы они стали BGR?

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю справку по домашнему заданию MatLab, справку по назначению MatLab, помощь по финансовому назначению для студентов, инженеров и исследователей в нескольких отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Нет, вы не можете изменить порядок цветовых каналов в Matlab (не знаю об OpenCV). Однако, если вы не отображаете изображение и не конвертируете его в оттенки серого, порядок каналов не имеет значения для большинства функций обработки.

Преобразование между RGB и BGR в Matlab должно быть довольно быстрым:

flip(yourimage, 3)

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ