Перейти к содержимому
Compvision.ru
sigizmynd

Стандартные алгоритмы своими руками

Recommended Posts

Здравствуйте.

у меня такой вопрос.

в OpenCV есть много стандартных алгоритмов.

Но некоторые из них хотелось бы сделать своими руками, для закрепления понимания работы с изображениями.

получить цветовые характеристики пикселов нету проблемы, но вот проблемы с выводом получившегося изображения.

Т.е. хочу перевести изображение в grayscale.

формула для перевода есть, значения пикселов есть, но вот как вывести получившиеся значения интенсивности на экран?

можно ли обращаться к элементу IplImage и напрямую в него записывать данные.

можно ли с ним работать как с двухмерным массивом.

помогите, пожалуйста.

---------------------------------------------

всё-таки методом тыка нашёл способ вывода изображения после обработки, но столкнулся с небольшой проблемой:

у конечного (моего) изображения в самом низу отсутствует цвет. только строчки с шумом.

в чём может быть причина?

вот код:

cvCvtPixToPlane(image,R,G,B,0);

uchar* ptrRed,*ptrGreen,*ptrBlue;

uchar arr[Height*Width];

ptrGreen = (uchar*)(G->imageData);

ptrBlue = (uchar*)(B->imageData);

ptrRed = (uchar*)(R->imageData);

int x, y;

for(y = 0; y < Height; y++)

{

for(x = 0; x < Width; x++)

{

arr[y*Width+x] = 0.3*ptrRed[y*Width+x] + 0.59*ptrGreen[y*Width+x] + 0.11*ptrBlue[y*Width+x];

}

}

Black->imageData = (char*)arr;

может быть дело в приведении типа? или можно сделать как-то по-другому?

прикрепляю принтскирн.

работаю на виртуальной машине мандрива.

слева изображение, обработанное стандартной функцией, справа моё.

внизу изображения виден шум.

спасибо.

post-813-1269546007_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
можно ли обращаться к элементу IplImage и напрямую в него записывать данные.

Можно.

можно ли с ним работать как с двухмерным массивом.

Можно.

Это же обычная структура. Посмотри на её поля их значения - сразу всё станет ясно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×