Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
broDiaga_cpp
23 / 13 / 1
Регистрация: 20.02.2010
Сообщений: 181
#1

Доступ к пикселям одноканального изображения. OpenCV - C++

30.09.2013, 14:07. Просмотров 1620. Ответов 0
Метки нет (Все метки)

Хочу получить доступ к пикселям одноканального изображения. Делаю так:
C++
1
2
3
4
5
6
7
8
9
unsigned __int64 result = 0;
    for( int y = frame_y; y < frame_y + frame_height; y++ ) 
    {
        uchar* ptr = (uchar*) (img->imageData + y * img->widthStep);
        for( int x = frame_x; x < frame_x + frame_width; x++ ) 
        {
            result += static_cast<int>(ptr[3*x]);
        }
    }
Но значения static_cast<int>(ptr[3*x]) выдаются какие-то некорректные. Лежат в пределах от 0 до 255, но что белый цвет, что чёрный - практически всегда выдаётся значение примерно равное 200.

В трёхканальном изображении доступ идёт к ptr[3*x], ptr[3*x+1], ptr[3*x+2]. А здесь просто ptr[3*x]?

Добавлено через 9 минут
Ошибку нашёл. Тема закрыта.
C++
1
2
3
4
5
6
7
8
9
unsigned __int64 result = 0;
    for( int y = frame_y; y < frame_y + frame_height; y++ ) 
    {
        uchar* ptr = (uchar*) (img->imageData + y * img->widthStep);
        for( int x = frame_x; x < frame_x + frame_width; x++ ) 
        {
            result += static_cast<int>(ptr[x]);
        }
    }
*необходимо было обращаться к ptr[x], а не к ptr[3*x]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доступ к пикселям одноканального изображения. OpenCV (C++):

Работа с изображениями (доступ к пикселям изображения) - C++
Суть задачи такова, имеются данные и их размер, данные представляют из себя какой-то файл изображения (формат не известен), необходимо...

Изменение параметров изображения в зависимости от положения ползунка (Opencv) - C++
Помогите пожалуйста написать класс, который будет изменять яркость, насыщенность и цветовую гамму изображения в зависимости от положения...

OpenCV: получить гистограммы каналов для области изображения - C++
Здравствуйте, у меня есть простой код, который собирается, но вылетает при запуске. Задача: получить гистограммы каналов для области...

OpenCv. Получить зеркальное отображение изображения, используя функции: CvScalar, CvGet2D, CvSet2D - C++
Доброго времени суток. Прошу помощи в написании кода. Нужно сделать зеркальное отображение изображения, используя только эти функции:...

загрузить в програму изображения формата jpg и получить доступ к каждому пискселю - C++
Весь вопрос в заголовке темы) надеюсь что подскажеет в какую сторну копать)

Разобрать GIF файл по пикселям и вывести в матрицу - C++
Требуется разобрать GIF файл по пикселям и вывести на матрицу. У кого нибудь есть опыт работы с GIF файлами на уровне программы. ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 14:07
Привет! Вот еще темы с ответами:

Как осуществить прямой доступ к пикселям изображения, не используя Bitmap - C#
Как осуществить прямой доступ к пикселям изображения, не используя Bitmap ?

Быстрый доступ к пикселям! - C#
Добрый день! Есть такая проблема.Сейчас делаю приложение,чтобы по загрузке изображения рисовалась гистограмма канала H(тона) в системе...

Перевод изображения в матрицу по пикселям - C#
в шапрпах совсем не разбираюсь, помогите:Имеется некоторое квадратное изображение 32х32 с белым фоном, подскажите, как перевести его в...

Как загрузить jpg файл и получить прямой доступ к пикселям? - C++ Linux
Облазил кучу форумов но никак не могу найти рабочий пример что бы можно было скомпилировать с помощью gcc. может быть кто нибудь уже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.