Копировать данные Mat в другой Mat

Мне нужно скопировать данные моего изображения с одного Mat Mat. Мой код выглядит ниже

Mat src;//Source image
Mat res(1024,768,CV_8UC3); //Same width and height as source
uchar *dest=src.data;
res.data=dest;

Но я получаю искаженный образ назначения. Это моя проблема с кодированием?

Заранее спасибо!

2
nl ja de

1 ответы

Но я получаю искаженный образ назначения. Это моя проблема с кодированием?

Если ширина и высота такие же, как кажется, проблема связана с количеством каналов (количество байтов на пиксель). Попробуйте изменить CV_8UC3 на CV_8UC1 .

А также ваш код не копирует данные , он копирует указатели . Прочитайте документацию о memcpy .

На самом деле вам следует использовать метод clone cv: : Mat :

// returns deep copy of the matrix, i.e. the data is copied
    Mat clone() const;
6
добавлено
Таким образом, приведенный выше код неверен? На самом деле мне нужно скопировать Mat.data в указатель.
добавлено автор Haris, источник
Привет, спасибо за вашу помощь. Фактически моя ширина и высота мата были в обратном порядке, поэтому я получил искаженное изображение так, как я его решил.
добавлено автор Haris, источник
Привет, у меня есть еще одно сомнение. Можно ли присвоить указателю Mat другому указателю. Подобно uchar * p = Mat B.
добавлено автор Haris, источник
Спасибо за ответ...
добавлено автор Haris, источник
@Haris Я обновил ответ.
добавлено автор ArtemStorozhuk, источник
Вы можете назначить любой указатель на любой указатель. Указатель - это просто адрес (номер). Но это не имеет смысла. Вы должны использовать функции c ++ , а не c . Вам лучше прочитать некоторые книги на C ++, прежде чем задавать такие вопросы: cplusplus.com/doc/tutorial/ указатели
добавлено автор ArtemStorozhuk, источник
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest